//+------------------------------------------------------------------+ //| FT_Fractal_MA.mq4 | //| FORTRADER.RU, Þðèé, ftyuriy@gmail.com | //| http://FORTRADER.RU, MACD + Ñðåäíèå | //+------------------------------------------------------------------+ #property copyright "FORTRADER.RU, Þðèé, ftyuriy@gmail.com" #property link "http://FORTRADER.RU, MACD + Ñðåäíèå" /*Ðàçðàáîòàíî äëÿ 49 âûïóñêà æóðíàëà FORTRADER.Ru. Ñèñòåìà ïî ñðåäíåé è MACD. Îò÷åòû: http://finfile.ru/index.php/files/get/QUovk3TMmJ/macd-ma1.zip Ñåò ôàéëû: http://finfile.ru/index.php/files/get/K_8zE0WRLK/eurusd15m.set Îáñóæäåíèå: http://fxnow.ru/group_discussion_view.php?group_id=49&grouptopic_id=267&grouppost_id=2668 Àðõèâ æóðíàëà: http://www.fortrader.ru/arhiv.php 49 âûïóñê: http://www.fortrader.ru/ */ extern int fast_ema_period = 12; // Ïåðèîä óñðåäíåíèÿ äëÿ âû÷èñëåíèÿ áûñòðîé ñêîëüçÿùåé ñðåäíåé. extern int slow_ema_period = 26; // Ïåðèîä óñðåäíåíèÿ äëÿ âû÷èñëåíèÿ ìåäëåííîé ñêîëüçÿùåé ñðåäíåé. extern int lwmaper1=4; extern int lwmaper2=8; int SL=150; int TP=150; extern int mn=1; int err; extern int MG=564651; extern double Lots=0.01; extern int maxpos=1; int bars; int start() { if(bars!=Bars) { bars=Bars; OpenPattern(); Manager(); } return(0); } int okbuy,oksell; int OpenPattern() { double op,sl,tp; double macd=iMACD(NULL,0,fast_ema_period,slow_ema_period,9,PRICE_CLOSE,MODE_MAIN,1); double macdlast=iMACD(NULL,0,fast_ema_period,slow_ema_period,9,PRICE_CLOSE,MODE_MAIN,2); double lwma1=iMA(NULL,0,lwmaper1,0,MODE_LWMA,PRICE_CLOSE,1); double lwma2=iMA(NULL,0,lwmaper2,0,MODE_LWMA,PRICE_CLOSE,1); double lwma1Last=iMA(NULL,0,lwmaper1,0,MODE_LWMA,PRICE_CLOSE,2); double lwma2Last=iMA(NULL,0,lwmaper2,0,MODE_LWMA,PRICE_CLOSE,2); if(macd<macdlast && lwma1Last>lwma2Last && CountPos(0)<maxpos ) { op=Bid;if(SL>0){sl=0;}if(TP>0){tp=0;} err=OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(op,Digits),3,NormalizeDouble(sl,Digits),NormalizeDouble(tp,Digits),"4 FORTRADER.RU",MG,0,Red); if(err<0){Print("OrderSend()- Îøèáêà OP_SELL. op "+op+" sl "+sl+" tp "+tp+" "+GetLastError());return(-1);} oksell=0; } if(macd>macdlast && lwma1>lwma2 && lwma1Last<lwma2Last && CountPos(1)<maxpos ) { op=Ask;if(SL>0){sl=0;}if(TP>0){tp=0;} err=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(op,Digits),3,NormalizeDouble(sl,Digits),NormalizeDouble(tp,Digits),"6 FORTRADER.RU",MG,0,Red); if(err<0){Print("OrderSend()- Îøèáêà OP_BUY. op "+op+" sl "+sl+" tp "+tp+" "+GetLastError());return(-1);} okbuy=0; } return(err); } //Ïðîâåðÿåì êîëè÷åñâòî ïîçèöèé. int CountPos(int type) {//Îïèñàíèå http://fxnow.ru/blog.php?user=Yuriy&blogentry_id=66 int i; int col; int count=0 ; for( i=0; i<=OrdersTotal(); i++) { if(OrderSelect(i,SELECT_BY_POS)==true) { if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && type==1 && OrderMagicNumber()==MG ){count++;} if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && type==0 && OrderMagicNumber()==MG ){count++;} } } return(count); } int Manager() { double macd=iMACD(NULL,0,fast_ema_period,slow_ema_period,9,PRICE_CLOSE,MODE_MAIN,1); double macdlast=iMACD(NULL,0,fast_ema_period,slow_ema_period,9,PRICE_CLOSE,MODE_MAIN,2); if(macd<macdlast){_OrderClose(1);} if(macd>macdlast){_OrderClose(0);} } int _OrderClose(int type) {int err; for(int i=1; i<=OrdersTotal(); i++) { if (OrderSelect(i-1,SELECT_BY_POS)==true) { if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && type==1 && OrderMagicNumber()==MG ) { err=OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); if(err<0){Print("OrderClose()- Îøèáêà çàêðûòèÿ OP_BUY. OrderTicket "+OrderTicket()+" OrderLots() "+OrderLots()+" Bid "+Bid+" "+GetLastError());return(-1);} } if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && type==0 && OrderMagicNumber()==MG ) { err=OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); if(err<0){Print("OrderClose()- Îøèáêà çàêðûòèÿ OP_SELL. OrderTicket "+OrderTicket()+" OrderLots() "+OrderLots()+" Ask "+Ask+" "+GetLastError());return(-1);} } } } return(0); }
Sample
Analysis
Market Information Used:
Indicator Curves created:
Indicators Used:
MACD Histogram
Moving average indicator
Custom Indicators Used:
Order Management characteristics:
It automatically opens orders when conditions are reached
Checks for the total of open orders
It Closes Orders by itself
Other Features: