首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何重用pyalgotrade的实例策略类

如何重用pyalgotrade的实例策略类
EN

Stack Overflow用户
提问于 2021-04-08 22:17:54
回答 1查看 23关注 0票数 1

我按如下方式定义一个类。但我只能运行myStrategy一次。如果我更改参数并再次运行myStrategy,则不会发生任何变化。我希望用不同的股票和参数多次使用相同的策略。

""“

代码语言:javascript
复制
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)

""“

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-09 11:34:37

如果你只想改变句号,你可以尝试这样做:

代码语言:javascript
复制
rdat = "...\\FREE.csv"
instrument = "FREE"
feed = quandlfeed.Feed()
feed.addBarsFromCSV(instrument,rdat)

for period in [20, 30, 40]:
    feed.reset()
    myStrategy = turtleStrategy(feed, instrument, period)

如果您还想更改仪器/提要,则需要重新执行所有操作,而不仅仅是重置提要。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67005934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档