为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
慕神8447489 2022-09-26 14:48:36
我正在尝试从戈朗中的松树脚本 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
查看完整描述

1 回答

?
偶然的你

TA贡献1841条经验 获得超3个赞

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=4

study("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))

我不知道绝对偏差是什么意思,但至少在它们的实现中,它似乎取了范围内每个值的平均值的差值,但随着您返回,并没有改变平均值。


我不知道围棋,但这就是逻辑。


查看完整回答
反对 回复 2022-09-26
  • 1 回答
  • 0 关注
  • 89 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信