银行间债券
快照
引擎配置说明
接口 createBacktester
的参数 config 和接口
createBacktestEngine
的参数 userConfig 的配置可参考下表:
userConfig 参数的配置: userConfig=dict(STRING,ANY)
key | 说明 | 备注 |
---|---|---|
"startDate" | 开始日期 |
必须配置,DATE 类型 例如 “2020.01.01” |
"endDate" | 结束日期 |
必须配置,DATE 类型 例如 “2020.01.01” |
"strategyGroup" | 策略类型 | 必须配置,“cfets_bond” |
"cash" | 初始资金 | 必须配置,DOUBLE 类型 |
"commission" | 手续费 | 必须配置,DOUBLE 类型 |
"dataType" | 行情类型 | 必须配置:1 |
“matchingMode“ | 订单撮合模式 |
INT 类型,可选值为: 1:行情时间大于订单时间时撮合订单(模式一) 2:行情时间等于订单时间时以当前行情的收盘价撮合订单,后续未完成的订单按照模式一撮合订单 |
“frequency” | 以指定频率合成 | 必须配置,INT 类型,该参数无效 |
"msgAsTable" | 行情的数据格式 |
必须配置,BOOL 类型 false:字典 true:表(只能在旧版本中使用,引擎创建接口不同) |
“orderBookMatchingRatio” | 与行情订单薄的成交百分比 | DOUBLE 类型,默认 1.0,取值0~1.0 之间 |
“matchingRatio” | 区间撮合比例 | DOUBLE 类型,默认 1.0,取值0~1.0 之间。默认和成交百分比 orderBookMatchingRatio 相等 |
“benchmark” | 基准标的 | 如”000300.XSHG“ 。在接口getReturnSummary
中使用 |
"latency" | 订单延时 | 单位为毫秒,用来模拟用户订单从发出到被处理的时延 |
“enableIndicatorOptimize” | 是否开启指标优化 |
BOOL 类型 true:开启 false:不开启 |
”addTimeColumnInIndicator“ | 指标订阅时是否给指标数表增加时间列 |
BOOL 类型 true:增加 false:不增加 |
“isBacktestMode“ | 是否为回测模式 |
BOOL 类型,默认为 true true:回测模式 false:模拟交易模式 |
dataRetentionWindow | 开始指标优化时数据保留的窗口 |
STRING 类型或 INT 类型。 当 enableIndicatorOptimize = true 时,该参数生效。
|
"context" | 策略逻辑上下文类结构 |
DICT 类型,策略全局变量构成的字典,如: context=dict(STRING,ANY) context["buySignalRSI"]=70. context["buySignalRSI"]=30. userConfig["context"]=context |
行情数据结构说明
通过接口 appendQuotationMsg
向引擎中插入数据时,msg 结构:
执行回测时输入表 messageTable 结构:
Backtest::appendQuotationMsg(engine,messageTable)
colName=[`timestamp,`symbol,`symbolSource,`byield,`ayield,`bmdEntryPrice, `amdEntryPrice,`bmdEntrySize,`amdEntrySize,`bsettlType,`asettlType,`settlType, `tradePrice,`tradeYield,`tradeQty] colType=["TIMESTAMP","SYMBOL","SYMBOL","DOUBLE[]","DOUBLE[]","DOUBLE[]","DOUBLE[]", "LONG[]","LONG[]","LONG[]","LONG[]","LONG[]","DOUBLE[]","DOUBLE[]","LONG[]"] messageTable=table(10000000:0, colName, colType)
快照行情数据表结构:
字段 | 类型 | 备注 |
---|---|---|
timestamp | TIMESTAMP | 时间 |
symbol | SYMBOL | 标的代码 |
messageSource | SYMBOL | 市场:银行间 ”X_BOND” |
byield | DOUBLE[] | 报买到期 |
ayield | DOUBLE[] | 报卖到期 |
bmdEntryPrice | DOUBLE[] | 报买净价(元) |
amdEntryPrice | DOUBLE[] | 报卖净价(元) |
bmdEntrySize | LONG[] | 报买量(元) |
amdEntrySize | LONG[] | 报卖量(元) |
bsettlType | LONG[] | 买清算速度 |
asettlType | LONG[] | 卖清算速度 |
settlType | LONG[] | 区间清算速度 |
tradePrice | DOUBLE[] | 区间成交价格列表 |
tradeYield | DOUBLE[] | 到期收益率 |
tradeQty | LONG[] | 区间成交数量列表 |
回测行情回放结束时,发送一条 symbol 为 “END” 的消息:
messageTable=select top 1* from messageTable where timestamp=max(timestamp) update messageTable set symbol="END" //update messageTable set msgTime=concatDateTime(timestamp.date(),16:00:00) Backtest::appendQuotationMsg(engine,messageTable)
策略回调函数说明
快照行情回调函数 onSnapshot
:输入参数 msg
msg 为字典时,是以 symbol 为 key 值的 snapShot 数据字典,每个 snapShot 对象包含字段如下:
字段 | 类型 | 备注 |
---|---|---|
symbol | SYMBOL | 标的代码 |
messageSource | SYMBOL | 市场:银行间 ”X_BOND” |
byield | TIMESTAMP | 时间戳 |
ayield | DOUBLE[] | 报买到期 |
bmdEntryPrice | DOUBLE[] | 报买净价(元) |
amdEntryPrice | DOUBLE[] | 报卖净价(元) |
bmdEntrySize | LONG[] | 报买量(元) |
amdEntrySize | LONG[] | 报卖量(元) |
bsettlType | LONG[] | 买清算速度 |
asettlType | LONG[] | 卖清算速度 |
settlType | LONG[] | 区间清算速度 |
tradePrice | DOUBLE[] | 区间成交价格列表 |
tradeYield | DOUBLE[] | 到期收益率 |
tradeQty | LONG[] | 区间成交数量列表 |
委托回报通知函数 onOrder
:输入参数 orders
orders 为订单信息的字典,每个订单信息包含字段如下:
字段 | 类型 | 备注 |
---|---|---|
orderId | LONG | 委托订单 id |
symbol | STRING | 品种代码 |
entrustTime | TIMESTAMP | 委托时间 |
bidAmount | LONG | 委买数量 |
bidprice | DOUBLE | 委买价格 |
bidFilledAmount | LONG | 委买成交数量 |
askAmount | LONG | 委卖数量 |
askPrice | DOUBLE | 委卖价格 |
askFilledAmount | LONG | 委卖成交数量 |
status | INT |
委托状态 4:已报 6:部成 7:已成 9:撤单成功 -1:审批拒绝 |
entrustDirection | INT |
委托方向 1:买 2:卖 3:双边买开 |
tradeBalance | DOUBLE |
成交金额 如果是双边,则买成交金额 + 卖成交金额 |
label | STRING | 标签。可对订单增添备注信息 |
updateTime | TIMESTAMP | 更新时间 |
成交回报通知函数 onTrade
:输入参数 trades
trades 为订单信息的字典,每个订单信息包含的具体字段如下:
字段 | 类型 | 备注 |
---|---|---|
orderId | LONG | 委托订单 id |
symbol | STRING | 标的代码 |
tradeTime | TIMESTAMP | 成交时间 |
filledAmount | INT | 成交数量 |
tradeBalance | DOUBLE | 成交金额 |
totalFee | DOUBLE |
总费用 单次成交费用计算: 买入费用 = 成交金额*手续费 卖出费用 = 成交金额*(手续费+印花税) |
totalDealAmount | LONG | 累计成交数量 |
totalDealBalance | DOUBLE | 累计成交金额 |
entrustDirection | INT | 委托方向 |
limitPrice | DOUBLE | 订单价格 |
label | STRING | 标签, 可对订单增添备注信息 |
快照+逐笔成交明细
引擎配置说明
接口 createBacktester
的参数 config 和接口
createBacktestEngine
的参数 userConfig 的配置可参考下表:
userConfig 参数的配置: userConfig = dict(STRING, ANY)
key | 说明 | 备注 |
---|---|---|
"startDate" | 开始日期 |
必须配置,DATE 类型 例如 “2020.01.01” |
"endDate" | 结束日期 |
必须配置,DATE 类型 例如 “2020.01.01” |
"strategyGroup" | 策略类型 | 必须配置,“cfets_bond” |
"cash" | 初始资金 | 必须配置,DOUBLE 类型 |
"commission" | 手续费 | 必须配置,DOUBLE 类型 |
"dataType" | 行情类型 | 必须配置:2 |
“matchingMode“ | 订单撮合模式 |
INT 类型,可选值为: 1:行情时间大于订单时间时撮合订单(模式一) 2:行情时间等于订单时间时以当前行情的收盘价撮合订单,后续未完成的订单按照模式一撮合订单 |
“frequency” | 以指定频率合成 | 必须配置,INT 类型,该参数无效 |
"msgAsTable" | 行情的数据格式 |
必须配置,BOOL 类型 false:字典 true:表(只能在旧版本中使用,引擎创建接口不同) |
“orderBookMatchingRatio” | 与行情订单薄的成交百分比 | DOUBLE 类型,默认 1.0,取值0~1.0 之间 |
“matchingRatio” | 区间撮合比例 | DOUBLE 类型,默认 1.0,取值0~1.0 之间。默认和成交百分比 orderBookMatchingRatio 相等 |
“benchmark” | 基准标的 |
STRING 或 SYMBOL 类型 上交所以 ".XSHG" 结尾 深交所以 ".XSHE" 结尾 例如 ”000300.XSHG“ ,在接口 |
"latency" | 订单延时 | INT 类型,单位为毫秒,用来模拟用户订单从发出到被处理的时延 |
“enableIndicatorOptimize” | 是否开启指标优化 |
BOOL 类型 true:开启 false:不开启 |
”addTimeColumnInIndicator“ | 指标订阅时是否给指标数表增加时间列 |
BOOL 类型 true:增加 false:不增加 |
“isBacktestMode“ | 是否为回测模式 |
BOOL 类型,默认为 true true:回测模式 false:模拟交易模式 |
dataRetentionWindow | 开始指标优化时数据保留的窗口 |
STRING 类型或 INT 类型。 当 enableIndicatorOptimize = true 时,该参数生效。
|
"context" | 策略逻辑上下文类结构 |
DICT 类型,策略全局变量构成的字典,如: context=dict(STRING,ANY) context["buySignalRSI"]=70. context["buySignalRSI"]=30. userConfig["context"]=context |
行情数据结构说明
通过接口 appendQuotationMsg
向引擎中插入数据时,msg 结构:
执行回测时输入表 messageTable 结构:
Backtest::appendQuotationMsg(engine,messageTable)
colName=[`timestamp,`symbol,`symbolSource,`byield,`ayield,`bmdEntryPrice, `amdEntryPrice,`bmdEntrySize,`amdEntrySize,`bsettlType,`asettlType,`settlType, `tradePrice,`tradeYield,`tradeQty] colType=["TIMESTAMP","SYMBOL","SYMBOL","DOUBLE[]","DOUBLE[]","DOUBLE[]","DOUBLE[]", "LONG[]","LONG[]","LONG[]","LONG[]","LONG[]","DOUBLE[]","DOUBLE[]","LONG[]"] messageTable=table(10000000:0, colName, colType)
快照+逐笔成交明细数据表结构:
字段 | 类型 | 备注 |
---|---|---|
timestamp | TIMESTAMP | 时间 |
symbol | SYMBOL | 标的代码 |
messageSource | SYMBOL | 市场:银行间 ”X_BOND” |
byield | DOUBLE[] | 报买到期 |
ayield | DOUBLE[] | 报卖到期 |
bmdEntryPrice | DOUBLE[] | 报买净价(元) |
amdEntryPrice | DOUBLE[] | 报卖净价(元) |
bmdEntrySize | LONG[] | 报买量(元) |
amdEntrySize | LONG[] | 报卖量(元) |
bsettlType | LONG[] | 买清算速度 |
asettlType | LONG[] | 卖清算速度 |
settlType | LONG[] | 区间清算速度 |
tradePrice | DOUBLE[] | 区间成交价格列表 |
tradeYield | DOUBLE[] | 到期收益率 |
tradeQty | LONG[] | 区间成交数量列表 |
回测行情回放结束时,发送一条 symbol 为 “END” 的消息:
messageTable=select top 1* from messageTable where timestamp=max(timestamp) update messageTable set symbol="END" //update messageTable set msgTime=concatDateTime(timestamp.date(),16:00:00) Backtest::appendQuotationMsg(engine,messageTable)
策略回调函数说明
快照行情回调函数 onSnapshot
:输入参数 msg
msg 为字典时,是以 symbol 为 key 值的 snapShot 数据字典,每个 snapShot 对象包含字段如下:
字段 | 类型 | 备注 |
---|---|---|
symbol | SYMBOL | 标的代码 |
messageSource | SYMBOL | 市场:银行间 ”X_BOND” |
byield | TIMESTAMP | 时间戳 |
ayield | DOUBLE[] | 报买到期 |
bmdEntryPrice | DOUBLE[] | 报买净价(元) |
amdEntryPrice | DOUBLE[] | 报卖净价(元) |
bmdEntrySize | LONG[] | 报买量(元) |
amdEntrySize | LONG[] | 报卖量(元) |
bsettlType | LONG[] | 买清算速度 |
asettlType | LONG[] | 卖清算速度 |
settlType | LONG[] | 区间清算速度 |
tradePrice | DOUBLE[] | 区间成交价格列表 |
tradeYield | DOUBLE[] | 到期收益率 |
tradeQty | LONG[] | 区间成交数量列表 |
委托回报通知函数 onOrder
:输入参数 orders
orders 为订单信息的字典,每个订单信息包含字段如下:
字段 | 类型 | 备注 |
---|---|---|
orderId | LONG | 委托订单 id |
symbol | STRING | 品种代码 |
entrustTime | TIMESTAMP | 委托时间 |
bidAmount | LONG | 委买数量 |
bidprice | DOUBLE | 委买价格 |
bidFilledAmount | LONG | 委买成交数量 |
askAmount | LONG | 委卖数量 |
askPrice | DOUBLE | 委卖价格 |
askFilledAmount | LONG | 委卖成交数量 |
status | INT |
委托状态 4:已报 6:部成 7:已成 9:撤单成功 -1:审批拒绝 |
entrustDirection | INT |
委托方向 1:买 2:卖 3:双边买开 |
tradeBalance | DOUBLE |
成交金额 如果是双边,则买成交金额 + 卖成交金额 |
label | STRING | 标签。可对订单增添备注信息 |
updateTime | TIMESTAMP | 更新时间 |
成交回报通知函数 onTrade
:输入参数 trades
trades 为订单信息的字典,每个订单信息包含的具体字段如下:
字段 | 类型 | 备注 |
---|---|---|
symbol | SYMBOL | 标的代码 |
messageSource | SYMBOL | 市场:银行间 ”X_BOND” |
byield | TIMESTAMP | 时间戳 |
ayield | DOUBLE[] | 报买到期 |
bmdEntryPrice | DOUBLE[] | 报买净价(元) |
amdEntryPrice | DOUBLE[] | 报卖净价(元) |
bmdEntrySize | LONG[] | 报买量(元) |
amdEntrySize | LONG[] | 报卖量(元) |
bsettlType | LONG[] | 买清算速度 |
asettlType | LONG[] | 卖清算速度 |
settlType | LONG[] | 区间清算速度 |
tradePrice | DOUBLE[] | 区间成交价格列表 |
tradeYield | DOUBLE[] | 到期收益率 |
tradeQty | LONG[] | 区间成交数量列表 |