gpt4 book ai didi

python - NotImplementedError() 这是什么意思,事件探查器 pyalgotrade

转载 作者:太空宇宙 更新时间:2023-11-04 10:12:36 25 4
gpt4 key购买 nike

我正在尝试运行 pyalgotrade 的事件分析器。我正在使用自定义数据,当我使用默认策略/谓词“BuyOnGap”运行它时,它会起作用,但是当我尝试使用简单的自定义策略运行它时,它会抛出错误:

Traceback (most recent call last):
File "C:\Users\David\Desktop\Python\Coursera\Computational Finance\Week2\PyAlgoTrade\Bitfinex\FCT\FCT_single_event_test.py", line 43, in <module>
main(True)
File "C:\Users\David\Desktop\Python\Coursera\Computational Finance\Week2\PyAlgoTrade\Bitfinex\FCT\FCT_single_event_test.py", line 35, in main
eventProfiler.run(feed, True)
File "C:\Python27\lib\site-packages\pyalgotrade\eventprofiler.py", line 215, in run
disp.run()
File "C:\Python27\lib\site-packages\pyalgotrade\dispatcher.py", line 102, in run
eof, eventsDispatched = self.__dispatch()
File "C:\Python27\lib\site-packages\pyalgotrade\dispatcher.py", line 90, in __dispatch
if self.__dispatchSubject(subject, smallestDateTime):
File "C:\Python27\lib\site-packages\pyalgotrade\dispatcher.py", line 68, in __dispatchSubject
ret = subject.dispatch() is True
File "C:\Python27\lib\site-packages\pyalgotrade\feed\__init__.py", line 105, in dispatch
self.__event.emit(dateTime, values)
File "C:\Python27\lib\site-packages\pyalgotrade\observer.py", line 59, in emit
handler(*args, **kwargs)
File "C:\Python27\lib\site-packages\pyalgotrade\eventprofiler.py", line 172, in __onBars
eventOccurred = self.__predicate.eventOccurred(instrument, self.__feed[instrument])
File "C:\Python27\lib\site-packages\pyalgotrade\eventprofiler.py", line 89, in eventOccurred
raise NotImplementedError()
NotImplementedError

我的代码是:

from pyalgotrade import eventprofiler
from pyalgotrade.technical import stats
from pyalgotrade.technical import roc
from pyalgotrade.technical import ma
from pyalgotrade.barfeed import csvfeed

class single_event_strat( eventprofiler.Predicate ):
def __init__(self,feed):
self.__returns = {} # CLASS ATTR
for inst in feed.getRegisteredInstruments():

priceDS = feed[inst].getAdjCloseDataSeries() # STORE: priceDS ( a temporary representation )

self.__returns[inst] = roc.RateOfChange( priceDS, 1 )
# CALC: ATTR <- Returns over the adjusted close values, consumed priceDS
#( could be expressed as self.__returns[inst] = roc.RateOfChange( ( feed[inst].getAdjCloseDataSeries() ), 1 ),
#but would be less readable

def eventOccoured( self, instrument, aBarDS):
if (aBarDS[-1].getVolume() > 10 and aBarDS[-1].getClose() > 5 ):
return True
else:
return False

def main(plot):
feed = csvfeed.GenericBarFeed(0)

feed.addBarsFromCSV('FCT', "FCT_daily_converted.csv")


predicate = single_event_strat(feed)

eventProfiler = eventprofiler.Profiler( predicate, 5, 5)

eventProfiler.run(feed, True)

results = eventProfiler.getResults()
print "%d events found" % (results.getEventCount())
if plot:
eventprofiler.plot(results)

if __name__ == "__main__":
main(True)

这个错误是什么意思?

有谁知道出了什么问题以及如何解决?

这是 eventprofiler 代码的链接:

http://pastebin.com/QD220VQb

作为奖励,有人知道我在哪里可以找到正在使用的分析器的示例吗? pyalgotrade 给出的其他示例,seen here

最佳答案

我认为你只是在 eventOccurred 方法定义中犯了一个拼写错误

def eventOccoured( self, instrument, aBarDS):

应该替换为

def eventOccurred( self, instrument, aBarDS):

关于python - NotImplementedError() 这是什么意思,事件探查器 pyalgotrade,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37441982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com