“def init(self, size=100):”
这是ArrayManager的初始化函数定义,默认size=100。
一直有这个疑问,这个size不一样,计算的指标值就会不一样,比如ArrayManager计算atr指标的时候,容器的size应该是多少才合适呢,回测的时候是不是也要优化。
另外,海归策略里vnpy默认用的"self.am = ArrayManager(60)",为什么是60?
“def init(self, size=100):”
这是ArrayManager的初始化函数定义,默认size=100。
一直有这个疑问,这个size不一样,计算的指标值就会不一样,比如ArrayManager计算atr指标的时候,容器的size应该是多少才合适呢,回测的时候是不是也要优化。
另外,海归策略里vnpy默认用的"self.am = ArrayManager(60)",为什么是60?
size是指这个K线时间序列容器缓存的数据量的大小,理论上只要超过了你策略中要计算的所有技术指标最长的那个周期,就够用了。
比如你要算MA20 RSI14 CCI50,那么最少需要size=50,否则CCI计算的数据量就不够,一般情况下还会在size上加上一定的量,来避免talib中某些指标算法可能需要更长的数据,保证计算的正确性。