策略程序架构
掘金策略程序初始化
通过init函数初始化策略,策略启动即会自动执行。在init函数中可以:
定义全局变量
通过添加context包含的属性可以定义全局变量,如context.x,该属性可以在全文中进行传递。定义调度任务
可以通过schedule配置定时任务,程序在指定时间自动执行策略算法。准备历史数据
通过数据查询函数获取历史数据订阅实时行情
通过subscribe订阅行情,用以触发行情事件处理函数。
行情事件处理函数
处理盘口
tick
数据事件
通过on_tick响应tick数据事件,可以在该函数中继续添加自己的策略逻辑,如进行数据计算、交易等处理分时
bar
数据事件
通过on_bar响应bar数据事件,可以在该函数中继续添加自己的策略逻辑,如进行数据计算、交易等
交易事件处理函数
处理回报
execrpt
数据事件
当交易委托被执行后会触发on_execution_report,用于监测委托执行状态
.处理委托
order
委托状态变化数据事件
当订单状态产生变化时会触发on_order_status,用于监测委托状态
变更.处理账户
account
交易账户状态变化数据事件
当交易账户状态产生变化时会触发on_account_status,用于监测交易账户委托状态
变更.
其他事件处理函数
处理动态参数
parameter
动态参数修改事件
当动态参数产生变化时会触发on_parameter,用于监测动态参数修改.处理绩效指标对象
Indicator
回测结束事件
在回测模式下,回测结束后会触发on_backtest_finished,并返回回测得到的绩效指标对象.处理实时行情网络连接成功事件
当实时行情网络连接成功时触发实时行情网络连接成功事件.处理实时行情网络连接断开事件
当实时行情网络连接断开时触发实时行情网络连接断开事件.处理交易通道网络连接成功事件
当交易通道网络连接成功时触发交易通道网络连接成功事件.处理交易通道网络连接断开事件
当交易通道网络连接断开时触发交易通道网络连接断开事件.
策略入口
run函数用于启动策略,策略类交易类策略都需要run函数。在只需提取数据进行研究(即仅使用数据查询函数时)的情况下可以不调用run函数,在策略开始调用set_token即可
用户
token
ID
用户身份的唯一标识,token位置参见终端-系统设置界面-密钥管理(token)策略ID
strategy_id
策略文件与终端连接的纽带,是策略的身份标识。每创建一个策略都会对应生成一个策略id,创建策略时即可看到。策略工作模式
策略支持两种运行模式, 实时模式和回测模式,实时模式用于仿真交易及实盘交易,回测模式用于策略研究,用户需要在运行策略时选择模式.