我想使用ta-lib的以下功能。
我想了解periods
的含义。
MAVP
MAVP([input_arrays], [minperiod=2], [maxperiod=30], [matype=0])
Moving average with variable period (Overlap Studies)
Inputs:
price: (any ndarray) periods: (any ndarray)
Parameters:
minperiod: 2 maxperiod: 30 matype: 0 (Simple Moving Average)
Outputs:
real
当periods
的长度与price
的长度不同时,它会返回错误(另外:如果matype
>> = 0且<它会返回nparray ; = 8,否则会抛出错误。)
原始文件: https://mrjbq7.github.io/ta-lib/func_groups/overlap_studies.html
对某些(自动生成的)文档的引用: https://www.backtrader.com/docu/talibindautoref.html
修改 底层的c代码在这里: http://svn.code.sf.net/p/ta-lib/code/trunk/ta-lib/c/src/ta_func/ta_MAVP.c
答案 0 :(得分:1)
如https://github.com/mrjbq7/ta-lib/issues/175#issuecomment-356042378所示:
这就是函数的功能。 它获得一个输入价格数组和一个长度相同的句点数组。 输出价格数组是使用指定期间点的点的移动平均线。 所以,如果你有一个[1,5,3,8]的数组,你指定句点[2,3,3,2],那么输出将是:
[SMA(2)[0], SMA(3)[1], SMA(3)[2], SMA(2)[3]]
除了将maxperiods的nan数量放在前面之外,由于某种原因,你需要将其称为:
>>> prices = np.array([1,5,7,8], dtype=float)
>>> periods =np.array([2,3,3,2], dtype=float)
>>> ta.MAVP(prices, periods, maxperiod=3)
array([ nan, nan, 4.33333333, 7.5 ])
>>> ta.SMA(prices, 2)
array([ nan, 3. , 6. , 7.5])
>>> ta.SMA(prices, 3)
array([ nan, nan, 4.33333333, 6.66666667])