EnvelopeMA version 0.0.1.beta

0
(0)
姓名:
EnvelopeMA version 0.0.1.beta
作者: Cássio J. Pagnoncelli, André D. de Novais (2010.03.08 10:03)
已下載: 4828
下載:
EnvelopeMA version 0.0.1.beta 1
EnvelopeMA.mq4 (8.7 KB) 看法
Hi folks,

I've been learning and making EAs from 2 幾個月, this one is my first reasonable and "almost-free of errors" 機器人. It only shorts (no long positions till now), when short positions are clearly good a long position version will be cloned and attached to the EA. It was made for 15-minute chart (M15) because there are no many sell stop positions executed to place it on higher periods (M30, H1+) and no lower periods because the spread becomes more significantly. Entry is made by sell stop pending orders placed whenever the Ask price and two moving averages are comprised by the low period envelope bands, this order stands for 1h15min. Exits when three different Parabolic SAR points are under the Ask price and there is a crossover of moving averages (signal moving average crosses fast moving average from down to up).

S/L and T/P are configurable and optional. Obviously there are ways to turn this system a great winner using Martingale strategy but the main idea now is to improve only the sell signals. After this, we will attach risk management modules, better exit ways, ETC. I hope you don't mind code is in Portuguese. Some explanations of input parameters are below:

  • AguardaCompletarCandle: Wait for 15-minute chart bar is completed to take a decision (is equivalent to use "Open bar prices only" in tester)
  • TP: 得到好處 (點數)
  • SL: 止損 (點數)
  • PerEnv: Period of envelope
  • sdEnv: Deviation of envelope
  • PerMM: Period of signal exponential moving average
  • PerMMl: Period of fast (slower than signal) exponential moving average

other input parameters are explained in "輸入參數" box in the tester and it's part of risk management, not about order placing.

I hope you enjoy and whenever someone leave good idea(秒) they will be implemented and be made available here.

3 評論 發表新評論, 請 登錄 或者 登記

I'm very thankful for your comments, I'll be adjusting the EA as soon as I have free time and translate to english version.

還, lot size module is not good, some reasons:
1) extreme lot sizes are not well calculated, no minimum margin level relevance;
2) lot size is intended to work only on ABCXYZ pairs, where ABC is account currency and XYZ is another currency;
3) 僅有的 1:100 leverage accounts;
4) no metals for trading while lot sizes calculated are very wrong;

I'm working hard on risk management modules, soon I'll send you a enhanced version of the robot.

Have a nice week,

31.03.2010 09:35 kimble9t

WHRoeder wrote:
   為了 ( i=0; 我<OrdersTotal(); i++ )
      如果 ( OrderSelect(0, SELECT_BY_POS, MODE_TRADES) && OrderCloseTime() == 0 && Op == OrderType() )
         OrderClose(OrderTicket(),

With MODE_TRADES you only get open orders so OrderCloseTime will always be zero (unnecessary test)

When you close an order higher numbered orders are renumbered, so the above code will close every other open order, not all orders. Always count DOWN when closing and modifying lot sizes (partial close.)

MargemLivre/100000
tam_lote >= 0.01
Preco + Pips*Point

Hard coded numbers means the EA fails on a mini account (get values from MarketInfo)

Pips*Point fails on 5 digit brokers Pips*pips2dbl won't:

//++++ These are adjusted for 5 數字經紀人.
double  pips2points,    // 滑移  3 pips    3=points    30=points
        pips2dbl;       // 止損 15 點數    0.0015      0.00150
int     Digits.pips;    // DoubleToStr(dbl/pips2dbl, Digits.pips)
int init() {
    如果 (Digits == 5 || Digits == 3) {   // Adjust for five (5) 數字經紀人.
                pips2dbl    = Point*10; pips2points = 10;   Digits.pips = 1;
    } else {    pips2dbl    = Point;    pips2points =  1;   Digits.pips = 0; }

 

Dear sir

No orders are executed in my platform, but only shows the pending orders, don't know the reason why .

In which place the above correction to be replaced in the EA ? thank you

10.03.2010 17:52 robert76

   為了 ( i=0; 我<OrdersTotal(); i++ )
      如果 ( OrderSelect(0, SELECT_BY_POS, MODE_TRADES) && OrderCloseTime() == 0 && Op == OrderType() )
         OrderClose(OrderTicket(),

With MODE_TRADES you only get open orders so OrderCloseTime will always be zero (unnecessary test)

When you close an order higher numbered orders are renumbered, so the above code will close every other open order, not all orders. Always count DOWN when closing and modifying lot sizes (partial close.)

MargemLivre/100000
tam_lote >= 0.01
Preco + Pips*Point

Hard coded numbers means the EA fails on a mini account (get values from MarketInfo)

Pips*Point fails on 5 digit brokers Pips*pips2dbl won't:

//++++ These are adjusted for 5 數字經紀人.
double  pips2points,    // 滑移  3 pips    3=points    30=points
        pips2dbl;       // 止損 15 點數    0.0015      0.00150
int     Digits.pips;    // DoubleToStr(dbl/pips2dbl, Digits.pips)
int init() {
    如果 (Digits == 5 || Digits == 3) {   // Adjust for five (5) 數字經紀人.
                pips2dbl    = Point*10; pips2points = 10;   Digits.pips = 1;
    } else {    pips2dbl    = Point;    pips2points =  1;   Digits.pips = 0; }

 

這篇文章有多有用?

點擊一顆星即可對其進行評分!

平均評分 0 / 5. 計票數: 0

目前還沒有投票! 成為第一個評價這篇文章的人.

很抱歉這篇文章對您沒有用!

讓我們改進這篇文章!

告訴我們如何改進這篇文章?



作者: 外匯維基團隊
我們是一支經驗豐富的外匯交易員團隊 [2000-2023] 致力於以我們自己的方式生活的人. 我們的主要目標是實現財務獨立和自由, 我們追求自我教育並在外匯市場上獲得豐富的經驗,以此作為實現自我可持續生活方式的手段.