两线发散交易法.docx

上传人:b****5 文档编号:30212920 上传时间:2023-08-07 格式:DOCX 页数:15 大小:16.64KB
下载 相关 举报
两线发散交易法.docx_第1页
第1页 / 共15页
两线发散交易法.docx_第2页
第2页 / 共15页
两线发散交易法.docx_第3页
第3页 / 共15页
两线发散交易法.docx_第4页
第4页 / 共15页
两线发散交易法.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

两线发散交易法.docx

《两线发散交易法.docx》由会员分享,可在线阅读,更多相关《两线发散交易法.docx(15页珍藏版)》请在冰豆网上搜索。

两线发散交易法.docx

两线发散交易法

//+------------------------------------------------------------------+

//|两线发散交易法.mq4|

//|QQ群:

汇聚技术交流-806758447。

进群可享海量EA及指标资源定期或不定期更新资源供大家学习和参考|

//|进群请先加管理员QQ:

3365609227|

//+------------------------------------------------------------------+

#propertycopyright"QQ群:

汇聚技术交流-806758447。

进群可享海量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;

//removetheoldobxxxxjects

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(CurrentBasket

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();

//modifyforbreakeven

if(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;

//modifyforbreakeven

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)

{

//Closeopenedlongpositions

caseOP_BUY:

result=OrderClose(myTktmyLotmyBidSlippageRed);

CEBuy++;

break;

//Closeopenedshortpositions

caseOP_SELL:

result=OrderClose(myTktmyLotmyAskSlippageRed);

CESell++;

break;

//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:

"GetLastError());

Sleep(3000);

}

Sleep(1000);

CEProc++;

}//for

}//closeeverything

doubledivergence(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);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1