银行间债券
回测平台支持的银行间债券资产行情数据类型包括:快照,快照+逐笔成交明细。
引擎配置说明
接口 createBacktester
的参数 config 和接口
createBacktestEngine
的参数 userConfig 的配置可参考下表:
key | 说明 | 备注 |
---|---|---|
"startDate" | 开始日期 | 必须配置,DATE 类型 例如 “2020.01.01” |
"endDate" | 结束日期 | 必须配置,DATE 类型 例如 “2020.01.01” |
"strategyGroup" | 策略类型 | 必须配置,“cfets_bond” |
"cash" | 初始资金 | 必须配置,DOUBLE 类型 |
"commission" | 手续费 | 必须配置,DOUBLE 类型 |
"dataType" | 行情类型 | 必须配置,INT 类型,可选值为: 1:快照 2:快照+逐笔成交明细 |
“matchingMode“ | 订单撮合模式 | INT 类型,默认按模拟撮合引擎撮合订单。若设置为 3 ,则以委托价格成交,设置为 1 或 2 时无效 |
"msgAsTable" | 行情的数据格式 | BOOL 类型,默认为 false false:字典 true:表(只能通过接口createBacktestEngine 创建引擎) |
“benchmark” | 基准标的 | 如”000300.XSHG“ 。在接口getReturnSummary 中使用 |
"latency" | 订单延时 | 单位为毫秒,用来模拟用户订单从发出到被处理的时延 |
“enableIndicatorOptimize” | 是否开启指标优化 | BOOL 类型,默认为 false true:开启 false:不开启 |
”addTimeColumnInIndicator“ | 指标订阅时是否给指标数表增加时间列 | BOOL 类型,默认为 false 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 |
“orderBookMatchingRatio” | 与行情订单薄的成交百分比 | DOUBLE 类型,默认 1.0,取值0~1.0 之间 |
“matchingRatio” | 区间撮合比例 | DOUBLE 类型,默认 1.0,取值0~1.0 之间。默认和成交百分比 orderBookMatchingRatio 相等 |
基本信息表说明
接口 createBacktester
的参数 securityReference
和接口
createBacktestEngine
的参数 securityReference
的基本信息表字段可参考下表:
字段 | 类型 | 含义 |
---|---|---|
symbol | STRING | 标的 |
couponRate | DOUBLE | 票面利率 / 票息率 |
frequency | INT | 付息频率 |
valueDate | DATE | 起息日 |
maturityDate | DATE | 到期日 |
快照
行情数据结构说明
通过接口 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[] | 区间成交数量列表 |
快照+逐笔成交明细
行情数据结构说明
通过接口 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[] | 区间成交数量列表 |