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