我试图使用一个技术指标(随机),但我得到了一个断言错误:
self.__slow_stoch = stoch.StochasticOscillator(feed[instrument],self.__stoch, 3, self.__slow_d)
我使用pyalgotrade在python中运行一个交易策略。有什么办法解决这个问题吗?我试着为这个错误写了一个Try/Exception,但是没有运气…任何想法都非常感谢!在
^{2}$代码:
self.__stoch = stoch.StochasticOscillator(feed[instrument],5, dSMAPeriod=3, maxLen=1)
slow_k = self.__stoch.getD()
slow_d = ma.SMA(self.__stoch.getD(), 3)
self.__slow_stoch = stoch.StochasticOscillator(feed[instrument],slow_k, dSMAPeriod=slow_d, maxLen=1)
错误消息:
Traceback (most recent call last):
File "algov1.py", line 224, in <module>
main()
File "algov1.py", line 220, in main
run_strategy(inst)
File "algov1.py", line 212, in run_strategy
myStrategy = MyStrategy(feed, inst)
File "algov1.py", line 91, in __init__
self.__slow_stoch = stoch.StochasticOscillator(feed[instrument],slow_k, dSMAPeriod=slow_d, maxLen=1)
File "C:\Users\JDOG\Anaconda2\lib\site-packages\pyalgotrade\technical\stoch.py", line 90, in __init__
technical.EventBasedFilter.__init__(self, barDataSeries, SOEventWindow(period, useAdjustedValues), maxLen)
File "C:\Users\JDOG\Anaconda2\lib\site-packages\pyalgotrade\technical\stoch.py", line 55, in __init__
technical.EventWindow.__init__(self, period, dtype=object)
File "C:\Users\JDOG\Anaconda2\lib\site-packages\pyalgotrade\technical\__init__.py", line 41, in __init__
assert(isinstance(windowSize, int))
AssertionError
这是StochasticOscillator的类定义。在
period和dSMAPeriod都是固定整数。在
当调用stochastic振荡器()时,Python将调用
StochasticOscillator.__init__
,自动创建并传入self
,您将以正确的顺序和类型传入左侧参数。在更新:
参见代码,使用dsmarioid计算D%,即K%的形状记忆合金。当dSMAPeriod为1时,D%等于K%。由于您确实希望将dSMAPeriod设置为1,所以可以传入dSMAPeriod=2,然后使用stoch本身。在
相关问题 更多 >
编程相关推荐