python量化分析库 Backtrader入门之五

python量化分析库 Backtrader入门之五

  好的,到现在为止,我们有了现金(通过broker设置);有了数据,通过bt.feed,然后给大脑添加数据。下一步就到了最激动人心的时刻了:冒险的生意就在眼前。让我们在等式中加入一个策略,并打印出每天的“收盘价”(bar)。

  让我们开始,backtrader中添加策略是通过添加一个backtrader.f类来实现的。

  我们继承Strategy类,创建一个新的类。

# Create a Stratey
class TestStrategy(bt.Strategy):

    def log(self, txt, dt=None):
        ''' Logging function for this strategy'''
        dt = dt or self.datas[0].datetime.date(0)
        print('%s, %s' % (dt.isoformat(), txt))

    def __init__(self):
        # Keep a reference to the "close" line in the data[0] dataseries
        self.dataclose = self.datas[0].close

    def next(self):
        # Simply log the closing price of the series from the reference
        self.log('Close, %.2f' % self.dataclose[0])

   这个类比较简单,就是讲每天的收盘价进行打印。

  创建好策略类后,我们再主程序中使用它,将策略类传递给大脑。  

cerebro.addstrategy(TestStrategy)

  输出结果如下:

python量化分析库 Backtrader入门之五_第1张图片

注意:假如添加的数据是按照升序排列的,则降序排列的,则得不到预期的结果。

我们来介绍一些基本的规则:

1.在调用init时,策略已经有了一个平台中存在的数据列表。

2.这是一个标准的Python列表,可以按照插入的顺序访问数据。

3.列表中的第一个数据self.datas[0] 是交易操作的默认数据,保持所有策略元素同步(系统时钟)

4.self.dataclose= self.datas[0].close保留对close行的引用。稍后只需要一个级别的间接寻址来访问close值。

5.策略中的next方法将在系统时钟的bar上调用(self.datas[0])。这是真的,直到其他东西开始发挥作用,如指标,它需要一些bar开始产生一个输出。

 

今天就这样,我们可以添加策略,知道了策略的基本运行规则。下期我们继续,添加一个真实的策略~

“Someone said the stockmarket was risky business, but it doesn’t seem so.”认同这句话吗?当然,不认同,股市有风险是真理。君不见春风吹又生的韭菜一茬又一茬~

你可能感兴趣的:(python量化,tushare)