首页 系统交易 帖子

基于重心指标创建EA的尝试 - MetaTrader 4专家顾问

附件
8604.zip (2.25 KB, 下载 2次)

大家好,今天想跟大家分享一个关于交易策略的想法,特别是如何利用重心指标来创建一个专家顾问(EA)。

这个想法其实已经有一段时间了,基于“保守日内剥头皮”策略,但我一直找不到合适的指标来在MT4中实现。

最近我发现了这个指标:重心指标.mq4。现在我正在尝试把它应用到EA中,但这个EA就是不愿意开仓(无论是在模拟账户还是回测中)。我想请教一下,究竟是什么原因呢?

我的思路是:这个指标会生成5条与趋势平行的线。我们可以在极限线的交点处开仓(当然,最好是带有移动止损)。我的具体想法是,当一个周期为1的简单移动平均线(基于最低价的SMA)从下方穿越指标的下限线时,这就可以作为开仓信号,例如买入。而卖出信号则是相反的——当1周期的移动平均线(基于最高价的SMA)从上方穿越上限线时。这个思路可以无止境地进一步发展,但当前我们需要先解决这个开仓问题。

指标:重心指标.mq4

专家顾问:C_S_intraday.mq4(简单版,没有资金管理、时间框架、移动止损等功能)


Bitmap


//+---------------------------------------------------------------------+
//|                              C_S_intraday.mq4                       |
//|                                                                     |
//+---------------------------------------------------------------------+
//
//
//
extern double    lots=0.1;
//extern int       StopLoss=30 ;
//extern int       TrailingStop=15;
//extern int       Slippage=2;

extern int BB = 125;
extern int MM = 2;
extern int II = 0;
extern double KK = 2.0;
extern int NN = 1102;

double  maH0,maH1,maL0,maL1;
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
maH0=iMA(NULL,0,1,0,MODE_LWMA,PRICE_HIGH,0); //基于最高价的移动平均
maH1=iMA(NULL,0,1,0,MODE_LWMA,PRICE_HIGH,1); //基于最高价的移动平均
maL0=iMA(NULL,0,1,0,MODE_LWMA,PRICE_LOW,0);  //基于最低价的移动平均
maL1=iMA(NULL,0,1,0,MODE_LWMA,PRICE_LOW,1);  //基于最低价的移动平均

   int      B= BB;         // 
   int      M= MM;         // 
   int      I= II;         // 
   double   K= KK;         // 
   int      N= NN;         // 
   
   double cgh = iCustom(NULL,0,"重心指标",B,M,I,K,N,3,0);
   double cgl = iCustom(NULL,0,"重心指标",B,M,I,K,N,4,0);
   
if (cgl<maL0)  //如果低位移动平均线从下方穿越指标的最低线
   {
   OrderSend(NULL,OP_BUY,lots,Ask,2,Ask-10*Point,Ask+20*Point,"create1",123,0,Lime);
   }
/*
if (cgh>maH0)
   {
   OrderSend(NULL,OP_SELL,lots,Bid,2,Bid+10*Point,Bid-20*Point,"create1",123,0,Red);
   }  
*/   
//----
   return(0);
  }
//+------------------------------------------------------------------+

相关帖子

评论 (0)