利用均线间隔距离来进行交易的系统方案_第1页
利用均线间隔距离来进行交易的系统方案_第2页
利用均线间隔距离来进行交易的系统方案_第3页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、利用均线间隔距离来进行交易的系统(据说价格300欧元)/ user in putexter n double Lots=0.1;/ how many lots to trade at a timeextern intSlippage=2;/ how many pips of slippage can you tolorateextern intFast_TimeFrame=0;extern intFast_Period=28;extern intFast_Price = PRICE_OPEN;extern intFast_Mode = MODE_SMA;extern intFast_Shift

2、=0;extern intSlow_TimeFrame=0;extern intSlow_Period=73;extern intSlow_Price = PRICE_OPEN;extern intSlow_Mode = MODE_SMA;extern intSlow_Shift=0;extern double DVBuySell=0.002;extern intMAXTrades=5;/ nu mber of trades to have ope n at onceexter n double ProfitMade=100;/ how much money do you expect to

3、makeexter n double LossLimit=72;/ how much loss can you tolorateextern intTrailStop=999;/ traili ng stop (999=no traili ng stop).专业资料.extern int PLBreakEven=999;made (999=off)extern int StartHour=0;/ your local time to start mak ing tradesexter n intStopHour=24;/ your local time to stop mak ing trad

4、esextern int BasketProfit=9999;/ if equity reaches this level, close tradesextern int BasketLoss=9999;/ if equity reaches this n egative level, close/ set break even when this many pips aretrades/ naming and nu mberi ngintMagicNumber = 200601182020; / allows multiple experts to trade on same acco un

5、tstri ngTradeComme nt = "2MA_Diverge nceTrader_04_"/ used to determ ine whe n a bar has moved/ Bar han dli ng datetime bartime=0;intbartick=0;intobjtick=0;inttickco un t=0;/ nu mber of times bars have moved/ used to draw objects on the chart/ Trade con trol/ used to man age tradesbool Trad

6、eAllowed=true;/ Mi n/Max tracki ngdouble maxOrders;double maxEquity;double min Equity;double CECou nt;double CEProc;double CEBuy;double CESell;/+| Custom in it |ll+/ Called ONCE whe n EA is added to chart or recompiled int init()int i;stri ng o;/remove the old objectsfor(i=0; i<Bars; i+)o=DoubleT

7、 oStr(i,0);ObjectDelete("myx"+o);ObjectDelete("myz"+o);objtick=0;Prin t("l nit happe ned ”,CurTime();Comme nt(” ");/+| Custom DE-i nit |/+/ Called ONCE whe n EA is removed from chart int dein it()int i;stri ng o;/remove the old objectsfor(i=0; i<Bars; i+)o=DoubleT oS

8、tr(i,0);ObjectDelete("myx"+o);ObjectDelete("myz"+o);objtick=0;Prin t("MAX number of orders ”,maxOrders);Prin t("MAX equity”,maxEquity);Prin t("MIN equity",mi nEquity);Prin t("Close Everyth ing",CECou nt);Prin t("Close Proc”,CEProc);Prin t("

9、Proc Buy”,CEBuy);Prin t("Proc Sell”,CESell);Print("DE-Init happened ”,CurTime();Comme nt(” ");/+| Ma in|/+/ Called EACH TICK and each Bar int start()double p=Po in t();double spread=Ask-Bid;intcn t=0;intgle=0;intOrdersPerSymbol=0;intOrdersBUY=0;intOrdersSELL=0;intiFileHa ndle;/ stoplo

10、ss and takeprofit and close control double SL=0;double TP=0;double Curre ntProfit=0;double Curren tBasket=0;/ directi on con trolbool BUYme=false;bool SELLme=false;/ Trade stuff double diverge;/ bar counting if(bartime!=TimeO)bartime=TimeO;bartick+;objtick+;TradeAllowed=true;Prin t("Bartick=&qu

11、ot;,bartick);OrdersPerSymbol=0;for(cnt=OrdersT otal();cnt>=O;cnt-)OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);if( OrderSymbol()=Symbol() && OrderMagicNumber()=MagicNumber)OrdersPerSymbol+;if(OrderType()=OP_BUY) OrdersBUY+; if(OrderType()=OP_SELL)OrdersSELL+;if(OrdersPerSymbol>maxOrder

12、s) maxOrders=OrdersPerSymbol;/+| In sert your in dicator here| And set either BUYme or| SELLme true to place orders | /+ diverge=diverge nce(O);Comme nt("Curre nt Diverge nee = ”,diverge);if( diverge>=DVBuySell )BUYme=true;if( diverge<=(DVBuySell*(-1) SELLme=true;/+/| End In sert |/+/ENTR

13、Y LONG (buy, Ask) if(OrdersPerSymbol<=MAXTrades && TradeAllowed && BUYme)/Ask(buy, lo ng)if(LossLimit =0) SL=0; else SL=Ask-(LossLimit+7)*Poi nt();if(ProfitMade=0) TP=0; else TP=Ask+(ProfitMade+7)*Point();OrderSe nd(Symbol(),OP_BUY,Lots,Ask,Slippage,SL,TP ,TradeComme nt,MagicNumbe

14、r,Whit e);gle=GetLastError();if(gle=0)Prin t("BUYAsk=",Ask," bartick=",bartick);ObjectCreate("myx"+DoubleToStr(objtick,0),OBJ_TEXT, 0, TimeO,High0+(5*p);ObjectSetText("myx"+DoubleToStr(objtick,0),"B",15,"Arial",Red);bartick=0;TradeAllowed=f

15、alse;elsePrint("-ERROR- BUYAsk=",Ask," error=",gle," bartick=",bartick);/ENTRY SHORT (sell, Bid)if(OrdersPerSymbol<=MAXTrades && TradeAllowed && SELLme )/Bid (sell, short)if(LossLimit =0) SL=0; else SL=Bid+(LossLimit+7)*Poi nt(); if(ProfitMade=0) TP=0

16、; else TP=Bid-(ProfitMade+7)*Poi nt();OrderSe nd(Symbol(),OP_SELL,Lots,Bid,Slippage,SL,TP ,TradeComme nt,MagicNumber,Red);gle=GetLastError();if(gle=O)Prin t("SELL Bid=",Bid," bartick=",bartick);Time0,ObjectCreate("myx"+DoubleToStr(objtick,0),OBJ_TEXT, 0,High0+(5*p);Obje

17、ctSetText("myx"+DoubleToStr(objtick,0),"S",15,"Arial",Red);bartick=0;TradeAllowed=false;elsePrint("-ERROR- SELL Bid=",Bid," error=",gle," bartick=",bartick);/Basket profit or lossCurren tBasket=Acco un tEquity()-Acco un tBala nce();if(Curre

18、 ntBasket>maxEquity) maxEquity=Curre ntBasket;if(Curre ntBasket<mi nEquity) min Equity=Curre ntBasket;if( CurrentBasket>=BasketProfit | CurrentBasket<=(BasketLoss*(-1)CloseEverythi ng();CECou nt+;/ CLOSE order if profit target made for(c nt=0;c nt<OrdersTotal();c nt+)OrderSelect(cnt,

19、SELECT_BY_POS, MODE_TRADES);if( OrderSymbol()=Symbol() && OrderMagicNumber()=MagicNumber )if(OrderType()=OP_BUY)Curre ntProfit=Bid-OrderOpe nPrice();/ modify for break even>=PLBreakEve n*p&&if(Curre ntProfitOrderOpe nPrice()>OrderStopLoss()SL=OrderOpe nPrice()+(spread*2);TP=Ord

20、erTakeProfit();OrderModify(OrderTicket(),OrderOpe nPrice(),SL,TP, White);gle=GetLastError();if(gle=0)Prin t("MODIFY BREAKEVEN BUY Bid=",Bid," bartick=",bartick);ObjectCreate("myz"+DoubleToStr(objtick,0),OBJ_TEXT, 0, TimeO,Low0-(7*p);ObjectSetText("myz"+DoubleT

21、 oStr(objtick,0),"BE",15,"Arial",White);elsePrint("-ERROR-MODIFY BREAKEVEN BUY Bid=",Bid,"error=",gle," bartick=",bartick);/ modify for trailing stopif(Curre ntProfit >= TrailStop*p )SL=Bid-(TrailStop*p);TP=OrderTakeProfit();OrderModify(OrderTicke

22、t(),OrderOpe nPrice(),SL,TP, White);gle=GetLastError();if(gle=0)Print ("MODIFY TRAILSTOP BUYStopLoss=",SL," bartick=",bartick,"OrderTicket=",OrderTicket()," CurrProfit=",Curre ntProfit);ObjectCreate("myz"+DoubleToStr(objtick,0),OBJ_TEXT, 0, Time0,Low

23、0-(7*p);ObjectSetText("myz"+DoubleT oStr(objtick,0),"TS",15,"Arial",White);elsePrint("-ERROR-MODIFY TRAILSTOP BUY Bid=",Bid,"error=",gle," bartick=",bartick);/ did we make our desired BUY profit/ or did we hit the BUY LossLimitif(Curre ntPr

24、ofit>=(ProfitMade*p) | Curre ntProfit<=(LossLimit*(-1)*p)OrderClose(OrderTicket(),Lots,Bid,Slippage,White);gle=GetLastError();if(gle=0)Prin t("CLOSE BUY Bid=",Bid," bartick=",bartick);ObjectCreate("myz"+DoubleToStr(objtick,0),OBJ_TEXT, 0, Time0,Low0-(7*p);ObjectSe

25、tText("myz"+DoubleT oStr(objtick,0),"C",15,"Arial",White);elsePrint("-ERROR-CLOSE BUY Bid=",Bid,"bartick=",bartick); / if BUYif(OrderType()=OP_SELL)Curre ntProfit=OrderOpe nPrice()-Ask;/ modify for break evenif(Curre ntProfit>=PLBreakEve n*pOrderO

26、pe nPrice()<OrderStopLoss()SL=OrderOpe nPrice()-(spread*2);TP=OrderTakeProfit();error=",gle,"&&OrderModify(OrderTicket(),OrderOpe nPrice(),SL,TP, Red);gle=GetLastError();if(gle=O)Print("MODIFY BREAKEVEN SELL Ask=",Ask," bartick=",bartick);ObjectCreate("m

27、yz"+DoubleToStr(objtick,0),OBJ_TEXT, 0, TimeO,Low0-(7*p);ObjectSetText("myz"+DoubleT oStr(objtick,0),"BE",15,"Arial",Red);elsePrint("-ERROR-MODIFY BREAKEVEN SELL Ask=",Ask,"error=",gle," bartick=",bartick);/ modify for trailing stopif(

28、Curre ntProfit >= TrailStop*p)SL=Ask+(TrailStop*p);TP=OrderTakeProfit();OrderModify(OrderTicket(),OrderOpe nPrice(),SL,TP , Red);gle=GetLastError();if(gle=0)Print ("MODIFY TRAILSTOP SELL StopLoss=",SL," bartick=",bartick,"OrderTicket=",OrderTicket()," CurrProfit

29、=",Curre ntProfit);ObjectCreate("myz"+DoubleToStr(objtick,0),OBJ_TEXT, 0, Time0,Low0-(7*p);ObjectSetText("myz"+DoubleT oStr(objtick,0),"TS",15,"Arial",Red);elsePrint("-ERROR-MODIFY TRAILSTOP SELL Ask=",Ask,"error=",gle," bartick=&

30、quot;,bartick);/ did we make our desired SELL profit?if( Curre ntProfit>=(ProfitMade*p) | Curre ntProfit<=(LossLimit*(-1)*p)OrderClose(OrderTicket(),Lots,Ask,Slippage,Red);gle=GetLastError();if(gle=0)Prin t("CLOSE SELL Ask=",Ask," bartick=",bartick);ObjectCreate("myz&q

31、uot;+DoubleToStr(objtick,0),OBJ_TEXT, 0, Time0,Low0-(7*p);ObjectSetText("myz"+DoubleT oStr(objtick,0),"C",15,"Arial",Red);elsePrint("-ERROR-CLOSE SELL Ask=",Ask," error=",gle,"bartick=",bartick); /if SELL / if(OrderSymbol) / for / start()/+

32、| CloseEverythi ng |/+/ Closes all OPEN and PENDING orders int CloseEverythi ng()double myAsk;double myBid;intmyTkt;double myLot;intmyTyp;int i;bool result = false;for(i=OrdersTotal();i>=0;i-)OrderSelect(i, SELECT_BY_POS);myAsk=Marketl nfo(OrderSymbol(),MODE_ASK);myBid=Marketl nfo(OrderSymbol(),M

33、ODE_BID);myTkt=OrderTicket();myLot=OrderLots();myTyp=OrderType();switch( myTyp )/Close ope ned long positi onscase OP_BUY:result = OrderClose(myTkt, myLot, myBid, Slippage, Red);CEBuy+;break;/Close ope ned short positi onscase OP_SELL:result = OrderClose(myTkt, myLot, myAsk, Slippage, Red);CESell+;b

34、reak;/Close pending orderscase OP_BUYLIMIT :case OP_BUYSTOP :case OP_SELLLIMIT:case OP_SELLSTOP :result = OrderDelete( OrderTicket();if(result = false)Alert("Order " , myTkt , " failed to close. Error:" , GetLastError();Prin t("Order " , myTkt , " failed to close.

35、Error:" , GetLastError();Sleep(3000);Sleep(1000);CEProc+; /for / closeeveryth ingdouble diverge nce(i nt mypos)int i;double maF1, maF2, maS1, maS2;double dv1, dv2;maF 仁 iMA(Symbol(),Fast_TimeFrame,Fast_Period,Fast_Shift,Fast_Mode,Fast_Price,mypos)5maS仁iMA(Symbol(),Slow_TimeFrame,Slow_Period,Slo

36、w_Shift,Slow_Mode,Slow_Price,mypos);dv仁(maF1-maS1);maF2=iMA(Symbol(),Fast_TimeFrame,Fast_Period,Fast_Shift,Fast_Mode,Fast_Price,mypos+1);maS2=iMA(Symbol(),Slow_TimeFrame,Slow_Period,Slow_Shift,Slow_Mode,Slow_Price,my pos+1);dv2=(maF1-maS1)-(maF2-maS2);return(dv1-dv2);/*int PlaceOrder(string currency

37、, string BuySell, int PM, int LL)/ Retur ns GetLastError nu mber/ you can call with ProfitMade or LossLimit set to/ zero, and none will be set whe n order is placedint gle=0;/ GetLastError nu mberdouble mySL;/ locally gen erated SLdouble myTP;/ locally gen erated TPdouble myAsk = Market In fo(curre ncy, MODE_ASK);double myBid =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论