我定义一个类如下。但我只能运行一次 myStrategy 。如果我更改参数并再次运行 myStrategy,则没有任何变化。我希望对不同的股票和参数多次使用相同的策略。
"""
from pyalgotrade import strategy
from pyalgotrade.barfeed import quandlfeed
from pyalgotrade.technical import atr
from pyalgotrade.technical import highlow
from pyalgotrade.technical import ma
class turtleStrategy(strategy.BacktestingStrategy):
def __init__(self, feed, instrument, period):
strategy.BacktestingStrategy.__init__(self,feed,1000000)
#super(turtleStrategy, self).__init__(feed,1000000)
self.__instrument = instrument
self.__period = period
self.__position = None
barsDs = feed[instrument]
self.__atr = atr.ATR(barsDs,period)
self.__closePrice = feed[instrument].getCloseDataSeries()
self.__hband = highlow.High(self.__closePrice,period)
self.__lband = highlow.Low(self.__closePrice,period)
def onBars(self,bars):
try:
high = self.__hband.getDataSeries()[-2]
low = self.__lband.getDataSeries()[-2]
except:
return
price = bars[self.__instrument].getClose()
if self.__position is None:
if price > high:
shares = int(self.getBroker().getCash() / price)
self.marketOrder(self.__instrument,shares)
elif price < low:
self.marketOrder(self.__instrument,self.getBroker().getShares())
rdat = "...\\FREE.csv"
instrument = "FREE"
period = 20
feed = quandlfeed.Feed()
feed.addBarsFromCSV(instrument,rdat)
myStrategy = turtleStrategy(feed,instrument,period)
"""