Download MetaTrader 5

Universal MA Cross EA

To add comments, please log in or register
David Michael
695
David Michael  

I try to make an EA for any Moving Average Cross strategy, try to make it universal. So please let me know should you have any suggestion to add to this EA.

Common Setting :

-----------------

StopLoss (default 100)

Set your Stop Loss. Use 0 (zero) if you don't like to use Stop Loss ( not recommended ).

TakeProfit (default 200)

Set your Take Profit. Use 0 (zero) if you like to use open target.

Trailing Stop Setting :

----------------------

ver.6 TrailingStopType (default 1)

Set trailing stop type. 1:will start trailing if profit in pips is greater / same with TrailingStop. 2:will start trailing as soon as trade in profit. (will add other type of trailing stop if suggested, latest suggestion is SafeZone trailing stop post #99 https://www.mql5.com/en/forum/general )

TrailingStop (default 40)

Set the Trailing Stop. Use 0 (zero) if you don't use trailing stop feature.

Moving Average Setting :

------------------------

FastMAPeriod (default 10)

Fast Moving Average Period.

FastMAType (default EMA / 1)

Fast Moving Average Type 0:SMA 1:EMA 2:SMMA 3:LWMA

FastMAPrice (default Close / 0)

Fast Moving Average Applied Price 0:Close 1:Open 2:High 3:Low 4:Median 5:Typical 6:Weighted

ver.7.2 FastMAshift (default 0)

Fast Moving Average Shift

SlowMAPeriod (default 80)

Slow Moving Average Period.

SlowMAType (default EMA / 1)

Slow Moving Average Type 0:SMA 1:EMA 2:SMMA 3:LWMA

SlowMAPrice (default Close / 0)

Slow Moving Average Applied Price 0:Close 1:Open 2:High 3:Low 4:Median 5:Typical 6:Weighted

ver.7.2 FastMAshift (default 0)

Slow Moving Average Shift

Minimum Cross Distance :

------------------------

ver.2 MinCrossDistance (default 0)

Set the pip distance between FastMA and SlowMA to be consider as a valid cross. Use 0 (zero) to disable this filter.

ver.7 MaxLookUp (default 1)

Set number of bar after the cross to keep checking on the entry condition in regards with the minimum distance between FastMA and SlowMA. Need MinCrosDistance > 0 to enable this feature. Use 0 (zero) to disable this feature.

Exit Setting :

-------------

StopAndReverse (default true)

If set to TRUE, will exit any trade and reverse position when signal change.

PureSAR (default false)

If set to TRUE, will use no Stop Loss - Take Profit - and Trailing Stop. This is always in play setting.

ver.7.2 ExitOnCross (default false)

If set to TRUE, will exit any trade if there is an opposite cross without consider any additional filter. So exit purely base on moving average cross.

Third MA Setting :

------------------

ver.5 UseThirdMA (default false)

If set to TRUE (and UseCounterTrend = FALSE), will only trade according to ThirdMA direction, above for BUY and below for SELL.

ver.5 UseCounterTrend (default false)

If set to TRUE will keep trade even if counter ThirdMA direction, but with different StopLoss and TakeProfit. Need UseThirdMA = TRUE to enable this feature.

ver.7 OnlyCounterTrend (default false)

If set to TRUE will set the EA only to trade counter trend trade, mean BUY if cross below ThirdMA and SELL if cross above ThirdMA. Need UseCounterTrend = TRUE to enable this feature.

ver.5 ThirdMAPeriod (defaul 100)

Third Moving Average Period.

ver.5 ThirdMAType (default EMA / 1)

Third Moving Average Type 0:SMA 1:EMA 2:SMMA 3:LWMA

ver.5 ThirdMAPrice (default Close / 0)

Third Moving Average Applied Price 0:Close 1:Open 2:High 3:Low 4:Median 5:Typical 6:Weighted

ver.7.2 ThridMAshift (default 0)

Third Moving Average Shift

ver.5 CTStopLoss (default 0)

Set your Stop Loss for CounterTrend trade. Use 0 (zero) if you don't like to use Stop Loss ( not recommended ).

ver.5 CTTakeProfit (default 0)

Set your Take Profit for CounterTrend trade. Use 0 (zero) if you like to use open target.

Pivot Filter Setting :

-------------------

ver.8.0 Use.Pivot.Filter (default false)

Set to true if you like to filter the trade, only BUY if the cross of Slow and Fast MA occur between S1 and S2 and only SELL if the cross of Slow and Fast MA occur between R1 and R2.

Order Setting :

--------------

ReverseCondition (default false)

Set TRUE to reverse the entry condition.

ver.3 ConfirmedOnEntry (default true)

If set to TRUE, will enter/exit trade on the next bar after the cross confirmed. If set to FALSE, will enter/exit trade as soon as there is a cross.

ver.4 OneEntryPerBar (default true)

If set to TRUE, will only trade once on one bar. If set to FALSE, will trade more than once on one bar if the entry condition is still valid, although still one trade at a time.

NumberOfTries (default 5)

Number of try if the order rejected by the system.

Slippage (default 5)

Slippage setting.

MagicNumber (default 1234)

Use to generate Magic Number. Change this number ONLY if you like to run the EA on same pair and same time frame but with different setting.

Multiple Open Trade Setting :

-----------------------------

ver.5 MaxOpenTrade (default 2)

Number of maximum open trade at one time. This setting is use when StopAndReverse / PureSAR = FALSE so the EA won't close the open order when there is an opposite signal, but rather it will open a new trade. Set the number of open trade allowed. If StopAndReverse / PureSAR = TRUE this setting will always = 1, mean one trade at a time.

ver.6 MinPriceDistance (default 5)

If multiple open trade enable (by set MaxOpenOrder>1 and OneEntryPerBar=FALSE) this number will determine the minimum distance between each trade on same direction.

Time Filter Setting :

-------------------

UseHourTrade (default false)

If set to TRUE, the EA only active on certain time.

StartHour (default 10)

Time when the EA start active (use with UseHourTrade = TRUE).

EndHour (default 11)

Time when the EA stop active (use with UseHourTrade = TRUE).

Lot and Money Management Setting :

------------------------------------

Lots (default 1)

Number of lot per trade.

MM (default false)

If set to TRUE, will use build in money management.

AccountIsMicro (default false)

If using Micro Account set this to TRUE.

Risk (default 10)

Use with MM = TRUE to set the risk per trade.

Cross Alert Setting :

--------------------

ver.5 EnableAlert (default true)

Will sound an alert when there is a moving average cross, cross UP or cross DOWN.

ver.5 SoundFilename (default "alert.wav")

The filename for the alert.

BackTest Setting :

------------------

PrintControl (default true)

Print some comment on backtesting.

Show_Settings (default true)

Show setting on the chart.

Let me know if you still got problem with the setting. Thank you to codersguru and pengie for several partial code. Hope this help

Journal :

-----------

version.6 :

- fixed ConfirmedOnEntry bug.

- add immediate trailing stop.

- add MinPriceDistance for multiple open trade.

version.7 :

- add MaxLookUp feature to keep checking on the entry after certain bar from the cross regarding the MinCrossDistance.

- add OnlyCounterTrend feature if using ThirdMA filter.

version.7.1 :

- fixed MinCrossDistance bug.

version.7.2 :

- fixed MinCrossDistance bug for ConfirmedOnEntry = FALSE.

- add MA shift parameter.

- add ExitOnCross feature.

version.7.3 :

- fixed on screen display COMMENT.

version.8.0 :

- added Pivot Filter.

version.8.1 :

- revised some code because Build 206 bugs.

Files:
babarmughal
938
babarmughal  

Hi Dave,

Excellent stuff...........

Babar

kumawat
150
kumawat  

Hi

thanks for this effores.

I want to know will it work in one account

1 Same pair different TF.

2. will it workmore than one pair in one account.

3. will it works same pair same TF but with diffenent setting i mean TP or SL etc , if we use magin no.

Fxparadise
11
Fxparadise  

Please let us know the best TF .

David Michael
695
David Michael  
kumawat:
Hi

thanks for this effores.

I want to know will it work in one account

1 Same pair different TF.

2. will it workmore than one pair in one account.

3. will it works same pair same TF but with diffenent setting i mean TP or SL etc , if we use magin no.

Hi kumawat. Yes to all of your question. I've just added MagicNumber seed to generate Order Magic Number. Change MagicNumber only if you like to use the EA for question number 3. Hope this help

David Michael
695
David Michael  
Fxparadise:
Please let us know the best TF .

Hi, I think the time frame is depend on your strategy. For default setting, you could use the EA on 1 Hour chart. Hope this help

FXGuy2000
299
FXGuy2000  

Nice EA. Which MA's and settings have you found best?

I tried this one and it produced really good results on the 4hr.

-------

extern int

FastMAPeriod = 10,

FastMAType = 3, //0:SMA 1:EMA 2:SMMA 3:LWMA

FastMAPrice = 1, //0:Close 1:Open 2:High 3:Low 4:Median 5:Typical 6:Weighted

SlowMAPeriod = 100,

SlowMAType = 3, //0:SMA 1:EMA 2:SMMA 3:LWMA

SlowMAPrice = 2; //0:Close 1:Open 2:High 3:Low 4:Median 5:Typical 6:Weighted

extern string

Exit_Setting = "---------- Exit Setting";

extern bool

ReverseCondition = false, // TRUE:buy-sell , sell-buy

ConfirmedOnEntry = false, // TRUE:entry on the next signal bar

StopAndReverse = true, // TURE:if signal change, exit and reverse order

PureSAR = false; // TRUE:no SL, no TP, no TS

--------

FXGuy2000
299
FXGuy2000  
firedave:
Hi kumawat. Yes to all of your question. I've just added MagicNumber seed to generate Order Magic Number. Change MagicNumber only if you like to use the EA for question number 3. Hope this help

I thought that Magic Number thing you have there is excellent. I think all EA's should have this, then the user doesn't have to worry about it, its sorted for you automatically.

kumawat
150
kumawat  

Hi

one more suggesation. if we can include MACD, RSI & stochestic

It may a greate EA

Ahmed Soliman
16869
Ahmed Soliman  

Great idea!

Great workfiredave

And very good idea!

David Michael
695
David Michael  
codersguru:
Great workfiredave And very good idea!

Hi codersguru, thank you for the compliment. I'm just one of your student, it's your code all over the EA, so many thanks to you also