我知道您可以使用内置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];
}