上下文
策略运行上下文Context是策略可以直接访问的唯一对象,策略所有的接口都通过Context对象调用。
输出接口
stra_log_text
输出日志
传入参数 | 含义 | 类型 |
message | 日志信息 | str |
时间接口
stra_get_tdate
获取当前交易日
返回结果 | 类型 |
当前交易日,格式为%yyyy%mm%dd | int |
stra_get_date
获取当前日历日期
返回结果 | 类型 |
当前日历日,格式为%yyyy%mm%dd | int |
stra_get_time
获取当前时间,24小时制,精确到分
返回结果 | 类型 |
当前时间,格式为%HH%MM | int |
账户接口
stra_get_position_avgpx
获取当前持仓均价
stra_get_position_profit
获取持仓浮动盈亏
stra_get_fund_data
获取资金数据
传入参数 | 含义 | 类型 |
flag | 0-动态权益,1-总平仓盈亏,2-总浮动盈亏,3-总手续费 | int |
stra_get_all_position
获取全部持仓
stra_get_position
读取当前仓位
传入参数 | 含义 | 类型 |
stdCode | 标准合约代码 | StdCode |
bonlyvalid | 只读可用持仓,默认为False | bool |
usertag | 入场标记 | StdCode |
返回结果 | 类型 |
净持仓,正为多仓,负为空仓 | int |
stra_get_detail_profit
获取指定标记的持仓的盈亏
传入参数 | 含义 | 类型 |
stdCode | 标准合约代码 | StdCode |
usertag | 进场标记 | 进场标记 |
flag | 盈亏记号,0-浮动盈亏,1-最大浮盈,-1-最大亏损(负数) | int |
stra_get_detail_cost
获取指定标记的持仓的开仓价
传入参数 | 含义 | 类型 |
stdCode | 标准合约代码 | StdCode |
usertag | 进场标记 | 进场标记 |
stra_get_detail_entertime
获取指定标记的持仓的进场时间
传入参数 | 含义 | 类型 |
stdCode | 标准合约代码 | StdCode |
usertag | 进场标记 | 进场标记 |
返回结果 | 类型 |
进场时间,格式如201907260932 | int |
数据接口
stra_get_price
获取最新价格,一般在获取了K线以后再获取该价格
stra_prepare_bars
准备历史K线,一般在on_init调用
传入参数 | 含义 | 类型 |
stdCode | 标准合约代码 | StdCode |
period | K线周期,如m3/d7 | str |
count | 要拉取的K线条数 | int |
isMain | 是否为主K线,主K线将用于驱动策略回测 | bool |
stra_get_bars
获取历史K线
传入参数 | 含义 | 类型 |
stdCode | 标准合约代码 | StdCode |
period | K线周期,如m3/d7 | str |
count | 要拉取的K线条数 | int |
isMain | 是否为主K线 | bool |
返回结果 | 类型 |
K线数据 | WtBarRecords |
stra_sub_ticks
订阅实时行情
stra_get_ticks
获取tick数据
传入参数 | 含义 | 类型 |
stdCode | 标准合约代码 | StdCode |
count | 要拉取的tick数量 | int |
返回结果 | 类型 |
tick数据 | WtTickRecords |
Tip
stra_prepare_bars与stra_get_bars功能相似,都能够起到订阅K线的作用,区别在于stra_get_bars会返回获取到的历史K线。同样stra_get_ticks也能起到stra_sub_ticks订阅数据的功能,但stra_get_ticks会订阅后并返回tick数据,而stra_sub_ticks仅订阅
Tip
如果订阅了多个合约,请确保仅选择了一个作为主K线,如果设置了多个主K线,可能会导致无法触发on_bar与on_calculate
stra_get_comminfo
获取品种详情
stra_get_sessinfo
获取交易时段详情
返回结果 | 类型 |
交易时间信息 | SessionInfo |
user_save_data
保存用户数据
传入参数 | 含义 | 类型 |
key | 数据id | str |
val | 数据值 | 可以直接转换成str的数据均可 |
user_load_data
读取用户数据
传入参数 | 含义 | 类型 |
key | 数据id | str |
defVal | 默认数据,如果找不到则返回改数据,默认为None | 可以直接转换成str的数据均可 |
vType | 数据类型,默认为float | * |
返回结果 | 类型 |
返回值,默认处理为float数据 | vType决定 |
交易接口
Tip
- 如果下单接口同时传递了limitprice和stopprice,只会处理limitprice
- 当主K线闭合时,会清理掉所有的条件单。这样的好处是:策略在oncalc中写触发逻辑的时候,不需要考虑太多状态相关的问题,设置条件单的代码不需要进行控制(这个逻辑和MC一致),因为底层已经处理好了。
- 如果当前主K线周期内,有若干个待触发的条件单,当其中一个条件单触发以后,当前K线就不会再触发任何条件单了。这样的目的是:防止重复发出信号。
stra_set_position
设置仓位,引擎会根据目标仓位与已有仓位自动下单
传入参数 | 含义 | 类型 |
stdCode | 标准合约代码 | StdCode |
qty | 目标仓位,正为多仓,负为空仓 | int |
返回结果 | 类型 |
设置结果TRUE/FALSE | bool |
Tip
推荐使用stra_set_position代替stra_enter_long、stra_enter_short、stra_exit_long、stra_exit_short等下单函数
stra_enter_long
多头信号入场,具体如何下单,参考actpolicy
传入参数 | 含义 | 类型 |
stdCode | 标准合约代码 | StdCode |
qty | 目标仓位,正为多仓,负为空仓 | int |
limitprice | 限价,默认为0,即市价 | int |
qty | 止价,默认为0,即市价 | int |
stra_exit_long
多仓出场,如果剩余多仓不够,则全部平掉
传入参数 | 含义 | 类型 |
stdCode | 标准合约代码 | StdCode |
qty | 目标仓位,正为多仓,负为空仓 | int |
limitprice | 限价,默认为0,即市价 | int |
qty | 止价,默认为0,即市价 | int |
stra_enter_short
空头信号入场,具体如何下单,参考actpolicy
传入参数 | 含义 | 类型 |
stdCode | 标准合约代码 | StdCode |
qty | 目标仓位,正为多仓,负为空仓 | int |
limitprice | 限价,默认为0,即市价 | int |
qty | 止价,默认为0,即市价 | int |
stra_exit_short
空仓出场,如果剩余空仓不够,则全部平掉
传入参数 | 含义 | 类型 |
stdCode | 标准合约代码 | StdCode |
qty | 目标仓位,正为多仓,负为空仓 | int |
limitprice | 限价,默认为0,即市价 | int |
qty | 止价,默认为0,即市价 | int |
stra_get_last_entrytime
获取当前持仓最后一次进场时间
返回结果 | 类型 |
返回最后一次进场的时间,格式如201903121047 | int |
stra_get_last_exittime
获取当前持仓最后一次出场时间
返回结果 | 类型 |
返回最后一次出场的时间,格式如201903121047 | int |
stra_get_first_entrytime
获取当前持仓第一次进场时间
返回结果 | 类型 |
返回第一次进场的时间,格式如201903121047 | int |