📅 财经日历 📊 实时波动 📈 大盘云图 📶 行情走势 🆚 投机情绪 🚀 今日热点

    紧急求助!EA中如何调用该指标?

    2011-10-24 · 7011 阅读
    紧急求助!EA中如何调用该指标
      我有两年的外汇交易经验,今年以来运用一套超短线策略帐户资金开始出现增长。对于编程我有一些经验,对于EA我还是新手。
      我想将我的策略用EA来实现。等EA基本做出来的时候与大家分享和改进。
      
      现在的问题是:EA中用到指标slope direction line实现基本的趋势判断,但我不知到如何正确调用。
      
      double iCustom( string symbol, int timeframe, string name, ... , int mode, int shift)
      
      其中int mode是什么?具体对于slope direction line而言,mode应该是什么?下面语句中问号应该是什么?
      
      if(iCustom(NULL,PERIOD_M30,\"Slope Direction Line\",10,2,4,?,0)==?) {.....//趋势向上}
      
      
      slope direction line代码如下
      
                                        
      //+------------------------------------------------------------------+
      #property copyright \"MT4 release WizardSerg <a href=\"mailto:wizardserg@mail.ru\"wizardserg@mail.ru/a>, ?? ??????? ForeXMagazine #104\"
      #property link      \"wizardserg@mail.ru\"
      
      #property indicator_chart_window
      #property indicator_buffers 2
      #property indicator_color1 Blue
      #property indicator_color2 Red
      //---- input parameters
      extern int       period=10;
      extern int       method=2;                         // MODE_SMA
      extern int       price=4;                          // PRICE_CLOSE
      //---- buffers
      double Uptrend[];
      double Dntrend[];
      double ExtMapBuffer[];
      
      
      //+------------------------------------------------------------------+
      //| Custom indicator initialization function                         |
      //+------------------------------------------------------------------+
      int init()
      {
          IndicatorBuffers(3);  
          SetIndexBuffer(0, Uptrend);
          //ArraySetAsSeries(Uptrend, true);
          SetIndexBuffer(1, Dntrend);
          //ArraySetAsSeries(Dntrend, true);
          SetIndexBuffer(2, ExtMapBuffer);
          ArraySetAsSeries(ExtMapBuffer, true);
          
          SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);
          SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2);
          
          IndicatorShortName(\"Slope Direction Line(\"+period+\")\");
          return(0);
      }
      
      //+------------------------------------------------------------------+
      //| Custor indicator deinitialization function                       |
      //+------------------------------------------------------------------+
      int deinit()
      {
          // ???? ????? ?????? ??????
          return(0);
      }
      
      //+------------------------------------------------------------------+
      //| ?????????? ???????                                               |
      //+------------------------------------------------------------------+
      double WMA(int x, int p)
      {
          return(iMA(NULL, 0, p, 0, method, price, x));   
      }
      
      //+------------------------------------------------------------------+
      //| Custom indicator iteration function                              |
      //+------------------------------------------------------------------+
      int start()
      {
          int counted_bars = IndicatorCounted();
          
          if(counted_bars < 0)
              return(-1);
                        
          int x = 0;
          int p = MathSqrt(period);              
          int e = Bars - counted_bars + period + 1;
          
          double vect[], trend[];
          
          if(e > Bars)
              e = Bars;   
      
          ArrayResize(vect, e);
          ArraySetAsSeries(vect, true);
          ArrayResize(trend, e);
          ArraySetAsSeries(trend, true);
          
          for(x = 0; x < e; x++)
          {
              vect[x] = 2*WMA(x, period/2) - WMA(x, period);        
      //       Print(\"Bar date/time: \", TimeToStr(Time[x]), \" close: \", Close[x], \" vect[\", x, \"] = \", vect[x], \" 2*WMA(p/2) = \", 2*WMA(x, period/2), \" WMA(p) = \",  WMA(x, period));
          }
      
          for(x = 0; x < e-period; x++)
          
              ExtMapBuffer[x] = iMAOnArray(vect, 0, p, 0, method, x);        
          
          for(x = e-period; x >= 0; x--)
          {     
              trend[x] = trend[x+1];
              if (ExtMapBuffer[x]> ExtMapBuffer[x+1]) trend[x] =1;
              if (ExtMapBuffer[x]< ExtMapBuffer[x+1]) trend[x] =-1;
          
          if (trend[x]>0)
          { Uptrend[x] = ExtMapBuffer[x];
            if (trend[x+1]
    ""
    还没有人打赏,支持一下
    回复

    举报

     

    回答|共 14 个

    自然的味道 LV5

    发表于 2012-11-22 00:28:10 | 显示全部楼层

    感謝樓主  

    姐想赚钱 LV5

    发表于 2012-11-22 00:28:10 | 显示全部楼层

    回复一下  

    樱桃小猪猪 LV5

    发表于 2012-11-22 00:28:10 | 显示全部楼层

    我该不会是最后一个顶的吧  

    严守一 LV5

    发表于 2012-11-22 00:28:10 | 显示全部楼层

    我来了~~~~~~~~~ 闪人~~~~~~~~~~~~~~~~  

    snail LV5

    发表于 2012-11-22 00:28:10 | 显示全部楼层

    对不起,我走错地方了,呵呵  

    lr兑换 LV5

    发表于 2012-11-22 00:28:10 | 显示全部楼层

    你还想说什么啊....  

    西城威尔士 LV6

    发表于 2012-11-22 00:28:10 | 显示全部楼层

    谁都不容易啊 ~~  

    问问 LV5

    发表于 2012-11-22 00:28:10 | 显示全部楼层

    我的啦嘿嘿  

    一塌糊涂 LV3

    发表于 2014-12-18 13:11:26 | 显示全部楼层

    看看什么EA,,,
    12下一页
    您需要登录后才可以回帖 登录 | 注册

    提醒: 禁止引战、谩骂、灌水内容

    微信二维码

    有问题联系客服