一、简介:
本节主要介绍backtrader中的Strategy类,分为两部分:
- 介绍backtrader类的构造结构
- 介绍backtrader类的属性与方法
内容介绍目的:让读者对Strategy类有一个整体感知
二、backtrader类图
三、strategy属性方法
- 加载相关对象类
- 产生信号
- 通知信号处理
- 相关查询工作
1、属性
- _Itype: 线迭代器属性 默认StratType
- lines:线属性 默认(‘datetime'), 数据线中第一条线为datetime
二、方法
- qbuffer
值=-2,缓冲保存指标,该指标的plotinfo.plot为False
值=-1,缓冲保存指标
值=1,保存数据和所有线迭代器对象 - _periodset:
取所有指标对象以及_clock属性以及数据线及策略本身的_minperiod的最大值 - _addwriter/_addindicator/_addanalyzer_slave/_addanalyzer/_addobserver
添加writer对象/添加指标对象
添加附属分析器(基于分析器的输出结果)/添加分析器,会处理anname
添加观察对象 - _getminperstatus
获取datas数据中距离_minperiods最远的距离 - prenext_open:pass
- nextstart_open/next_open: pass
- _oncepost_open
如果minperstatus<0, 运行next_open方法
如果minperstatus==0,运行nextstart_open方法
如果minperstatus>0, 运行prenext_open方法 - _oncepost
更新指标对象往前一步
如果minperstatus<0, 运行next方法
如果minperstatus==0,运行nextstart方法
如果minperstatus>0, 运行prenext方法
分析对象按minperstatus运行分析器得_next, _nextstart, _prenext方法
观察者对象的_analyzers对象按minperstatus运行分析器_next, _nextstart, _prenext方法
观察者对象按照minperstatus和once参数运行相关方法 - _start
确定_minperiod参数
分析器初始化
观察器初始化
切花状态至2
设置_minperstatus到无线大
运行start方法 - _getwriterheaders
获取指标器和观察器中的字段名,前两个字段是name和len - _getwritervalues
获取指标器和观察器中的数据值 - _getwriterinfo
获取策略参数 获取指标器中得lines和param 获取观察器中得lines和param 获取分析器中得参数和分析指标 - _stop
运行stop方法
运行分析器的_stop函数
设置状态为1 - clear
清空_orderspending, _tradespending - _addnotification
订单未被执行,如果quicknotify在线,则调用_notify方法处理,否则返回 - _notify
quicknotify在,处理qorders和qtrades,否则处理_orderspending,_tradingspending
调用notify_order方法处理非历史order
调用ontify_trade方法处理成交单
分析器处理order单和trade单
调用notify_cashvalue处理cash和value
调用notify_fund处理cash,value, fundvalue, fundshares
分析器调用notify_cashvalue和notify_fund - add_timer
添加时间器,用于控制交易时间 - notify_**: timer, cashvalue, fund, order, trade, store, data
- getdatanames/getdatabyname
- cancel: 取消订单
- buy/sell/close
传递给broker执行开平动作 - buy_bracket/sell_bracket
一揽子下单,包括 下单/止损单/止盈单 - order_target_size/order_target_value/order_traget_percent
由系统自动生成订单,使得最终持仓量等于目标持仓量/目标持仓价值/目标增加比例 - getposition/getpositionbyname/getpositions/getpositionsbyname
通过data和broker获取头寸相关信息 - _addsizer/setsizer/getsizer/getsizing
操作头寸类相关