银行间债券

回测平台支持的银行间债券资产行情数据类型包括:快照,快照+逐笔成交明细。

引擎配置说明

接口 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 时,该参数生效。
  • isBacktestMode = true 时,默认 “ALL ,可设置为:

    • “ALL“:全部数据保留

    • “20d”:支持按天保留数据,即交易日天数,如 “20d” 代表 20 个交易日

    • “None”:不保留数据

    • 20:支持按条数保留数据,如 20 代表每个 symbol 保留最新的 20 条

  • isBacktestMode = false 时,无需设置

"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[] 区间成交数量列表