夜雨聆风学习资料网

ARTICLE · 1018797

适合跑欧美的EA源码分享:5 分钟均线回踩突破策略!

适合跑欧美的EA源码分享:5 分钟均线回踩突破策略!
HI,大家好
周三福利日到了,以前分享的大多数都是做黄金的EA,这次来一个适合欧美的突破策略源码,整体思路是这样的:思路是 5 分钟均线回踩突破策略、一单模式、固定盈亏比;但是半成品代码,大量参数无效,MACD/KD/ 大周期均线没有参与信号过滤,不过,感觉这个源码还有多处 BUG,我们没有实际测试过,不能直接实盘使用,只能作为策略原型来测试玩玩。
几个优点:
  1. 一单模式,防止马丁加仓
    :同一个品种同一时间只持有一张单子,不会无限加仓,规避马丁爆仓风险。
  2. 多周期均线结构思路
    :设计初衷是 5 分钟主周期抓回踩突破,同时读取 H1/H4 均线,意图过滤大周期方向(虽然代码没用上大周期判断)。
  3. 固定盈亏比:止损 330Point,止盈 550Point,盈亏比约 1.67:1,只要胜率大于 37% 长期理论可盈利。
  4. 逻辑简单:纯价格 + 均线结构,没有复杂震荡指标过滤,信号触发速度快。
  5. 自带 SL/TP,订单进场就挂上止损止盈,不会出现裸单。
源码:
#property copyright "浪人EA 微信 waihuipai"#property link      "http://www.langrenea.net"//-----------------------------------+#define MagicNumber 23478423 //-----------------------------------+extern int       Trailing=50;extern double    Lots=1;double lot;extern double    Risk=0.01;extern double DF     =0;extern double SF     =0;extern int SK=1;extern int       myma =60;//启始买点extern int       kdlow = 45;//启始买点extern int       kdhi = 55;//启始买点extern int       iTicket;extern int       zy=100,zs=50;extern int       a=50,b=40,c=30,d;extern double    iStopLoss,iTakeProfit;extern double    kp;extern double    iLot1=0.1,iLot2=0.2,iLot3=0.1;extern double    iAsk,iSlippage=40,iMagicNumber=11111;//---------- indicators ------------+int Ticket;double mac1, mac2, mac3, mac4, mac5, mac6, mac7, mac8;double vma[50], kdjm2, kdjs2, kdjm1, kdjs1,g_rsi0,g_icc0;int  B[50],A[50],t=0;double  C,D,M;//-----------------------------------+voidOpBuySell(){        if(vma[1]>vma[2]&&vma[2]>vma[3]&&Low[5]>vma[1]&&Low[4]>vma[1]&&Low[3]>vma[1]&&Low[2]>vma[1]&&Low[1]>vma[1]&&Low[0]<vma[1])        {        Ticket=OrderSend(Symbol(),OP_BUY,0.1,Bid,iSlippage,Bid-330*Point,Bid+550*Point,"expert master",iMagicNumber,0,Green);        }        if(vma[1]<vma[2]&&vma[2]<vma[3]&&High[5]<vma[1]&&High[4]<vma[1]&&High[3]<vma[1]&&High[2]<vma[1]&&High[1]<vma[1]&&High[0]>vma[1])        {        Ticket=OrderSend(Symbol(),OP_SELL,0.1,Ask,iSlippage,Ask+330*Point,Ask-550*Point,"expert master",iMagicNumber,0,Green);        }}//----------------------------------------//---------------------------+++++++++++++//---------------------------++++++++++++//----------------------------+++++++++++//void CloseOpBuySell()//{//------------------------------------ //          if(AccountProfit()>500) //            {//iStopLoss=OrderOpenPrice()+0.0055  ;     //        OrderModify(OrderTicket(),OrderOpenPrice(),iStopLoss, OrderTakeProfit(),0,Blue); //          OrderClose(OrderTicket(),OrderLots(),Ask,3,CLR_NONE);               //           }        //        if(AccountProfit()>500)    //         {//iStopLoss=OrderOpenPrice()-0.0055 ;      //       OrderModify(OrderTicket(),OrderOpenPrice(),iStopLoss, OrderTakeProfit(),0,Red);   //        OrderClose(OrderTicket(),OrderLots(),Bid,3,CLR_NONE);  //           }            //}//-----------------------------------+//-----------------------------------+intstart(){int total=OrdersTotal();t=0;mac1 = iMACD(NULL,0,5,15,3,PRICE_CLOSE,MODE_MAIN,1);mac2 = iMACD(NULL,0,5,15,3,PRICE_CLOSE,MODE_MAIN,2);mac3 = iMACD(NULL,0,5,15,3,PRICE_CLOSE,MODE_MAIN,3);mac4 = iMACD(NULL,0,5,15,3,PRICE_CLOSE,MODE_MAIN,4);mac5 = iMACD(NULL,0,5,15,3,PRICE_CLOSE,MODE_SIGNAL,1);mac6 = iMACD(NULL,0,5,15,3,PRICE_CLOSE,MODE_SIGNAL,2);mac7 = iMACD(NULL,0,5,15,3,PRICE_CLOSE,MODE_SIGNAL,3);mac8 = iMACD(NULL,0,5,15,3,PRICE_CLOSE,MODE_SIGNAL,4);      vma[1] = iMA (Symbol(), PERIOD_M5, 60, 0, MODE_EMA, PRICE_MEDIAN, 1);      vma[2] = iMA (Symbol(), PERIOD_M5, 60, 0, MODE_EMA, PRICE_MEDIAN, 10);      vma[3] = iMA (Symbol(), PERIOD_M5, 60, 0, MODE_EMA, PRICE_MEDIAN, 20);      vma[4] = iMA (Symbol(), PERIOD_H4, 5, 0, MODE_EMA, PRICE_CLOSE, 1);      vma[5] = iMA (Symbol(), PERIOD_H4, 10, 0, MODE_EMA, PRICE_CLOSE, 1);      vma[6] = iMA (Symbol(), PERIOD_H4, 20, 0, MODE_EMA, PRICE_CLOSE, 1);      vma[7] = iMA (Symbol(), PERIOD_H1, 5, 0, MODE_EMA, PRICE_CLOSE, 2);      vma[8] = iMA (Symbol(), PERIOD_H1, 10, 0, MODE_EMA, PRICE_CLOSE, 2);      vma[9] = iMA (Symbol(), PERIOD_H1, 20, 0, MODE_EMA, PRICE_CLOSE, 2);      vma[10] = iMA (Symbol(), PERIOD_H4, 5, 0, MODE_EMA, PRICE_CLOSE, 2);      vma[11] = iMA (Symbol(), PERIOD_H4, 10, 0, MODE_EMA, PRICE_CLOSE, 2);      vma[12] = iMA (Symbol(), PERIOD_H4, 20, 0, MODE_EMA, PRICE_CLOSE, 2);      kdjm2 = iStochastic (Symbol(), 0, 8, 5, 3, MODE_SMA, 0, MODE_MAIN, 1);      kdjs2 = iStochastic (Symbol(), 0, 8, 5, 3, MODE_SMA, 0, MODE_SIGNAL, 1);      kdjm1 = iStochastic (Symbol(), 0, 8, 5, 3, MODE_SMA, 0, MODE_MAIN, 0);      kdjs1 = iStochastic (Symbol(), 0, 8, 5, 3, MODE_SMA, 0, MODE_SIGNAL, 0);     for(int cnt=0;cnt<=total;cnt++)   {Alert("开始执行");     OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);           if(OrderMagicNumber()==11111)           {t=1;           Print(t);           }   if( t==0)      {          OpBuySell() ;     Alert("开第一单");          }    // return(0);   }          return(0);//-----------------------------------+}

相关学习资料