有人知道如何在python中计算Coppock曲线吗

有人知道如何在python中计算Coppock曲线吗,python,Python,我目前正试图为我在python中制定的策略计算Coppock曲线。 我是这样写的(ROC1是11的长度,ROC2是14的长度): 我知道我的值是正确的,但这是唯一的计算方法,它与tradingview根本不匹配。例如,当我运行它时,我得到 ROC1: -1.094 ROC2: -0.961 WMA: 7215.866 我的答案是-15037.864744 而Tradingview处于-0.9 这些值都很接近,我只是想知道为什么我没有找到一种方法来获得类似于任何类型的值。(如果有人想知道的话,

我目前正试图为我在python中制定的策略计算Coppock曲线。 我是这样写的(ROC1是11的长度,ROC2是14的长度):

我知道我的值是正确的,但这是唯一的计算方法,它与tradingview根本不匹配。例如,当我运行它时,我得到

ROC1: -1.094 
ROC2: -0.961
WMA: 7215.866
我的答案是
-15037.864744
而Tradingview处于
-0.9


这些值都很接近,我只是想知道为什么我没有找到一种方法来获得类似于任何类型的值。(如果有人想知道的话,我正在使用taapio api)

看看下面的函数。请注意,传递给函数的
data\u数组是一个一维numpy数组,其中包含金融资产的
close
价格

import numpy as np


def coppock_curve(data_array, sht_roc_length=11, long_roc_length=14, curve_length=10):  # Coppock Curve
    """
    :param sht_roc_length: Short Rate of Change length
    :param long_roc_length: Long Rate of Change length
    :param curve_length: Coppock Curve Line length
    :return: Coppock oscillator values 
    """
    data_array = data_array[-(curve_length + max(sht_roc_length, long_roc_length, curve_length) + 1):]
    # Calculation of short rate of change
    roc11 = (data_array[-(curve_length + 1):] - data_array[-(curve_length + sht_roc_length + 1):-sht_roc_length]) /\
        data_array[-(curve_length + sht_roc_length + 1):-sht_roc_length] * 100
    roc14 = (data_array[-(curve_length + 1):] - data_array[:-long_roc_length]) / data_array[:-long_roc_length] * 100
    sum_values = roc11 + roc14  # calculation of long rate of change
    curve = np.convolve(sum_values, np.arange(1, curve_length + 1, dtype=int)[::-1], 'valid') / \
        np.arange(1, curve_length + 1).sum()  # calculation of coppock curve line

你知道我在哪里能买到这些吗values@Tony当时我使用quandl来获取这些数据。现在,我不知道这个源是否仍然处于活动状态。您应该自己搜索数据源。很抱歉,这个答案不是很清楚,我已经从API中提取了数据。我就是不明白为什么我的计算不起作用。
import numpy as np


def coppock_curve(data_array, sht_roc_length=11, long_roc_length=14, curve_length=10):  # Coppock Curve
    """
    :param sht_roc_length: Short Rate of Change length
    :param long_roc_length: Long Rate of Change length
    :param curve_length: Coppock Curve Line length
    :return: Coppock oscillator values 
    """
    data_array = data_array[-(curve_length + max(sht_roc_length, long_roc_length, curve_length) + 1):]
    # Calculation of short rate of change
    roc11 = (data_array[-(curve_length + 1):] - data_array[-(curve_length + sht_roc_length + 1):-sht_roc_length]) /\
        data_array[-(curve_length + sht_roc_length + 1):-sht_roc_length] * 100
    roc14 = (data_array[-(curve_length + 1):] - data_array[:-long_roc_length]) / data_array[:-long_roc_length] * 100
    sum_values = roc11 + roc14  # calculation of long rate of change
    curve = np.convolve(sum_values, np.arange(1, curve_length + 1, dtype=int)[::-1], 'valid') / \
        np.arange(1, curve_length + 1).sum()  # calculation of coppock curve line