前面,我们完全没有考虑交易的手续费、交易的滑点等等。而实际在回测的时候,这些都是要实实在在考虑的因素。pyalgotrade里面通过实现一个broker类,来完成这一系列的设置。
1.broker设置的步骤
step1.实例一个手续费策略类
根据不同的手续费策略实现不同的手续费策略类。
a.没有手续费
broker_commission = pyalgotrade.broker.backtesting.NoCommission()
b.每笔交易手续费是固定的,无论你的交易量如何
broker_commission = pyalgotrade.broker.backtesting.FixedPerTrade(amount)
amount:每笔交易的手续费
c.手续费是每笔交易金额的百分比
broker_commission = broker.backtesting.TradePercentage(percentage )
percentage (float.) – 0到1之间的数字,0.01表示1%
step2.实例化一个broker
我们需要实例化一个broker类传给策略,broker类的定义如下:
pyalgotrade.broker.backtesting.Broker(cash, barFeed, commission=None)
类的初始化参数如下:
cash (int/float.) – 回测策略的初始金额.
barFeed (pyalgotrade.barfeed.BarFeed) – 我们之前获得的bar数据.
commission (Commission) –第一步中生成的手续费策略类.
这个broker类,还可以设置成交策略模型,通过:
setFillStrategy(strategy)来实现。
strategy是一个 pyalgotrade.broker.fillstrategy.FillStrategy类
step3.pyalgotra