//+------------------------------------------------------------------+ //| FT_HighLow+SAR.mq4.mq4 //| FORTRADER.RU, Þðèé, ftyuriy@gmail.com //| http://FORTRADER.RU, Ñîâåòíèê ïî ïðîáîþ HighLow è òðåéëèíã ïî SAR //+------------------------------------------------------------------+ #property copyright "FORTRADER.RU, Þðèé, ftyuriy@gmail.com" #property link "http://FORTRADER.RU, Ñîâåòíèê ïî ïðîáîþ HighLow è òðåéëèíã ïî SAR" /* Àðõèâ æóðíàëà: http://www.fortrader.ru/arhiv.php 51 âûïóñê: http://www.fortrader.ru/ */ int SL=100; extern int TP=0; int err; extern int MG=564651; extern double Lots=0.1; extern int mn=10; int start() { SarTrailingStop(); pattern(); return(0); } int pattern() { double op,sl,tp; double high=iHigh(Symbol(),Period(),1); double stopbuy=iLow(Symbol(),Period(),2); double low=iLow(Symbol(),Period(),1); double stopsell=iHigh(Symbol(),Period(),2); if(ChPos(1)==0 ){ _DeleteOrder(1); op=high;if(SL>0){sl=stopbuy;}if(TP>0){tp=op+(op-stopbuy)*3;}else{tp=0;} err=OrderSend(Symbol(),OP_BUYSTOP,Lots,NormalizeDouble(op,Digits),3,NormalizeDouble(sl,Digits),NormalizeDouble(tp,Digits),"6 FORTRADER.RU",MG,0,Red); if(err<0){Print("OrderSend()- Îøèáêà OP_BUYSTOP. op "+op+" sl "+sl+" tp "+tp+" "+GetLastError());return(-1);} } if(ChPos(0)==0 ){ _DeleteOrder(0); op=low;if(SL>0){sl=stopsell;}if(TP>0){tp=op-(stopbuy-op)*3;}else{tp=0;} err=OrderSend(Symbol(),OP_SELLSTOP,Lots,NormalizeDouble(op,Digits),3,NormalizeDouble(sl,Digits),NormalizeDouble(tp,Digits),"4 FORTRADER.RU",MG,0,Red); if(err<0){Print("OrderSend()- Îøèáêà OP_SELLSTOP. op "+op+" sl "+sl+" tp "+tp+" "+GetLastError());return(-1);} } return(0); } //óäàëÿåò îòëîæåííûå ñòîï îðäåðà int _DeleteOrder(int type) { for( int i=1; i<=OrdersTotal(); i++) { if(OrderSelect(i-1,SELECT_BY_POS)==true) { if(OrderType()==OP_SELLSTOP && OrderSymbol()==Symbol() && type==0) { OrderDelete(OrderTicket()); }//if if(OrderType()==OP_BUYSTOP && OrderSymbol()==Symbol() && type==1) { OrderDelete(OrderTicket()); }//if }//if } return(0); } //Òðåéäèíã ñòîï ïî ïàðàáîëèêó extern double SARstep=0.02; extern double SARmax=0.2; extern int SarTrailingStop=1; extern int TrailingStep=5; int SarTrailingStop() {int i;bool err; int GraStop=Period(); double sar=iSAR(NULL,GraStop,SARstep,SARmax,1); for( i=1; i<=OrdersTotal(); i++) { if(OrderSelect(i-1,SELECT_BY_POS)==true) { if(SarTrailingStop>0 && OrderType()==OP_BUY && OrderSymbol()==Symbol()) { if(sar>OrderStopLoss()) { if((sar-OrderStopLoss())>=TrailingStep*Point*mn && (Ask-sar)>MarketInfo(Symbol(),MODE_STOPLEVEL)*Point) { Print("ÒÐÅÉËÈÌ"); err=OrderModify(OrderTicket(),OrderOpenPrice(),sar,OrderTakeProfit(),0,Green); if(err==false){return(-1);} }//if(Bid>=OrderStopLoss() }//if(Bid-OrderOpenPrice() }//if(BBUSize>0 }//if(OrderSelect(i if(OrderSelect(i-1,SELECT_BY_POS)==true) { if(SarTrailingStop>0 && OrderType()==OP_SELL && OrderSymbol()==Symbol() ) { if(OrderStopLoss()>sar) { if((OrderStopLoss()-sar)>TrailingStep*Point*mn && (sar-Ask)>MarketInfo(Symbol(),MODE_STOPLEVEL)*Point) { Print("ÒÐÅÉËÈÌ"); err=OrderModify(OrderTicket(),OrderOpenPrice(),sar,OrderTakeProfit(),0,Green); if(err==false){return(-1);} }//if(Ask<=OrderStopLoss() }//if(OrderOpenPrice() }//if(BBUSize>0 }// if(OrderSelect }// for( i=1; return(0); } //ïðîâåðÿåò åñòü ëè îòêðûòûå îðäåðà int ChPos(int type) {//ïîäðîáíîå îïèñàíèå: http://fxnow.ru/blog.php?user=Yuriy&blogentry_id=100 int i;int col; for( i=1; i<=OrdersTotal(); i++) { if(OrderSelect(i-1,SELECT_BY_POS)==true) { if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && type==1&& OrderMagicNumber()==MG){col=1;} if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && type==0&& OrderMagicNumber()==MG){col=1;} } } return(col); }
Sample
Analysis
Market Information Used:
Series array that contains the highest prices of each bar
Series array that contains the lowest prices of each bar
Indicator Curves created:
Indicators Used:
Parabolic Stop and Reverse system
Custom Indicators Used:
Order Management characteristics:
It automatically opens orders when conditions are reached
Checks for the total of open orders
It can change open orders parameters, due to possible stepping strategy
Other Features: