pyalgotrade相比于zipline而言,对于多个标的的投资,似乎是薄弱了一点,但也并不是不行呀。既然是多标的策略,那么肯定有多个csv的add,其实逻辑是很简单,就直接上demo吧,反正很好理解。
# coding=utf-8
from pyalgotrade import strategy
from pyalgotrade.barfeed.csvfeed import GenericBarFeed
from pyalgotrade.bar import Frequency
from pyalgotrade.stratanalyzer import returns
from pyalgotrade.stratanalyzer import sharpe
from pyalgotrade.utils import stats
class MyStrategy(strategy.BacktestingStrategy):
def __init__(self, feed):
super(MyStrategy, self).__init__(feed, 10000000)
self.__position = None
def onEnterOk(self, position):
execInfo = position.getEntryOrder().getExecutionInfo()
self.info("BUY at %.2f" % (execInfo.getPrice()))
def onEnterCanceled(self, position):
self.__position = None
def onExitOk(self, pos