Backtrader -Strategy 07

Backtrader 策略实例,该部分内容通过使用backtrader对常用的策略实例的编写,提高和熟悉backtrader的实际场景的使用。
[Backtrader]实例:均线策略
[Backtrader] 实例:MACD策略
[Backtrader] 实例:KDJ 策略
[Backtrader] 实例:RSI 与 EMA 结合
[Backtrader] 实例:SMA自定义数据源
[Backtrader] 实例:海龟策略
[Backtrader] 实例:网格交易
[Backtrader] 实例: 配对交易

本系列是使用Backtrader在量化领域的学习与实践,着重介绍Backtrader的使用。

在 Backtrader 中,从数据准备、策略编制、策略回测到绩效分析,整个回测流程各个模块相互协调,从交易流程大致如下:

  • step1:设置交易条件:初始资金、交易税费、滑点、成交量限制等;
  • step2:在 Strategy 策略逻辑中下达交易指令 buy、sell、close,或取消交易 cancel;
  • step3:Order 模块会解读交易订单,解读的信息将交由经纪商 Broker 模块处理;
  • step4:经纪商 Broker 会根据订单信息检查订单并确定是否接收订单;
  • step5:经纪商 Broker 接收订单后,会按订单要求撮合成交 trade,并进行成交结算;
  • step6:Order 模块返回经纪商 Broker 中的订单执行结果。

本次介绍Backtrader中Strategy 模块,其是Backtrader核心模块之一。交易策略逻辑编写在Strategy 类中,在Strategy 类含有各类方法__init__() 、next() 、notify_order()、notify_trade() 等。

Strategy 策略类

在Strategy 类含有各类方法__init__() 、next() 、notify_order()、notify_trade() 等。整个策略与实际交易类似包括交易、交易通知等。

  • 交易操作

    • buy() 用于做多或减少/平空头仓位
    • sell() 用于卖空或减少/平多头仓位
    • close() 用于平仓当前仓位
    • cancel() 取消尚未执行的订单
  • 交易通知

    • notify_order(order) 通知订单信息
    • notify_trade(trade) 通知交易信息
    • notify_cashvalue(cash, value) 通知当前资金和总资产
    • notify_fund(cash, value, fundvalue, shares) 返回当前资金、总资产、基金价值、基金份额
import backtrader as bt # 导入 Backtrader

# 创建策略
class MyStrategy(bt.Strategy):
    # 初始化策略参数
    params = (
        (...,...), # 最后一个“,”最好别删!
    )
    # 日志打印:参考的官方文档
    def log(self, txt, dt=None):
        '''构建策略打印日志的函数:可用于打印订单记录或交易记录等'''
        dt = dt or self.datas[0].datetime.date(0)
        print('%s, %s' 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值