上下文

策略运行上下文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

获取当前持仓均价

传入参数 含义 类型
stdCode 标准合约代码 StdCode
返回结果 类型
持仓均价 float

stra_get_position_profit

获取持仓浮动盈亏

传入参数 含义 类型
stdCode 标准合约代码 StdCode
返回结果 类型
浮动盈亏 float

stra_get_fund_data

获取资金数据

传入参数 含义 类型
flag 0-动态权益,1-总平仓盈亏,2-总浮动盈亏,3-总手续费 int
返回结果 类型
资金数据 float

stra_get_all_position

获取全部持仓

返回结果 类型
全部持仓 dict(key为StdCode

stra_get_position

读取当前仓位

传入参数 含义 类型
stdCode 标准合约代码 StdCode
bonlyvalid 只读可用持仓,默认为False bool
usertag 入场标记 StdCode
返回结果 类型
净持仓,正为多仓,负为空仓 int

stra_get_detail_profit

获取指定标记的持仓的盈亏

传入参数 含义 类型
stdCode 标准合约代码 StdCode
usertag 进场标记 进场标记
flag 盈亏记号,0-浮动盈亏,1-最大浮盈,-1-最大亏损(负数) int
返回结果 类型
盈亏 float

stra_get_detail_cost

获取指定标记的持仓的开仓价

传入参数 含义 类型
stdCode 标准合约代码 StdCode
usertag 进场标记 进场标记
返回结果 类型
开仓价 float

stra_get_detail_entertime

获取指定标记的持仓的进场时间

传入参数 含义 类型
stdCode 标准合约代码 StdCode
usertag 进场标记 进场标记
返回结果 类型
进场时间,格式如201907260932 int

数据接口

stra_get_price

获取最新价格,一般在获取了K线以后再获取该价格

传入参数 含义 类型
stdCode 标准合约代码 StdCode
返回结果 类型
最新价格 float

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

订阅实时行情

传入参数 含义 类型
stdCode 标准合约代码 StdCode

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

获取品种详情

传入参数 含义 类型
stdCode 标准合约代码 StdCode
返回结果 类型
品种信息 ProductInfo

stra_get_sessinfo

获取交易时段详情

传入参数 含义 类型
stdCode 标准合约代码 StdCode
返回结果 类型
交易时间信息 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

获取当前持仓最后一次进场时间

传入参数 含义 类型
stdCode 标准合约代码 StdCode
返回结果 类型
返回最后一次进场的时间,格式如201903121047 int

stra_get_last_exittime

获取当前持仓最后一次出场时间

传入参数 含义 类型
stdCode 标准合约代码 StdCode
返回结果 类型
返回最后一次出场的时间,格式如201903121047 int

stra_get_first_entrytime

获取当前持仓第一次进场时间

传入参数 含义 类型
stdCode 标准合约代码 StdCode
返回结果 类型
返回第一次进场的时间,格式如201903121047 int