两线发散交易法.docx
《两线发散交易法.docx》由会员分享,可在线阅读,更多相关《两线发散交易法.docx(15页珍藏版)》请在冰豆网上搜索。
两线发散交易法
//+------------------------------------------------------------------+
//|两线发散交易法.mq4|
//|QQ群:
汇聚技术交流-806758447。
进群可享海量EA及指标资源定期或不定期更新资源供大家学习和参考|
//|进群请先加管理员QQ:
3365609227|
#propertycopyright"QQ群:
进群可享海量EA及指标资源定期或不定期更新资源供大家学习和参考"
#propertylixxxxnk"进群请先加管理员QQ:
3365609227"
#propertyversion"1.00"
#propertystrict
inputdoubleLots=0.1;
inputintSlippage=2;
inputintFast_Timefrxxxxame=0;
inputintFast_Period=28;
inputintFast_Price=PRICE_OPEN;
inputintFast_Mode=MODE_SMA;
inputintFast_Shift=0;
inputintSlow_Timefrxxxxame=0;
inputintSlow_Period=73;
inputintSlow_Price=PRICE_OPEN;
inputintSlow_Mode=MODE_SMA;
inputintSlow_Shift=0;
inputdoubleDVBuySell=0.002;
inputintMAXTrades=5;
inputdoubleProfitMade=100;
inputdoubleLossLimit=72;
inputintTrailStop=999;
inputintPLBreakEven=999;
inputintStartHour=0;
inputintStopHour=24;
inputintBasketProfit=9999;
inputintBasketLoss=9999;
intMagicNumber=20190404000;
stringTradeComment="两线发散交易法";
datetimebartime=0;
intbartick=0;
intobjtick=0;
inttickcount=0;
boolTradeAllowed=true;
doublemaxOrders;
doublemaxEquity;
doubleminEquity;
doubleCECount;
doubleCEProc;
doubleCEBuy;
doubleCESell;
intOnInit()
{
//---
inti;
stringo;
//removetheoldobxxxxjects
for(i=0;i{o=DoubleToStr(i0);obxxxxjectDelete("myx"+o);obxxxxjectDelete("myz"+o);}objtick=0;Print("Inithappened"CurTime());Comment("");//---return(INIT_SUCCEEDED);}voidOnDeinit(constintreason){//---inti;stringo;//removetheoldobxxxxjectsfor(i=0;i{o=DoubleToStr(i0);obxxxxjectDelete("myx"+o);obxxxxjectDelete("myz"+o);}objtick=0;Print("MAXnumberoforders"maxOrders);Print("MAXequity"maxEquity);Print("MINequity"minEquity);Print("CloseEverything"CECount);Print("CloseProc"CEProc);Print("ProcBuy"CEBuy);Print("ProcSell"CESell);Print("DE-Inithappened"CurTime());Comment("");}voidOnTick(){//---doublep=Point();doublespread=Ask-Bid;intcnt=0;intgle=0;intOrdersPerSymbol=0;intOrdersBUY=0;intOrdersSELL=0;intiFileHandle;doubleSL=0;doubleTP=0;doubleCurrentProfit=0;doubleCurrentBasket=0;boolBUYme=false;boolSELLme=false;doublediverge;if(bartime!=Time[0]){bartime=Time[0];bartick++;objtick++;TradeAllowed=true;Print("Bartick="bartick);}OrdersPerSymbol=0;for(cnt=OrdersTotal();cnt>=0;cnt--){OrderSelect(cntSELECT_BY_POSMODE_TRADES);if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){OrdersPerSymbol++;if(OrderType()==OP_BUY){OrdersBUY++;}if(OrderType()==OP_SELL){OrdersSELL++;}}}if(OrdersPerSymbol>maxOrders)maxOrders=OrdersPerSymbol;diverge=divergence(0);Comment("CurrentDivergence="diverge);if(diverge>=DVBuySell)BUYme=true;if(diverge<=(DVBuySell*(-1)))SELLme=true;if(OrdersPerSymbol<=MAXTrades&&TradeAllowed&&BUYme){//Ask(buylong)if(LossLimit==0)SL=0;elseSL=Ask-((LossLimit+7)*Point());if(ProfitMade==0)TP=0;elseTP=Ask+((ProfitMade+7)*Point());OrderSend(Symbol()OP_BUYLotsAskSlippageSLTPTradeCommentMagicNumberWhite);gle=GetLastError();if(gle==0){Print("BUYAsk="Ask"bartick="bartick);obxxxxjectCreate("myx"+DoubleToStr(objtick0)OBJ_TEXT0Time[0]High[0]+(5*p));obxxxxjectSetText("myx"+DoubleToStr(objtick0)"B"15"Arial"Red);bartick=0;TradeAllowed=false;}else{Print("-----ERROR-----BUYAsk="Ask"error="gle"bartick="bartick);}}if(OrdersPerSymbol<=MAXTrades&&TradeAllowed&&SELLme){//Bid(sellshort)if(LossLimit==0)SL=0;elseSL=Bid+((LossLimit+7)*Point());if(ProfitMade==0)TP=0;elseTP=Bid-((ProfitMade+7)*Point());OrderSend(Symbol()OP_SELLLotsBidSlippageSLTPTradeCommentMagicNumberRed);gle=GetLastError();if(gle==0){Print("SELLBid="Bid"bartick="bartick);obxxxxjectCreate("myx"+DoubleToStr(objtick0)OBJ_TEXT0Time[0]High[0]+(5*p));obxxxxjectSetText("myx"+DoubleToStr(objtick0)"S"15"Arial"Red);bartick=0;TradeAllowed=false;}else{Print("-----ERROR-----SELLBid="Bid"error="gle"bartick="bartick);}}CurrentBasket=AccountEquity()-AccountBalance();if(CurrentBasket>maxEquity)maxEquity=CurrentBasket;if(CurrentBasketif(CurrentBasket>=BasketProfit||CurrentBasket<=(BasketLoss*(-1))){CloseEverything();CECount++;}for(cnt=0;cnt{OrderSelect(cntSELECT_BY_POSMODE_TRADES);if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){if(OrderType()==OP_BUY){CurrentProfit=Bid-OrderOpenPrice();//modifyforbreakevenif(CurrentProfit>=PLBreakEven*p&&OrderOpenPrice()>OrderStopLoss()){SL=OrderOpenPrice()+(spread*2);TP=OrderTakeProfit();OrderModify(OrderTicket()OrderOpenPrice()SLTPWhite);gle=GetLastError();if(gle==0){Print("MODIFYBREAKEVENBUYBid="Bid"bartick="bartick);obxxxxjectCreate("myz"+DoubleToStr(objtick0)OBJ_TEXT0Time[0]Low[0]-(7*p));obxxxxjectSetText("myz"+DoubleToStr(objtick0)"BE"15"Arial"White);}else{Print("-----ERROR-----MODIFYBREAKEVENBUYBid="Bid"error="gle"bartick="bartick);}}if(CurrentProfit>=TrailStop*p){SL=Bid-(TrailStop*p);TP=OrderTakeProfit();OrderModify(OrderTicket()OrderOpenPrice()SLTPWhite);gle=GetLastError();if(gle==0){Print("MODIFYTRAILSTOPBUYStopLoss="SL"bartick="bartick"OrderTicket="OrderTicket()"CurrProfit="CurrentProfit);obxxxxjectCreate("myz"+DoubleToStr(objtick0)OBJ_TEXT0Time[0]Low[0]-(7*p));obxxxxjectSetText("myz"+DoubleToStr(objtick0)"TS"15"Arial"White);}else{Print("-----ERROR-----MODIFYTRAILSTOPBUYBid="Bid"error="gle"bartick="bartick);}}if(CurrentProfit>=(ProfitMade*p)||CurrentProfit<=((LossLimit*(-1))*p)){OrderClose(OrderTicket()LotsBidSlippageWhite);gle=GetLastError();if(gle==0){Print("CLOSEBUYBid="Bid"bartick="bartick);obxxxxjectCreate("myz"+DoubleToStr(objtick0)OBJ_TEXT0Time[0]Low[0]-(7*p));obxxxxjectSetText("myz"+DoubleToStr(objtick0)"C"15"Arial"White);}else{Print("-----ERROR-----CLOSEBUYBid="Bid"error="gle"bartick="bartick);}}}if(OrderType()==OP_SELL){CurrentProfit=OrderOpenPrice()-Ask;//modifyforbreakevenif(CurrentProfit>=PLBreakEven*p&&OrderOpenPrice(){SL=OrderOpenPrice()-(spread*2);TP=OrderTakeProfit();OrderModify(OrderTicket()OrderOpenPrice()SLTPRed);gle=GetLastError();if(gle==0){Print("MODIFYBREAKEVENSELLAsk="Ask"bartick="bartick);obxxxxjectCreate("myz"+DoubleToStr(objtick0)OBJ_TEXT0Time[0]Low[0]-(7*p));obxxxxjectSetText("myz"+DoubleToStr(objtick0)"BE"15"Arial"Red);}else{Print("-----ERROR-----MODIFYBREAKEVENSELLAsk="Ask"error="gle"bartick="bartick);}}if(CurrentProfit>=TrailStop*p){SL=Ask+(TrailStop*p);TP=OrderTakeProfit();OrderModify(OrderTicket()OrderOpenPrice()SLTPRed);gle=GetLastError();if(gle==0){Print("MODIFYTRAILSTOPSELLStopLoss="SL"bartick="bartick"OrderTicket="OrderTicket()"CurrProfit="CurrentProfit);obxxxxjectCreate("myz"+DoubleToStr(objtick0)OBJ_TEXT0Time[0]Low[0]-(7*p));obxxxxjectSetText("myz"+DoubleToStr(objtick0)"TS"15"Arial"Red);}else{Print("-----ERROR-----MODIFYTRAILSTOPSELLAsk="Ask"error="gle"bartick="bartick);}}//didwemakeourdesiredSELLprofit?if(CurrentProfit>=(ProfitMade*p)||CurrentProfit<=((LossLimit*(-1))*p)){OrderClose(OrderTicket()LotsAskSlippageRed);gle=GetLastError();if(gle==0){Print("CLOSESELLAsk="Ask"bartick="bartick);obxxxxjectCreate("myz"+DoubleToStr(objtick0)OBJ_TEXT0Time[0]Low[0]-(7*p));obxxxxjectSetText("myz"+DoubleToStr(objtick0)"C"15"Arial"Red);}else{Print("-----ERROR-----CLOSESELLAsk="Ask"error="gle"bartick="bartick);}}}}}}//+------------------------------------------------------------------+voidCloseEverything(){doublemyAsk;doublemyBid;intmyTkt;doublemyLot;intmyTyp;inti;boolresult=false;for(i=OrdersTotal();i>=0;i--){OrderSelect(iSELECT_BY_POS);myAsk=MarketInfo(OrderSymbol()MODE_ASK);myBid=MarketInfo(OrderSymbol()MODE_BID);myTkt=OrderTicket();myLot=OrderLots();myTyp=OrderType();switch(myTyp){//CloseopenedlongpositionscaseOP_BUY:result=OrderClose(myTktmyLotmyBidSlippageRed);CEBuy++;break;//CloseopenedshortpositionscaseOP_SELL:result=OrderClose(myTktmyLotmyAskSlippageRed);CESell++;break;//ClosependingorderscaseOP_BUYLIMIT:caseOP_BUYSTOP:caseOP_SELLLIMIT:caseOP_SELLSTOP:result=OrderDelete(OrderTicket());}if(result==false){Alert("Order"myTkt"failedtoclose.Error:"GetLastError());Print("Order"myTkt"failedtoclose.Error:"GetLastError());Sleep(3000);}Sleep(1000);CEProc++;}//for}//closeeverythingdoubledivergence(intmypos){inti;doublemaF1maF2maS1maS2;doubledv1dv2;maF1=iMA(Symbol()Fast_TimefrxxxxameFast_PeriodFast_ShiftFast_ModeFast_Pricemypos);maS1=iMA(Symbol()Slow_TimefrxxxxameSlow_PeriodSlow_ShiftSlow_ModeSlow_Pricemypos);dv1=(maF1-maS1);maF2=iMA(Symbol()Fast_TimefrxxxxameFast_PeriodFast_ShiftFast_ModeFast_Pricemypos+1);maS2=iMA(Symbol()Slow_TimefrxxxxameSlow_PeriodSlow_ShiftSlow_ModeSlow_Pricemypos+1);dv2=((maF1-maS1)-(maF2-maS2));return(dv1-dv2);}
o=DoubleToStr(i0);
obxxxxjectDelete("myx"+o);
obxxxxjectDelete("myz"+o);
}
objtick=0;
Print("Inithappened"CurTime());
Comment("");
return(INIT_SUCCEEDED);
voidOnDeinit(constintreason)
for(i=0;i{o=DoubleToStr(i0);obxxxxjectDelete("myx"+o);obxxxxjectDelete("myz"+o);}objtick=0;Print("MAXnumberoforders"maxOrders);Print("MAXequity"maxEquity);Print("MINequity"minEquity);Print("CloseEverything"CECount);Print("CloseProc"CEProc);Print("ProcBuy"CEBuy);Print("ProcSell"CESell);Print("DE-Inithappened"CurTime());Comment("");}voidOnTick(){//---doublep=Point();doublespread=Ask-Bid;intcnt=0;intgle=0;intOrdersPerSymbol=0;intOrdersBUY=0;intOrdersSELL=0;intiFileHandle;doubleSL=0;doubleTP=0;doubleCurrentProfit=0;doubleCurrentBasket=0;boolBUYme=false;boolSELLme=false;doublediverge;if(bartime!=Time[0]){bartime=Time[0];bartick++;objtick++;TradeAllowed=true;Print("Bartick="bartick);}OrdersPerSymbol=0;for(cnt=OrdersTotal();cnt>=0;cnt--){OrderSelect(cntSELECT_BY_POSMODE_TRADES);if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){OrdersPerSymbol++;if(OrderType()==OP_BUY){OrdersBUY++;}if(OrderType()==OP_SELL){OrdersSELL++;}}}if(OrdersPerSymbol>maxOrders)maxOrders=OrdersPerSymbol;diverge=divergence(0);Comment("CurrentDivergence="diverge);if(diverge>=DVBuySell)BUYme=true;if(diverge<=(DVBuySell*(-1)))SELLme=true;if(OrdersPerSymbol<=MAXTrades&&TradeAllowed&&BUYme){//Ask(buylong)if(LossLimit==0)SL=0;elseSL=Ask-((LossLimit+7)*Point());if(ProfitMade==0)TP=0;elseTP=Ask+((ProfitMade+7)*Point());OrderSend(Symbol()OP_BUYLotsAskSlippageSLTPTradeCommentMagicNumberWhite);gle=GetLastError();if(gle==0){Print("BUYAsk="Ask"bartick="bartick);obxxxxjectCreate("myx"+DoubleToStr(objtick0)OBJ_TEXT0Time[0]High[0]+(5*p));obxxxxjectSetText("myx"+DoubleToStr(objtick0)"B"15"Arial"Red);bartick=0;TradeAllowed=false;}else{Print("-----ERROR-----BUYAsk="Ask"error="gle"bartick="bartick);}}if(OrdersPerSymbol<=MAXTrades&&TradeAllowed&&SELLme){//Bid(sellshort)if(LossLimit==0)SL=0;elseSL=Bid+((LossLimit+7)*Point());if(ProfitMade==0)TP=0;elseTP=Bid-((ProfitMade+7)*Point());OrderSend(Symbol()OP_SELLLotsBidSlippageSLTPTradeCommentMagicNumberRed);gle=GetLastError();if(gle==0){Print("SELLBid="Bid"bartick="bartick);obxxxxjectCreate("myx"+DoubleToStr(objtick0)OBJ_TEXT0Time[0]High[0]+(5*p));obxxxxjectSetText("myx"+DoubleToStr(objtick0)"S"15"Arial"Red);bartick=0;TradeAllowed=false;}else{Print("-----ERROR-----SELLBid="Bid"error="gle"bartick="bartick);}}CurrentBasket=AccountEquity()-AccountBalance();if(CurrentBasket>maxEquity)maxEquity=CurrentBasket;if(CurrentBasketif(CurrentBasket>=BasketProfit||CurrentBasket<=(BasketLoss*(-1))){CloseEverything();CECount++;}for(cnt=0;cnt{OrderSelect(cntSELECT_BY_POSMODE_TRADES);if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){if(OrderType()==OP_BUY){CurrentProfit=Bid-OrderOpenPrice();//modifyforbreakevenif(CurrentProfit>=PLBreakEven*p&&OrderOpenPrice()>OrderStopLoss()){SL=OrderOpenPrice()+(spread*2);TP=OrderTakeProfit();OrderModify(OrderTicket()OrderOpenPrice()SLTPWhite);gle=GetLastError();if(gle==0){Print("MODIFYBREAKEVENBUYBid="Bid"bartick="bartick);obxxxxjectCreate("myz"+DoubleToStr(objtick0)OBJ_TEXT0Time[0]Low[0]-(7*p));obxxxxjectSetText("myz"+DoubleToStr(objtick0)"BE"15"Arial"White);}else{Print("-----ERROR-----MODIFYBREAKEVENBUYBid="Bid"error="gle"bartick="bartick);}}if(CurrentProfit>=TrailStop*p){SL=Bid-(TrailStop*p);TP=OrderTakeProfit();OrderModify(OrderTicket()OrderOpenPrice()SLTPWhite);gle=GetLastError();if(gle==0){Print("MODIFYTRAILSTOPBUYStopLoss="SL"bartick="bartick"OrderTicket="OrderTicket()"CurrProfit="CurrentProfit);obxxxxjectCreate("myz"+DoubleToStr(objtick0)OBJ_TEXT0Time[0]Low[0]-(7*p));obxxxxjectSetText("myz"+DoubleToStr(objtick0)"TS"15"Arial"White);}else{Print("-----ERROR-----MODIFYTRAILSTOPBUYBid="Bid"error="gle"bartick="bartick);}}if(CurrentProfit>=(ProfitMade*p)||CurrentProfit<=((LossLimit*(-1))*p)){OrderClose(OrderTicket()LotsBidSlippageWhite);gle=GetLastError();if(gle==0){Print("CLOSEBUYBid="Bid"bartick="bartick);obxxxxjectCreate("myz"+DoubleToStr(objtick0)OBJ_TEXT0Time[0]Low[0]-(7*p));obxxxxjectSetText("myz"+DoubleToStr(objtick0)"C"15"Arial"White);}else{Print("-----ERROR-----CLOSEBUYBid="Bid"error="gle"bartick="bartick);}}}if(OrderType()==OP_SELL){CurrentProfit=OrderOpenPrice()-Ask;//modifyforbreakevenif(CurrentProfit>=PLBreakEven*p&&OrderOpenPrice(){SL=OrderOpenPrice()-(spread*2);TP=OrderTakeProfit();OrderModify(OrderTicket()OrderOpenPrice()SLTPRed);gle=GetLastError();if(gle==0){Print("MODIFYBREAKEVENSELLAsk="Ask"bartick="bartick);obxxxxjectCreate("myz"+DoubleToStr(objtick0)OBJ_TEXT0Time[0]Low[0]-(7*p));obxxxxjectSetText("myz"+DoubleToStr(objtick0)"BE"15"Arial"Red);}else{Print("-----ERROR-----MODIFYBREAKEVENSELLAsk="Ask"error="gle"bartick="bartick);}}if(CurrentProfit>=TrailStop*p){SL=Ask+(TrailStop*p);TP=OrderTakeProfit();OrderModify(OrderTicket()OrderOpenPrice()SLTPRed);gle=GetLastError();if(gle==0){Print("MODIFYTRAILSTOPSELLStopLoss="SL"bartick="bartick"OrderTicket="OrderTicket()"CurrProfit="CurrentProfit);obxxxxjectCreate("myz"+DoubleToStr(objtick0)OBJ_TEXT0Time[0]Low[0]-(7*p));obxxxxjectSetText("myz"+DoubleToStr(objtick0)"TS"15"Arial"Red);}else{Print("-----ERROR-----MODIFYTRAILSTOPSELLAsk="Ask"error="gle"bartick="bartick);}}//didwemakeourdesiredSELLprofit?if(CurrentProfit>=(ProfitMade*p)||CurrentProfit<=((LossLimit*(-1))*p)){OrderClose(OrderTicket()LotsAskSlippageRed);gle=GetLastError();if(gle==0){Print("CLOSESELLAsk="Ask"bartick="bartick);obxxxxjectCreate("myz"+DoubleToStr(objtick0)OBJ_TEXT0Time[0]Low[0]-(7*p));obxxxxjectSetText("myz"+DoubleToStr(objtick0)"C"15"Arial"Red);}else{Print("-----ERROR-----CLOSESELLAsk="Ask"error="gle"bartick="bartick);}}}}}}//+------------------------------------------------------------------+voidCloseEverything(){doublemyAsk;doublemyBid;intmyTkt;doublemyLot;intmyTyp;inti;boolresult=false;for(i=OrdersTotal();i>=0;i--){OrderSelect(iSELECT_BY_POS);myAsk=MarketInfo(OrderSymbol()MODE_ASK);myBid=MarketInfo(OrderSymbol()MODE_BID);myTkt=OrderTicket();myLot=OrderLots();myTyp=OrderType();switch(myTyp){//CloseopenedlongpositionscaseOP_BUY:result=OrderClose(myTktmyLotmyBidSlippageRed);CEBuy++;break;//CloseopenedshortpositionscaseOP_SELL:result=OrderClose(myTktmyLotmyAskSlippageRed);CESell++;break;//ClosependingorderscaseOP_BUYLIMIT:caseOP_BUYSTOP:caseOP_SELLLIMIT:caseOP_SELLSTOP:result=OrderDelete(OrderTicket());}if(result==false){Alert("Order"myTkt"failedtoclose.Error:"GetLastError());Print("Order"myTkt"failedtoclose.Error:"GetLastError());Sleep(3000);}Sleep(1000);CEProc++;}//for}//closeeverythingdoubledivergence(intmypos){inti;doublemaF1maF2maS1maS2;doubledv1dv2;maF1=iMA(Symbol()Fast_TimefrxxxxameFast_PeriodFast_ShiftFast_ModeFast_Pricemypos);maS1=iMA(Symbol()Slow_TimefrxxxxameSlow_PeriodSlow_ShiftSlow_ModeSlow_Pricemypos);dv1=(maF1-maS1);maF2=iMA(Symbol()Fast_TimefrxxxxameFast_PeriodFast_ShiftFast_ModeFast_Pricemypos+1);maS2=iMA(Symbol()Slow_TimefrxxxxameSlow_PeriodSlow_ShiftSlow_ModeSlow_Pricemypos+1);dv2=((maF1-maS1)-(maF2-maS2));return(dv1-dv2);}
Print("MAXnumberoforders"maxOrders);
Print("MAXequity"maxEquity);
Print("MINequity"minEquity);
Print("CloseEverything"CECount);
Print("CloseProc"CEProc);
Print("ProcBuy"CEBuy);
Print("ProcSell"CESell);
Print("DE-Inithappened"CurTime());
voidOnTick()
doublep=Point();
doublespread=Ask-Bid;
intcnt=0;
intgle=0;
intOrdersPerSymbol=0;
intOrdersBUY=0;
intOrdersSELL=0;
intiFileHandle;
doubleSL=0;
doubleTP=0;
doubleCurrentProfit=0;
doubleCurrentBasket=0;
boolBUYme=false;
boolSELLme=false;
doublediverge;
if(bartime!
=Time[0])
bartime=Time[0];
bartick++;
objtick++;
TradeAllowed=true;
Print("Bartick="bartick);
OrdersPerSymbol=0;
for(cnt=OrdersTotal();cnt>=0;cnt--)
OrderSelect(cntSELECT_BY_POSMODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
OrdersPerSymbol++;
if(OrderType()==OP_BUY){OrdersBUY++;}
if(OrderType()==OP_SELL){OrdersSELL++;}
if(OrdersPerSymbol>maxOrders)maxOrders=OrdersPerSymbol;
diverge=divergence(0);
Comment("CurrentDivergence="diverge);
if(diverge>=DVBuySell)BUYme=true;
if(diverge<=(DVBuySell*(-1)))SELLme=true;
if(OrdersPerSymbol<=MAXTrades&&TradeAllowed&&BUYme)
//Ask(buylong)
if(LossLimit==0)SL=0;elseSL=Ask-((LossLimit+7)*Point());
if(ProfitMade==0)TP=0;elseTP=Ask+((ProfitMade+7)*Point());
OrderSend(Symbol()OP_BUYLotsAskSlippageSLTPTradeCommentMagicNumberWhite);
gle=GetLastError();
if(gle==0)
Print("BUYAsk="Ask"bartick="bartick);
obxxxxjectCreate("myx"+DoubleToStr(objtick0)OBJ_TEXT0Time[0]High[0]+(5*p));
obxxxxjectSetText("myx"+DoubleToStr(objtick0)"B"15"Arial"Red);
bartick=0;
TradeAllowed=false;
else
Print("-----ERROR-----BUYAsk="Ask"error="gle"bartick="bartick);
if(OrdersPerSymbol<=MAXTrades&&TradeAllowed&&SELLme)
//Bid(sellshort)
if(LossLimit==0)SL=0;elseSL=Bid+((LossLimit+7)*Point());
if(ProfitMade==0)TP=0;elseTP=Bid-((ProfitMade+7)*Point());
OrderSend(Symbol()OP_SELLLotsBidSlippageSLTPTradeCommentMagicNumberRed);
Print("SELLBid="Bid"bartick="bartick);
obxxxxjectSetText("myx"+DoubleToStr(objtick0)"S"15"Arial"Red);
Print("-----ERROR-----SELLBid="Bid"error="gle"bartick="bartick);
CurrentBasket=AccountEquity()-AccountBalance();
if(CurrentBasket>maxEquity)maxEquity=CurrentBasket;
if(CurrentBasketif(CurrentBasket>=BasketProfit||CurrentBasket<=(BasketLoss*(-1))){CloseEverything();CECount++;}for(cnt=0;cnt{OrderSelect(cntSELECT_BY_POSMODE_TRADES);if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){if(OrderType()==OP_BUY){CurrentProfit=Bid-OrderOpenPrice();//modifyforbreakevenif(CurrentProfit>=PLBreakEven*p&&OrderOpenPrice()>OrderStopLoss()){SL=OrderOpenPrice()+(spread*2);TP=OrderTakeProfit();OrderModify(OrderTicket()OrderOpenPrice()SLTPWhite);gle=GetLastError();if(gle==0){Print("MODIFYBREAKEVENBUYBid="Bid"bartick="bartick);obxxxxjectCreate("myz"+DoubleToStr(objtick0)OBJ_TEXT0Time[0]Low[0]-(7*p));obxxxxjectSetText("myz"+DoubleToStr(objtick0)"BE"15"Arial"White);}else{Print("-----ERROR-----MODIFYBREAKEVENBUYBid="Bid"error="gle"bartick="bartick);}}if(CurrentProfit>=TrailStop*p){SL=Bid-(TrailStop*p);TP=OrderTakeProfit();OrderModify(OrderTicket()OrderOpenPrice()SLTPWhite);gle=GetLastError();if(gle==0){Print("MODIFYTRAILSTOPBUYStopLoss="SL"bartick="bartick"OrderTicket="OrderTicket()"CurrProfit="CurrentProfit);obxxxxjectCreate("myz"+DoubleToStr(objtick0)OBJ_TEXT0Time[0]Low[0]-(7*p));obxxxxjectSetText("myz"+DoubleToStr(objtick0)"TS"15"Arial"White);}else{Print("-----ERROR-----MODIFYTRAILSTOPBUYBid="Bid"error="gle"bartick="bartick);}}if(CurrentProfit>=(ProfitMade*p)||CurrentProfit<=((LossLimit*(-1))*p)){OrderClose(OrderTicket()LotsBidSlippageWhite);gle=GetLastError();if(gle==0){Print("CLOSEBUYBid="Bid"bartick="bartick);obxxxxjectCreate("myz"+DoubleToStr(objtick0)OBJ_TEXT0Time[0]Low[0]-(7*p));obxxxxjectSetText("myz"+DoubleToStr(objtick0)"C"15"Arial"White);}else{Print("-----ERROR-----CLOSEBUYBid="Bid"error="gle"bartick="bartick);}}}if(OrderType()==OP_SELL){CurrentProfit=OrderOpenPrice()-Ask;//modifyforbreakevenif(CurrentProfit>=PLBreakEven*p&&OrderOpenPrice(){SL=OrderOpenPrice()-(spread*2);TP=OrderTakeProfit();OrderModify(OrderTicket()OrderOpenPrice()SLTPRed);gle=GetLastError();if(gle==0){Print("MODIFYBREAKEVENSELLAsk="Ask"bartick="bartick);obxxxxjectCreate("myz"+DoubleToStr(objtick0)OBJ_TEXT0Time[0]Low[0]-(7*p));obxxxxjectSetText("myz"+DoubleToStr(objtick0)"BE"15"Arial"Red);}else{Print("-----ERROR-----MODIFYBREAKEVENSELLAsk="Ask"error="gle"bartick="bartick);}}if(CurrentProfit>=TrailStop*p){SL=Ask+(TrailStop*p);TP=OrderTakeProfit();OrderModify(OrderTicket()OrderOpenPrice()SLTPRed);gle=GetLastError();if(gle==0){Print("MODIFYTRAILSTOPSELLStopLoss="SL"bartick="bartick"OrderTicket="OrderTicket()"CurrProfit="CurrentProfit);obxxxxjectCreate("myz"+DoubleToStr(objtick0)OBJ_TEXT0Time[0]Low[0]-(7*p));obxxxxjectSetText("myz"+DoubleToStr(objtick0)"TS"15"Arial"Red);}else{Print("-----ERROR-----MODIFYTRAILSTOPSELLAsk="Ask"error="gle"bartick="bartick);}}//didwemakeourdesiredSELLprofit?if(CurrentProfit>=(ProfitMade*p)||CurrentProfit<=((LossLimit*(-1))*p)){OrderClose(OrderTicket()LotsAskSlippageRed);gle=GetLastError();if(gle==0){Print("CLOSESELLAsk="Ask"bartick="bartick);obxxxxjectCreate("myz"+DoubleToStr(objtick0)OBJ_TEXT0Time[0]Low[0]-(7*p));obxxxxjectSetText("myz"+DoubleToStr(objtick0)"C"15"Arial"Red);}else{Print("-----ERROR-----CLOSESELLAsk="Ask"error="gle"bartick="bartick);}}}}}}//+------------------------------------------------------------------+voidCloseEverything(){doublemyAsk;doublemyBid;intmyTkt;doublemyLot;intmyTyp;inti;boolresult=false;for(i=OrdersTotal();i>=0;i--){OrderSelect(iSELECT_BY_POS);myAsk=MarketInfo(OrderSymbol()MODE_ASK);myBid=MarketInfo(OrderSymbol()MODE_BID);myTkt=OrderTicket();myLot=OrderLots();myTyp=OrderType();switch(myTyp){//CloseopenedlongpositionscaseOP_BUY:result=OrderClose(myTktmyLotmyBidSlippageRed);CEBuy++;break;//CloseopenedshortpositionscaseOP_SELL:result=OrderClose(myTktmyLotmyAskSlippageRed);CESell++;break;//ClosependingorderscaseOP_BUYLIMIT:caseOP_BUYSTOP:caseOP_SELLLIMIT:caseOP_SELLSTOP:result=OrderDelete(OrderTicket());}if(result==false){Alert("Order"myTkt"failedtoclose.Error:"GetLastError());Print("Order"myTkt"failedtoclose.Error:"GetLastError());Sleep(3000);}Sleep(1000);CEProc++;}//for}//closeeverythingdoubledivergence(intmypos){inti;doublemaF1maF2maS1maS2;doubledv1dv2;maF1=iMA(Symbol()Fast_TimefrxxxxameFast_PeriodFast_ShiftFast_ModeFast_Pricemypos);maS1=iMA(Symbol()Slow_TimefrxxxxameSlow_PeriodSlow_ShiftSlow_ModeSlow_Pricemypos);dv1=(maF1-maS1);maF2=iMA(Symbol()Fast_TimefrxxxxameFast_PeriodFast_ShiftFast_ModeFast_Pricemypos+1);maS2=iMA(Symbol()Slow_TimefrxxxxameSlow_PeriodSlow_ShiftSlow_ModeSlow_Pricemypos+1);dv2=((maF1-maS1)-(maF2-maS2));return(dv1-dv2);}
if(CurrentBasket>=BasketProfit||CurrentBasket<=(BasketLoss*(-1)))
CloseEverything();
CECount++;
for(cnt=0;cnt{OrderSelect(cntSELECT_BY_POSMODE_TRADES);if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){if(OrderType()==OP_BUY){CurrentProfit=Bid-OrderOpenPrice();//modifyforbreakevenif(CurrentProfit>=PLBreakEven*p&&OrderOpenPrice()>OrderStopLoss()){SL=OrderOpenPrice()+(spread*2);TP=OrderTakeProfit();OrderModify(OrderTicket()OrderOpenPrice()SLTPWhite);gle=GetLastError();if(gle==0){Print("MODIFYBREAKEVENBUYBid="Bid"bartick="bartick);obxxxxjectCreate("myz"+DoubleToStr(objtick0)OBJ_TEXT0Time[0]Low[0]-(7*p));obxxxxjectSetText("myz"+DoubleToStr(objtick0)"BE"15"Arial"White);}else{Print("-----ERROR-----MODIFYBREAKEVENBUYBid="Bid"error="gle"bartick="bartick);}}if(CurrentProfit>=TrailStop*p){SL=Bid-(TrailStop*p);TP=OrderTakeProfit();OrderModify(OrderTicket()OrderOpenPrice()SLTPWhite);gle=GetLastError();if(gle==0){Print("MODIFYTRAILSTOPBUYStopLoss="SL"bartick="bartick"OrderTicket="OrderTicket()"CurrProfit="CurrentProfit);obxxxxjectCreate("myz"+DoubleToStr(objtick0)OBJ_TEXT0Time[0]Low[0]-(7*p));obxxxxjectSetText("myz"+DoubleToStr(objtick0)"TS"15"Arial"White);}else{Print("-----ERROR-----MODIFYTRAILSTOPBUYBid="Bid"error="gle"bartick="bartick);}}if(CurrentProfit>=(ProfitMade*p)||CurrentProfit<=((LossLimit*(-1))*p)){OrderClose(OrderTicket()LotsBidSlippageWhite);gle=GetLastError();if(gle==0){Print("CLOSEBUYBid="Bid"bartick="bartick);obxxxxjectCreate("myz"+DoubleToStr(objtick0)OBJ_TEXT0Time[0]Low[0]-(7*p));obxxxxjectSetText("myz"+DoubleToStr(objtick0)"C"15"Arial"White);}else{Print("-----ERROR-----CLOSEBUYBid="Bid"error="gle"bartick="bartick);}}}if(OrderType()==OP_SELL){CurrentProfit=OrderOpenPrice()-Ask;//modifyforbreakevenif(CurrentProfit>=PLBreakEven*p&&OrderOpenPrice(){SL=OrderOpenPrice()-(spread*2);TP=OrderTakeProfit();OrderModify(OrderTicket()OrderOpenPrice()SLTPRed);gle=GetLastError();if(gle==0){Print("MODIFYBREAKEVENSELLAsk="Ask"bartick="bartick);obxxxxjectCreate("myz"+DoubleToStr(objtick0)OBJ_TEXT0Time[0]Low[0]-(7*p));obxxxxjectSetText("myz"+DoubleToStr(objtick0)"BE"15"Arial"Red);}else{Print("-----ERROR-----MODIFYBREAKEVENSELLAsk="Ask"error="gle"bartick="bartick);}}if(CurrentProfit>=TrailStop*p){SL=Ask+(TrailStop*p);TP=OrderTakeProfit();OrderModify(OrderTicket()OrderOpenPrice()SLTPRed);gle=GetLastError();if(gle==0){Print("MODIFYTRAILSTOPSELLStopLoss="SL"bartick="bartick"OrderTicket="OrderTicket()"CurrProfit="CurrentProfit);obxxxxjectCreate("myz"+DoubleToStr(objtick0)OBJ_TEXT0Time[0]Low[0]-(7*p));obxxxxjectSetText("myz"+DoubleToStr(objtick0)"TS"15"Arial"Red);}else{Print("-----ERROR-----MODIFYTRAILSTOPSELLAsk="Ask"error="gle"bartick="bartick);}}//didwemakeourdesiredSELLprofit?if(CurrentProfit>=(ProfitMade*p)||CurrentProfit<=((LossLimit*(-1))*p)){OrderClose(OrderTicket()LotsAskSlippageRed);gle=GetLastError();if(gle==0){Print("CLOSESELLAsk="Ask"bartick="bartick);obxxxxjectCreate("myz"+DoubleToStr(objtick0)OBJ_TEXT0Time[0]Low[0]-(7*p));obxxxxjectSetText("myz"+DoubleToStr(objtick0)"C"15"Arial"Red);}else{Print("-----ERROR-----CLOSESELLAsk="Ask"error="gle"bartick="bartick);}}}}}}//+------------------------------------------------------------------+voidCloseEverything(){doublemyAsk;doublemyBid;intmyTkt;doublemyLot;intmyTyp;inti;boolresult=false;for(i=OrdersTotal();i>=0;i--){OrderSelect(iSELECT_BY_POS);myAsk=MarketInfo(OrderSymbol()MODE_ASK);myBid=MarketInfo(OrderSymbol()MODE_BID);myTkt=OrderTicket();myLot=OrderLots();myTyp=OrderType();switch(myTyp){//CloseopenedlongpositionscaseOP_BUY:result=OrderClose(myTktmyLotmyBidSlippageRed);CEBuy++;break;//CloseopenedshortpositionscaseOP_SELL:result=OrderClose(myTktmyLotmyAskSlippageRed);CESell++;break;//ClosependingorderscaseOP_BUYLIMIT:caseOP_BUYSTOP:caseOP_SELLLIMIT:caseOP_SELLSTOP:result=OrderDelete(OrderTicket());}if(result==false){Alert("Order"myTkt"failedtoclose.Error:"GetLastError());Print("Order"myTkt"failedtoclose.Error:"GetLastError());Sleep(3000);}Sleep(1000);CEProc++;}//for}//closeeverythingdoubledivergence(intmypos){inti;doublemaF1maF2maS1maS2;doubledv1dv2;maF1=iMA(Symbol()Fast_TimefrxxxxameFast_PeriodFast_ShiftFast_ModeFast_Pricemypos);maS1=iMA(Symbol()Slow_TimefrxxxxameSlow_PeriodSlow_ShiftSlow_ModeSlow_Pricemypos);dv1=(maF1-maS1);maF2=iMA(Symbol()Fast_TimefrxxxxameFast_PeriodFast_ShiftFast_ModeFast_Pricemypos+1);maS2=iMA(Symbol()Slow_TimefrxxxxameSlow_PeriodSlow_ShiftSlow_ModeSlow_Pricemypos+1);dv2=((maF1-maS1)-(maF2-maS2));return(dv1-dv2);}
if(OrderType()==OP_BUY)
CurrentProfit=Bid-OrderOpenPrice();
//modifyforbreakeven
if(CurrentProfit>=PLBreakEven*p&&OrderOpenPrice()>OrderStopLoss())
SL=OrderOpenPrice()+(spread*2);
TP=OrderTakeProfit();
OrderModify(OrderTicket()OrderOpenPrice()SLTPWhite);
Print("MODIFYBREAKEVENBUYBid="Bid"bartick="bartick);
obxxxxjectCreate("myz"+DoubleToStr(objtick0)OBJ_TEXT0Time[0]Low[0]-(7*p));
obxxxxjectSetText("myz"+DoubleToStr(objtick0)"BE"15"Arial"White);
Print("-----ERROR-----MODIFYBREAKEVENBUYBid="Bid"error="gle"bartick="bartick);
if(CurrentProfit>=TrailStop*p)
SL=Bid-(TrailStop*p);
Print("MODIFYTRAILSTOPBUYStopLoss="SL"bartick="bartick"OrderTicket="OrderTicket()"CurrProfit="CurrentProfit);
obxxxxjectSetText("myz"+DoubleToStr(objtick0)"TS"15"Arial"White);
Print("-----ERROR-----MODIFYTRAILSTOPBUYBid="Bid"error="gle"bartick="bartick);
if(CurrentProfit>=(ProfitMade*p)||CurrentProfit<=((LossLimit*(-1))*p))
OrderClose(OrderTicket()LotsBidSlippageWhite);
Print("CLOSEBUYBid="Bid"bartick="bartick);
obxxxxjectSetText("myz"+DoubleToStr(objtick0)"C"15"Arial"White);
Print("-----ERROR-----CLOSEBUYBid="Bid"error="gle"bartick="bartick);
if(OrderType()==OP_SELL)
CurrentProfit=OrderOpenPrice()-Ask;
if(CurrentProfit>=PLBreakEven*p&&OrderOpenPrice(){SL=OrderOpenPrice()-(spread*2);TP=OrderTakeProfit();OrderModify(OrderTicket()OrderOpenPrice()SLTPRed);gle=GetLastError();if(gle==0){Print("MODIFYBREAKEVENSELLAsk="Ask"bartick="bartick);obxxxxjectCreate("myz"+DoubleToStr(objtick0)OBJ_TEXT0Time[0]Low[0]-(7*p));obxxxxjectSetText("myz"+DoubleToStr(objtick0)"BE"15"Arial"Red);}else{Print("-----ERROR-----MODIFYBREAKEVENSELLAsk="Ask"error="gle"bartick="bartick);}}if(CurrentProfit>=TrailStop*p){SL=Ask+(TrailStop*p);TP=OrderTakeProfit();OrderModify(OrderTicket()OrderOpenPrice()SLTPRed);gle=GetLastError();if(gle==0){Print("MODIFYTRAILSTOPSELLStopLoss="SL"bartick="bartick"OrderTicket="OrderTicket()"CurrProfit="CurrentProfit);obxxxxjectCreate("myz"+DoubleToStr(objtick0)OBJ_TEXT0Time[0]Low[0]-(7*p));obxxxxjectSetText("myz"+DoubleToStr(objtick0)"TS"15"Arial"Red);}else{Print("-----ERROR-----MODIFYTRAILSTOPSELLAsk="Ask"error="gle"bartick="bartick);}}//didwemakeourdesiredSELLprofit?if(CurrentProfit>=(ProfitMade*p)||CurrentProfit<=((LossLimit*(-1))*p)){OrderClose(OrderTicket()LotsAskSlippageRed);gle=GetLastError();if(gle==0){Print("CLOSESELLAsk="Ask"bartick="bartick);obxxxxjectCreate("myz"+DoubleToStr(objtick0)OBJ_TEXT0Time[0]Low[0]-(7*p));obxxxxjectSetText("myz"+DoubleToStr(objtick0)"C"15"Arial"Red);}else{Print("-----ERROR-----CLOSESELLAsk="Ask"error="gle"bartick="bartick);}}}}}}//+------------------------------------------------------------------+voidCloseEverything(){doublemyAsk;doublemyBid;intmyTkt;doublemyLot;intmyTyp;inti;boolresult=false;for(i=OrdersTotal();i>=0;i--){OrderSelect(iSELECT_BY_POS);myAsk=MarketInfo(OrderSymbol()MODE_ASK);myBid=MarketInfo(OrderSymbol()MODE_BID);myTkt=OrderTicket();myLot=OrderLots();myTyp=OrderType();switch(myTyp){//CloseopenedlongpositionscaseOP_BUY:result=OrderClose(myTktmyLotmyBidSlippageRed);CEBuy++;break;//CloseopenedshortpositionscaseOP_SELL:result=OrderClose(myTktmyLotmyAskSlippageRed);CESell++;break;//ClosependingorderscaseOP_BUYLIMIT:caseOP_BUYSTOP:caseOP_SELLLIMIT:caseOP_SELLSTOP:result=OrderDelete(OrderTicket());}if(result==false){Alert("Order"myTkt"failedtoclose.Error:"GetLastError());Print("Order"myTkt"failedtoclose.Error:"GetLastError());Sleep(3000);}Sleep(1000);CEProc++;}//for}//closeeverythingdoubledivergence(intmypos){inti;doublemaF1maF2maS1maS2;doubledv1dv2;maF1=iMA(Symbol()Fast_TimefrxxxxameFast_PeriodFast_ShiftFast_ModeFast_Pricemypos);maS1=iMA(Symbol()Slow_TimefrxxxxameSlow_PeriodSlow_ShiftSlow_ModeSlow_Pricemypos);dv1=(maF1-maS1);maF2=iMA(Symbol()Fast_TimefrxxxxameFast_PeriodFast_ShiftFast_ModeFast_Pricemypos+1);maS2=iMA(Symbol()Slow_TimefrxxxxameSlow_PeriodSlow_ShiftSlow_ModeSlow_Pricemypos+1);dv2=((maF1-maS1)-(maF2-maS2));return(dv1-dv2);}
SL=OrderOpenPrice()-(spread*2);
OrderModify(OrderTicket()OrderOpenPrice()SLTPRed);
Print("MODIFYBREAKEVENSELLAsk="Ask"bartick="bartick);
obxxxxjectSetText("myz"+DoubleToStr(objtick0)"BE"15"Arial"Red);
Print("-----ERROR-----MODIFYBREAKEVENSELLAsk="Ask"error="gle"bartick="bartick);
SL=Ask+(TrailStop*p);
Print("MODIFYTRAILSTOPSELLStopLoss="SL"bartick="bartick"OrderTicket="OrderTicket()"CurrProfit="CurrentProfit);
obxxxxjectSetText("myz"+DoubleToStr(objtick0)"TS"15"Arial"Red);
Print("-----ERROR-----MODIFYTRAILSTOPSELLAsk="Ask"error="gle"bartick="bartick);
//didwemakeourdesiredSELLprofit?
OrderClose(OrderTicket()LotsAskSlippageRed);
Print("CLOSESELLAsk="Ask"bartick="bartick);
obxxxxjectSetText("myz"+DoubleToStr(objtick0)"C"15"Arial"Red);
Print("-----ERROR-----CLOSESELLAsk="Ask"error="gle"bartick="bartick);
voidCloseEverything()
doublemyAsk;
doublemyBid;
intmyTkt;
doublemyLot;
intmyTyp;
boolresult=false;
for(i=OrdersTotal();i>=0;i--)
OrderSelect(iSELECT_BY_POS);
myAsk=MarketInfo(OrderSymbol()MODE_ASK);
myBid=MarketInfo(OrderSymbol()MODE_BID);
myTkt=OrderTicket();
myLot=OrderLots();
myTyp=OrderType();
switch(myTyp)
//Closeopenedlongpositions
caseOP_BUY:
result=OrderClose(myTktmyLotmyBidSlippageRed);
CEBuy++;
break;
//Closeopenedshortpositions
caseOP_SELL:
result=OrderClose(myTktmyLotmyAskSlippageRed);
CESell++;
//Closependingorders
caseOP_BUYLIMIT:
caseOP_BUYSTOP:
caseOP_SELLLIMIT:
caseOP_SELLSTOP:
result=OrderDelete(OrderTicket());
if(result==false)
Alert("Order"myTkt"failedtoclose.Error:
"GetLastError());
Print("Order"myTkt"failedtoclose.Error:
Sleep(3000);
Sleep(1000);
CEProc++;
}//for
}//closeeverything
doubledivergence(intmypos)
doublemaF1maF2maS1maS2;
doubledv1dv2;
maF1=iMA(Symbol()Fast_TimefrxxxxameFast_PeriodFast_ShiftFast_ModeFast_Pricemypos);
maS1=iMA(Symbol()Slow_TimefrxxxxameSlow_PeriodSlow_ShiftSlow_ModeSlow_Pricemypos);
dv1=(maF1-maS1);
maF2=iMA(Symbol()Fast_TimefrxxxxameFast_PeriodFast_ShiftFast_ModeFast_Pricemypos+1);
maS2=iMA(Symbol()Slow_TimefrxxxxameSlow_PeriodSlow_ShiftSlow_ModeSlow_Pricemypos+1);
dv2=((maF1-maS1)-(maF2-maS2));
return(dv1-dv2);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1