回测流程
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()
——来源于量化投资与机器学习公众号
作为自己学习所用
侵删侵删
本文来自博客园,作者:会飞的大斗篷,转载请注明原文链接:https://www.cnblogs.com/sherlockids/p/15035571.html

浙公网安备 33010602011771号