7刷单源码保守参数 另加顺势刷单源码 /* +--------+ |Divergence Trader -- v11 has no divergence. How 'bout that! +--------+ */ #property copyright "Ron Thompson" #property link "https://hao.360.com/?src=lm&ls=n33eae5dc96" extern bool auto_close_order = false; int g_slippage_84 = 7; int g_pos_88; int l_cmd_0; bool li_4; double mAccntProfit=0.0; bool gi_76 = TRUE; bool gi_80 = TRUE; bool gi_84 = TRUE; bool gi_88 = TRUE; double gd_164 = 0.0001; // user input extern double Lots=0.1; // how many lots to trade at a time extern int MA1_Period=50; extern int MA2_Period=150; extern int MA3_Period=10; extern int MA4_Period=20; int MA_Price = PRICE_OPEN; int MA_Mode = MODE_SMA; extern double ProfitMade=10; // how much money do you expect to make extern double LossLimit=115; // how much loss can you tolorate //extern int BasketProfit=10; // if equity reaches this level, close trades //extern int BasketLoss=9999; // if equity reaches this negative level, close trades extern int PLBreakEven=9999; // set break even when this many pips are made (999=off) int Slippage=2; // how many pips of slippage can you tolorate // naming and numbering int MagicNumber = 200601182020; // allows multiple experts to trade on same account string TradeComment = "Divergence_07_"; // Bar handling datetime bartime=0; // used to determine when a bar has moved int bartick=0; // number of times bars have moved int objtick=0; // used to draw objects on the chart int tickcount=0; // Trade control bool TradeAllowed=true; // used to manage trades //+-------------+ //| Custom init | //|-------------+ // Called ONCE when EA is added to chart or recompiled int init() { int i; string o; //remove the old objects for(i=0; i<Bars; i++) { o=DoubleToStr(i,0); ObjectDelete("myx"+o); ObjectDelete("myz"+o); } objtick=0; ObjectDelete("Cmmt"); ObjectCreate( "Cmmt", OBJ_TEXT, 0, Time[20], High[20]+(5*Point) ); ObjectSetText("Cmmt","Divergence=X.XXXX",10,"Arial",White); Print("Init happened ",CurTime()); Comment(" "); } //+----------------+ //| Custom DE-init | //+----------------+ // Called ONCE when EA is removed from chart int deinit() { int i; string o; //remove the old objects for(i=0; i<Bars; i++) { o=DoubleToStr(i,0); ObjectDelete("myx"+o); ObjectDelete("myz"+o); } objtick=0; Print("DE-Init happened ",CurTime()); Comment(" "); } //+-----------+ //| Main | //+-----------+ // Called EACH TICK and each Bar[] int start() { int sig=1; //if(TimeHour(TimeCurrent()) >= 0 && TimeHour(TimeCurrent()) < 8)sig = 1;else sig = 2; double p=Point; double spread=Ask-Bid; int cnt=0; int gle=0; int OrdersPerSymbol=0; // stoploss and takeprofit and close control double SL=0; double TP=0; double CurrentProfit=0; double CurrentBasket=0; // direction control bool BUYme=false; bool SELLme=false; // Trade stuff double ma0; double ma1; double ma2; double ma3; double maHI; double maLO; double maOPEN; double ma2_1,ma2_2; // bar counting if(bartime!=Time[0]) { bartime=Time[0]; bartick++; objtick++; TradeAllowed=true; } OrdersPerSymbol=0; for(cnt=OrdersTotal();cnt>=0;cnt--) { OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); if( OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) { OrdersPerSymbol++; } } //+-----------------------------+ //| Insert your indicator here | //| And set either BUYme or | //| SELLme true to place orders | //+-----------------------------+ // high and low of [1] and open of [0] either above or below the MA maHI=High[1]; maLO=Low[1]; maOPEN=Open[0]; ma0=iMA(Symbol(),0,MA1_Period,0,MA_Mode,MA_Price,1); ma1=iMA(Symbol(),0,MA2_Period,0,MA_Mode,MA_Price,1); ma2=iMA(Symbol(),0,MA3_Period,0,MA_Mode,MA_Price,1); ma3=iMA(Symbol(),0,MA4_Period,0,MA_Mode,MA_Price,1); ma2_1=iMA(Symbol(),0,MA3_Period,0,MA_Mode,MA_Price,0); ma2_2=iMA(Symbol(),0,MA3_Period,0,MA_Mode,MA_Price,2); double kdj1 = iStochastic(Symbol(),0,10,5,5,MODE_SMA,1,MODE_MAIN,1); double kdj2 = iStochastic(Symbol(),0,10,5,5,MODE_SMA,1,MODE_SIGNAL,1); // double kdj11 = iStochastic(Symbol(),0,20,10,10,MODE_SMA,1,MODE_MAIN,1); // double kdj21 = iStochastic(Symbol(),0,20,10,10,MODE_SMA,1,MODE_SIGNAL,1); // if(kdj1>kdj2 && kdj11>kdj21)close_order(OP_SELL,1); // if(kdj1<kdj2 && kdj11<kdj21)close_order(OP_BUY,1); if(auto_close_order){ if(ma2 > ma3)close_order(OP_SELL,0); if(ma2 < ma3)close_order(OP_BUY,0); } if(maHI>ma0 && maLO>ma0 && maOPEN>ma0 && maHI>ma2 && maOPEN>ma2 && maOPEN>ma1 && ma0>ma1 && ma2 > ma3 && ma2_1>ma2 && ma2>ma2_2 //&& kdj1>kdj2 //&& kdj1<90 ) BUYme=true; if(maHI<ma0 && maLO<ma0 && maOPEN<ma0 && maLO<ma2 && maOPEN<ma2 && maOPEN<ma1 && ma0<ma1 && ma2 < ma3 && ma2_1<ma2 && ma2<ma2_2 //&& kdj1<kdj2 //&& kdj1>10 ) SELLme=true; //+------------+ //| End Insert | //+------------+ // if(kdj1>kdj2)close_order(OP_SELL,1); // if(kdj1<kdj2)close_order(OP_BUY,1); //ENTRY LONG (buy, Ask) if(TradeAllowed && BUYme ) { close_order(OP_SELL,0); //Ask(buy, long) if(LossLimit ==0) SL=0; else SL=Ask-( (LossLimit +7)*Point ); if(ProfitMade==0) TP=0; else TP=Ask+( (ProfitMade+7)*Point ); OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,SL,TP,TradeComment,MagicNumber,White); gle=GetLastError(); if(gle==0) { Print("BUY Ask=",Ask," bartick=",bartick); ObjectCreate("myx"+DoubleToStr(objtick,0), OBJ_TEXT, 0, Time[0], High[0]+(5*p)); ObjectSetText("myx"+DoubleToStr(objtick,0),"B",15,"Arial",Red); bartick=0; TradeAllowed=false; } else { Print("-----ERROR----- BUY Ask=",Ask," error=",gle," bartick=",bartick); } } //ENTRY SHORT (sell, Bid) if(TradeAllowed && SELLme ) { close_order(OP_BUY,0); //Bid (sell, short) if(LossLimit ==0) SL=0; else SL=Bid+((LossLimit+7)*Point ); if(ProfitMade==0) TP=0; else TP=Bid-((ProfitMade+7)*Point ); OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,SL,TP,TradeComment,MagicNumber,Red); gle=GetLastError(); if(gle==0) { Print("SELL Bid=",Bid," bartick=",bartick); ObjectCreate("myx"+DoubleToStr(objtick,0), OBJ_TEXT, 0, Time[0], High[0]+(5*p)); ObjectSetText("myx"+DoubleToStr(objtick,0),"S",15,"Arial",Red); bartick=0; TradeAllowed=false; } else { Print("-----ERROR----- SELL Bid=",Bid," error=",gle," bartick=",bartick); } } //Basket profit or loss //CurrentBasket=AccountEquity()-AccountBalance(); //if( CurrentBasket>=BasketProfit || CurrentBasket<=(BasketLoss*(-1)) ) // { // CloseEverything(); // } // CLOSE order if profit target made for(cnt=OrdersTotal();cnt>=0;cnt--) { OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); if( OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber ) { if(OrderType()==OP_BUY) { CurrentProfit=Bid-OrderOpenPrice() ; // modify for break even if (CurrentProfit >= PLBreakEven*p && OrderOpenPrice()>OrderStopLoss()) { SL=OrderOpenPrice()+(spread*2); TP=OrderTakeProfit(); OrderModify(OrderTicket(),OrderOpenPrice(),SL,TP, White); gle=GetLastError(); if(gle==0) { Print("MODIFY BREAKEVEN BUY Bid=",Bid," bartick=",bartick); ObjectCreate("myz"+DoubleToStr(objtick,0), OBJ_TEXT, 0, Time[0], Low[0]-(7*p)); ObjectSetText("myz"+DoubleToStr(objtick,0),"BE",15,"Arial",White); } else { Print("-----ERROR----- MODIFY BREAKEVEN BUY Bid=",Bid," error=",gle," bartick=",bartick); } } // did we make our desired BUY profit // or did we hit the BUY LossLimit if((ProfitMade>0 && CurrentProfit>=(ProfitMade*p)) || (LossLimit>0 && CurrentProfit<=((LossLimit*(-1))*p)) ) { OrderClose(OrderTicket(),Lots,Bid,Slippage,White); gle=GetLastError(); if(gle==0) { Print("CLOSE BUY Bid=",Bid," bartick=",bartick); ObjectCreate("myz"+DoubleToStr(objtick,0), OBJ_TEXT, 0, Time[0], Low[0]-(7*p)); ObjectSetText("myz"+DoubleToStr(objtick,0),"C",15,"Arial",White); } else { Print("-----ERROR----- CLOSE BUY Bid=",Bid," error=",gle," bartick=",bartick); } } } // if BUY if(OrderType()==OP_SELL) { CurrentProfit=OrderOpenPrice()-Ask; // modify for break even if (CurrentProfit >= PLBreakEven*p && OrderOpenPrice()<OrderStopLoss()) { SL=OrderOpenPrice()-(spread*2); TP=OrderTakeProfit(); OrderModify(OrderTicket(),OrderOpenPrice(),SL,TP, Red); gle=GetLastError(); if(gle==0) { Print("MODIFY BREAKEVEN SELL Ask=",Ask," bartick=",bartick); ObjectCreate("myz"+DoubleToStr(objtick,0), OBJ_TEXT, 0, Time[0], Low[0]-(7*p)); ObjectSetText("myz"+DoubleToStr(objtick,0),"BE",15,"Arial",Red); } else { Print("-----ERROR----- MODIFY BREAKEVEN SELL Ask=",Ask," error=",gle," bartick=",bartick); } } // did we make our desired SELL profit? if( (ProfitMade>0 && CurrentProfit>=(ProfitMade*p)) || (LossLimit>0 && CurrentProfit<=((LossLimit*(-1))*p)) ) { OrderClose(OrderTicket(),Lots,Ask,Slippage,Red); gle=GetLastError(); if(gle==0) { Print("CLOSE SELL Ask=",Ask," bartick=",bartick); ObjectCreate("myz"+DoubleToStr(objtick,0), OBJ_TEXT, 0, Time[0], Low[0]-(7*p)); ObjectSetText("myz"+DoubleToStr(objtick,0),"C",15,"Arial",Red); } else { Print("-----ERROR----- CLOSE SELL Ask=",Ask," error=",gle," bartick=",bartick); } } } //if SELL } // if(OrderSymbol) } // for } // start() int close_order(int cmd ,int type){ double pic; if(cmd == OP_BUY)pic = Bid;else pic = Ask; int i; for(i=OrdersTotal();i>=0;i--) { OrderSelect(i, SELECT_BY_POS); if(OrderSymbol() == Symbol()){ if(OrderType() == cmd){ if(type == 0)OrderClose(OrderTicket(),OrderLots(),pic,Slippage,Red); if( type == 1){ if(OrderTakeProfit() > 0)OrderClose(OrderTicket(),OrderLots(),pic,Slippage,Red); } } } } return(0);} |
【下载必读】如何下载本站资源:
*本站资源全部免费下载,请加QQ群:1128719745,验证消息【EAMT】,通过后在【群文件】搜索名称下载!群内禁发广告,每个QQ仅1次申请资格,请珍惜!
*群内资源采用最新的压缩方式,双击直接解压,解压缩时请关闭杀毒软件或允许。无毒请放心使用!