回测流程

1. 构建策略:

  确定策略潜在的可调参数

  计算策略中用于生成交易信号的指标

  (打印需要的交易信息)

  编写买入、卖出的交易逻辑

2. 实例化引擎策略cerebro,由它来驱动回测

ps:cerebro是什么?相当于backtrader的大脑,由它来启动和完成回测

  由DataFeeds加载数据,再将加载的数据添加给cerebro

  将第一步生成的策略添加给cerebro

  按需求添加策略分析指标和观测器

  运行cerebro.run()

  (运行cerebro.plot()进行回测结果可视化展示)

 

代码example:

#导入相关的包
import
backtrader as bt import backtrader.indicators as btind#策略分析模块 import backtrader.feeds as btfeeds#数据模块
#创建策略
class TestStrategy(bt.Strategy):
    #设置回测中的可变参数:如移动均线的周期
    params = ( (xxx,xxx),)#逗号最好不删
    
    def log(self,txt,dt=None):
        #打印订单记录或交易记录
        dt = dt or self.datas[0].datetime.date(0)#这一句还没有懂,到时候回看
        print('%s, %s', %(dt.isoformat(),txt))

    def __init__(self):
        #初始化
        pass  
     
    def notify_order(self,order):
        #打印订单信息
        pass

    def notify_trade(self,trade):
        #打印交易信息
        pass

    def next(self):
        #编写交易策略逻辑
        sma=btind.SimpleMovingAverage(xxx)#计算均线
        pass    

具体函数调用:

cerebro = bt.Cerebro()
data = btfeeds.BacktraderCSVData(xxx)
cerebro.adddata(data)
#通过经纪商设置初始资金
cerebro.broker.setcash(...)
#设置单笔交易的数量
cerebro.addsizer(...)
#设置交易佣金
cerebro.broker.setcommission(...)
#添加策略
cerebro.addstrategy(TestStrategy)
#添加策略分析指标
cerebro.addanalyzer(...)
#添加观测器
cerebro.addobserver(...)

cerebro.run()
cerebro.plot()

——来源于量化投资与机器学习公众号

作为自己学习所用

侵删侵删

posted @ 2021-07-20 16:20  会飞的大斗篷  阅读(360)  评论(0)    收藏  举报