1

我知道您可以使用内置iMACD()功能,但它使用了我需要的变体。我只对第一点感兴趣。访问时MACDLineBuffer[1]我得到正确的值。然而SignalLineBuffer[1],因此HistogramBuffer[1]显着关闭。

int SignalMAPeriod = 9;
double alpha   = 2.0 / (SignalMAPeriod + 1.0);
double alpha_1 = 1.0 - alpha;

   for(int i=limit; i>=0; i--)
   {
      MACDLineBuffer[i]   = iMA(NULL,0,FastMAPeriod,0,MODE_EMA,PRICE_CLOSE,i)
                          - iMA(NULL,0,SlowMAPeriod,0,MODE_EMA,PRICE_CLOSE,i);

      SignalLineBuffer[i] = alpha   * MACDLineBuffer[i]
                          + alpha_1 * SignalLineBuffer[i+1];

      HistogramBuffer[i]  = MACDLineBuffer[i]
                          - SignalLineBuffer[i];
   }
4

0 回答 0