我正在尝试对我的量化策略进行回溯测试。我为该任务选择了backtrader。这就是我现在所拥有的,在回传系统之外可以正常工作。我必须说实话,我在课堂写作方面非常阴暗。
def __init__(self):
# Keep a reference to the "close" line in the data[0] dataseries
self.dataclose = self.datas[0].close
# To keep track of pending orders
self.order = None
self.buyprice = None
self.buycomm = None
# Add a MovingAverageSimple indicator
self.sma5 = bt.talib.SMA(self.datas[0], timeperiod=self.p.ma5period)
self.sma20 = bt.talib.SMA(self.datas[0], timeperiod=self.p.ma20period)
self.sma60 = bt.talib.SMA(self.datas[0], timeperiod=self.p.ma60period)
self.stdev = stats.pstdev((self.sma5, self.sma20, self.sma60))
self.MACDhisto = bt.indicators.MACDHisto(self.datas[0])
DOM
File "P:/LEIGH PYTHON/Codes/Quant/backtrader_initiation.py", line 67, in __init__
self.stdev = stats.pstdev((self.sma5, self.sma20, self.sma60))
File "C:\Users\Mike_Leigh\.conda\envs\LEIGH\lib\statistics.py", line 666, in pstdev
var = pvariance(data, mu)
File "C:\Users\Mike_Leigh\.conda\envs\LEIGH\lib\statistics.py", line 637, in pvariance
T, ss = _ss(data, mu)
File "C:\Users\Mike_Leigh\.conda\envs\LEIGH\lib\statistics.py", line 535, in _ss
c = mean(data)
File "C:\Users\Mike_Leigh\.conda\envs\LEIGH\lib\statistics.py", line 312, in mean
T, total, count = _sum(data)
File "C:\Users\Mike_Leigh\.conda\envs\LEIGH\lib\statistics.py", line 148, in _sum
for n,d in map(_exact_ratio, values):
File "C:\Users\Mike_Leigh\.conda\envs\LEIGH\lib\statistics.py", line 230, in _exact_ratio
raise TypeError(msg.format(type(x).__name__))
TypeError: can't convert type 'SMA' to numerator/denominator
任何人都可以给我指导吗?非常感谢!
也许您应该看看其他平台,看看它如何发展。据我了解,backtrader非常适合测试您的数据,而不适合过滤数据。