如何从戈朗的交易视图中获取相同的cci值?

我正在尝试从戈朗中的松树脚本 cci() 函数复制值。我发现这个lib https://github.com/markcheno/go-talib/blob/master/talib.go#L1821 但它给出的值与cci函数完全不同。

伪代码 如何使用库

cci := talib.Cci(latest14CandlesHighArray, latest14CandlesLowArray, latest14CandlesCloseArray, 14)

库为我提供了以下数据

Timestamp: 2021-05-22 18:59:27.675, Symbol: BTCUSDT, Interval: 5m, Open: 38193.78000000, Close: 38122.16000000, High: 38283.55000000, Low: 38067.92000000, StartTime: 2021-05-22 18:55:00.000, EndTime: 2021-05-22 18:59:59.999, Sma: 38091.41020000, Cci0: -16.63898084, Cci1: -53.92565811,

而交易视图上的当前 CCI 值为: cci0 - -136, cci1 - -49

任何人都可以指导我错过了什么?

谢谢

P.S. cci0 - 当前蜡烛 CCI, cci1 - 以前的蜡烛 CCI


慕神8447489
浏览 90回答 1
1回答

偶然的你

PineScript在寻找函数时具有非常好的参考,通常甚至提供松树代码来重新创建它。https://www.tradingview.com/pine-script-reference/v4/#fun_cci代码不是为cci提供的,而是分步解释的。以下是我如何按照参考中的步骤使用Pine重新创建cci函数:// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/// © bajaco//@version=4study("CCI Breakdown", overlay=false, precision=16)cci_breakdown(src, p) =>    // The CCI (commodity channel index) is calculated as the     // 1. difference between the typical price of a commodity and its simple moving average,     // divided by the     // 2. mean absolute deviation of the typical price.     // 3. The index is scaled by an inverse factor of 0.015     // to provide more readable numbers    // 1. diff    ma = sma(src,p)    diff = src - ma        // 2. mad    s = 0.0    for i = 0 to p - 1        s := s + abs(src[i] - ma)    mad = s / p        // 3. Scaling    mcci = diff/mad / 0.015    mcci    plot(cci(close, 100))plot(cci_breakdown(close,100))我不知道绝对偏差是什么意思,但至少在它们的实现中,它似乎取了范围内每个值的平均值的差值,但随着您返回,并没有改变平均值。我不知道围棋,但这就是逻辑。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go