10评论

0收藏

想用EA测试一个指标,跪求高人指点

avatar ipwzlbw772 | 5194 人阅读 | 10 人评论 | 2011-11-17

指标代码如下:想测试红色部分的参数,思路是把两个指标分别设置不同的参数加载在同一周期图上,然后跑EA选出合适的参数组合,就是每两个参数一组,比如 Length = 26Length = 20,然后测试这两个参数同时发出信号的胜率。希望能得到高人指点,小弟稍微能看懂一点代码,但是写起来困难,希望有人能给个提示或者有类似测试参数的代码能提供参考,先谢过了,指标在附近
  
  #property indicator_chart_window
  #property indicator_buffers 6
  #property indicator_color1 Blue
  #property indicator_color2 Red
  #property indicator_color3 White
  #property indicator_color4 Gold
  #property indicator_color5 Blue
  #property indicator_color6 Red
  
  extern int Length = 26;
  extern int Deviation = 1;
  extern double MoneyRisk = 1.0;
  extern int Signal = 1;
  extern int Line = 1;
  extern int Nbars = 1000;
  double g_ibuf_104[];
  double g_ibuf_108[];
  double g_ibuf_112[];
  double g_ibuf_116[];
  double g_ibuf_120[];
  double g_ibuf_124[];
  extern bool SoundON = TRUE;
  bool gi_132 = FALSE;
  bool gi_136 = FALSE;
  
  int init() {
     SetIndexBuffer(0, g_ibuf_104);
     SetIndexBuffer(1, g_ibuf_108);
     SetIndexBuffer(2, g_ibuf_112);
     SetIndexBuffer(3, g_ibuf_116);
     SetIndexBuffer(4, g_ibuf_120);
     SetIndexBuffer(5, g_ibuf_124);
     SetIndexStyle(0, DRAW_ARROW, STYLE_SOLID, 1);
     SetIndexStyle(1, DRAW_ARROW, STYLE_SOLID, 1);
     SetIndexStyle(2, DRAW_ARROW, STYLE_SOLID, 1);
     SetIndexStyle(3, DRAW_ARROW, STYLE_SOLID, 1);
     SetIndexStyle(4, DRAW_LINE);
     SetIndexStyle(5, DRAW_LINE);
     SetIndexArrow(0, 159);
     SetIndexArrow(1, 159);
     SetIndexArrow(2, 108);
     SetIndexArrow(3, 108);
     IndicatorDigits(MarketInfo(Symbol(), MODE_DIGITS));
     string ls_0 = \"BBands Stop(\" + Length + \",\" + Deviation + \")\";
     IndicatorShortName(ls_0);
     SetIndexLabel(0, \"UpTrend Stop\");
     SetIndexLabel(1, \"DownTrend Stop\");
     SetIndexLabel(2, \"UpTrend Signal\");
     SetIndexLabel(3, \"DownTrend Signal\");
     SetIndexLabel(4, \"UpTrend Line\");
     SetIndexLabel(5, \"DownTrend Line\");
     SetIndexDrawBegin(0, Length);
     SetIndexDrawBegin(1, Length);
     SetIndexDrawBegin(2, Length);
     SetIndexDrawBegin(3, Length);
     SetIndexDrawBegin(4, Length);
     SetIndexDrawBegin(5, Length);
     return (0);
  }
  
  int start() {
     int li_8;
     double lda_12[25000];
     double lda_16[25000];
     double lda_20[25000];
     double lda_24[25000];
     for (int l_shift_4 = Nbars; l_shift_4 >= 0; l_shift_4--) {
        g_ibuf_104[l_shift_4] = 0;
        g_ibuf_108[l_shift_4] = 0;
        g_ibuf_112[l_shift_4] = 0;
        g_ibuf_116[l_shift_4] = 0;
        g_ibuf_120[l_shift_4] = EMPTY_VALUE;
        g_ibuf_124[l_shift_4] = EMPTY_VALUE;
     }
     for (l_shift_4 = Nbars - Length - 1; l_shift_4 >= 0; l_shift_4--) {
        lda_12[l_shift_4] = iBands(NULL, 0, Length, Deviation, 0, PRICE_CLOSE, MODE_UPPER, l_shift_4);
        lda_16[l_shift_4] = iBands(NULL, 0, Length, Deviation, 0, PRICE_CLOSE, MODE_LOWER, l_shift_4);
        if (Close[l_shift_4] > lda_12[l_shift_4 + 1]) li_8 = 1;
        if (Close[l_shift_4] < lda_16[l_shift_4 + 1]) li_8 = -1;
        if (li_8 > 0 && lda_16[l_shift_4] < lda_16[l_shift_4 + 1]) lda_16[l_shift_4] = lda_16[l_shift_4 + 1];
        if (li_8 < 0 && lda_12[l_shift_4] > lda_12[l_shift_4 + 1]) lda_12[l_shift_4] = lda_12[l_shift_4 + 1];
        lda_20[l_shift_4] = lda_12[l_shift_4] + (MoneyRisk - 1.0) / 2.0 * (lda_12[l_shift_4] - lda_16[l_shift_4]);
        lda_24[l_shift_4] = lda_16[l_shift_4] - (MoneyRisk - 1.0) / 2.0 * (lda_12[l_shift_4] - lda_16[l_shift_4]);
        if (li_8 > 0 && lda_24[l_shift_4] < lda_24[l_shift_4 + 1]) lda_24[l_shift_4] = lda_24[l_shift_4 + 1];
        if (li_8 < 0 && lda_20[l_shift_4] > lda_20[l_shift_4 + 1]) lda_20[l_shift_4] = lda_20[l_shift_4 + 1];
        if (li_8 > 0) {
           if (Signal > 0 && g_ibuf_104[l_shift_4 + 1] == -1.0) {
              g_ibuf_112[l_shift_4] = lda_24[l_shift_4];
              g_ibuf_104[l_shift_4] = lda_24[l_shift_4];
              if (Line > 0) g_ibuf_120[l_shift_4] = lda_24[l_shift_4];
              if (SoundON == TRUE && l_shift_4 == 0 && !gi_132) {
                 Alert(\"BUY = DOT PUTIH, SS2009_B(BIRU), SS2009_C(BIRU) \", Symbol(), \"-\", Period());
                 gi_132 = TRUE;
                 gi_136 = FALSE;
              }
           } else {
              g_ibuf_104[l_shift_4] = lda_24[l_shift_4];
              if (Line > 0) g_ibuf_120[l_shift_4] = lda_24[l_shift_4];
              g_ibuf_112[l_shift_4] = -1;
           }
           if (Signal == 2) g_ibuf_104[l_shift_4] = 0;
           g_ibuf_116[l_shift_4] = -1;
           g_ibuf_108[l_shift_4] = -1.0;
           g_ibuf_124[l_shift_4] = EMPTY_VALUE;
        }
        if (li_8 < 0) {
           if (Signal > 0 && g_ibuf_108[l_shift_4 + 1] == -1.0) {
              g_ibuf_116[l_shift_4] = lda_20[l_shift_4];
              g_ibuf_108[l_shift_4] = lda_20[l_shift_4];
              if (Line > 0) g_ibuf_124[l_shift_4] = lda_20[l_shift_4];
              if (SoundON == TRUE && l_shift_4 == 0 && !gi_136) {
                 Alert(\"SELL = DOT KUNING, SS2009_B(MERAH), SS2009_C(MERAH) \", Symbol(), \"-\", Period());
                 gi_136 = TRUE;
                 gi_132 = FALSE;
              }
           } else {
              g_ibuf_108[l_shift_4] = lda_20[l_shift_4];
              if (Line > 0) g_ibuf_124[l_shift_4] = lda_20[l_shift_4];
              g_ibuf_116[l_shift_4] = -1;
           }
           if (Signal == 2) g_ibuf_108[l_shift_4] = 0;
           g_ibuf_112[l_shift_4] = -1;
           g_ibuf_104[l_shift_4] = -1.0;
           g_ibuf_120[l_shift_4] = EMPTY_VALUE;
        }
     }
     return (0);
  }
""
还没有人打赏,支持一下

评论|共 10 个

龙行天下

发表于 2012-11-21 23:00:05 | 显示全部楼层

现在还真的要重视EA了  

mt5mt5

发表于 2012-11-21 23:00:05 | 显示全部楼层

感謝樓主  

副会他爹

发表于 2012-11-21 23:00:05 | 显示全部楼层

呵呵,找个机会...  

印度阿三

发表于 2012-11-21 23:00:05 | 显示全部楼层

真笨,如果有那么好赚的话,就不用做广告给你们了!这些都是骗人的!就像股票软件一样。。。。  

郁闷小甜甜

发表于 2012-11-21 23:00:05 | 显示全部楼层

不错的东西  持续关注  

fxsin代理

发表于 2014-10-28 17:15:20 | 显示全部楼层

研究研究

小狗臭臭

发表于 2014-11-5 19:03:19 | 显示全部楼层

路过。。看下先。

henry888

发表于 2014-11-8 01:39:50 | 显示全部楼层

谢谢分享!!!!!

xivaobqz

发表于 2014-11-10 14:52:23 | 显示全部楼层

感谢分享

12下一页
您需要登录后才可以回帖 登录 | 注册 微信登录

EA之家评论守则