当前位置:   article > 正文

ptrade从零开始学习量化交易第7期【ptrade策略引擎简介之before_trading_start(可选)】

ptrade从零开始学习量化交易第7期【ptrade策略引擎简介之before_trading_start(可选)】

策略引擎简介

更加详细的调用方法,后续会慢慢整理。

也可找寻博主历史文章,搜索关键词使用方案,比如本文涉及函数before_trading_start!

感谢关注,咨询开通量化回测与获取实盘权限,欢迎和博主联系!

业务流程框架

ptrade量化引擎以事件触发为基础,通过初始化事件(initialize)、盘前事件(before_trading_start)、盘中事件(handle_data)、盘后事件(after_trading_end)来完成每个交易日的策略任务。

initialize和handle_data是一个允许运行策略的最基础结构,也就是必选项,before_trading_start和after_trading_end是可以按需运行的。

handle_data仅满足日线和分钟级别的盘中处理,tick级别的盘中处理则需要通过tick_data或者run_interval来实现。

ptrade还支持委托主推事件(on_order_response)、交易主推事件(on_trade_response),可以通过委托和成交的信息来处理策略逻辑,是tick级的一个补充。

除了以上的一些事件以外,ptrade也支持通过定时任务来运行策略逻辑,可以通过run_daily接口实现。

before_trading_start(可选)

before_trading_start(context, data)
使用场景

该函数仅在回测、交易模块可用

接口说明

该函数在每天开始交易前被调用一次,用于添加每天都要初始化的信息,如无盘前初始化需求,该函数可以在策略中不做定义。

注意事项:

  1. 在回测中,该函数在每个回测交易日8:30分执行。
  2. 在交易中,该函数在开启交易时立即执行,从隔日开始每天9:10分(默认)执行。
  3. 当在9:10前开启交易时,受行情未更新原因在该函数内调用实时行情接口会导致数据有误。可通过在该函数内sleep至9:10分或调用实时行情接口改为run_daily执行等方式进行避免。
可调用接口

参数

context: Context对象,存放有当前的账户及持仓信息;

data:保留字段暂无数据;

返回

None

示例

def initialize(context): #g为全局变量 g.security = '600570.SS' set_universe(g.security) def before_trading_start(context, data): log.info(g.security) def handle_data(context, data): order('600570.SS',100)

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/607639
推荐阅读
相关标签
  

闽ICP备14008679号