TA-LIB Mama指标

时间:2016-02-04 13:52:00

标签: java ta-lib

我从TA-LIB Mama指标得到了奇怪的结果。

使用相同的价格数组调用其他指标可以得到正确的结果。

但是对core.mama()的调用给妈妈的价值提供了一两点,而Fama的价值高达30点。我与JForex中的值进行了比较,我已经对其他平台进行了验证。

我通过调用TA-LIB设置价格数组的长度,但更长的回顾并没有改善结果:

int priceLength = core.mamaLookback(fastLimit, slowLimit) + 1;

我对fastLimit和slowLimit的设置在合理范围内。

startIdx参数更改为0并返回更多值也无济于事。

代码很简单,很难看出我做错了什么。我是否有某种脑屁,或者图书馆被窃听?

   public static double[] runMama(double[] prices, double fastLimit, double slowLimit) {

    try {
        MInteger outBegIdx = new MInteger();    
        MInteger outNbElement = new MInteger(); 
        int count = prices.length;
        Core core = new Core();

        // We only need the most recent value.

        double[] outputFama = new double[1];
        double[] outputMama = new double[1];

        RetCode retCode = core.mama(count-1, count-1, prices, fastLimit, slowLimit, outBegIdx, outNbElement, outputMama, outputFama);

        if (retCode != RetCode.Success) {
            throw new RuntimeException("TA-LIB Mama has barfed!");
        }

        return new double[]{outputMama[0], outputFama[0]};

    } catch (Exception e) {
        Printer.printErr("Problem with MESA", e);
        return null;
    }
}

1 个答案:

答案 0 :(得分:2)

好的 - 我的不好

我没有意识到Java TA-Lib以某种古怪的方式返回数据。

最近的值具有更高的键,最高键被填充了一些与回顾长度相关的零值。

此外,当指标有记忆时(如基于指数MA的妈妈),你需要比core.mamaLookback(fastLimit, slowLimit)返回的值更长的回顾来获得有意义的结果。

我现在得到了可靠的结果。