银行间债券

快照

引擎配置说明

接口 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 时,该参数生效。

  • isBacktestMode = true 时,可选值为:

    • “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

行情数据结构说明

通过接口 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“ ,在接口getReturnSummary 中使用

"latency" 订单延时 INT 类型,单位为毫秒,用来模拟用户订单从发出到被处理的时延
“enableIndicatorOptimize” 是否开启指标优化

BOOL 类型

true:开启

false:不开启

”addTimeColumnInIndicator“ 指标订阅时是否给指标数表增加时间列

BOOL 类型

true:增加

false:不增加

“isBacktestMode“ 是否为回测模式

BOOL 类型,默认为 true

true:回测模式

false:模拟交易模式

dataRetentionWindow 开始指标优化时数据保留的窗口

STRING 类型或 INT 类型。 当 enableIndicatorOptimize = true 时,该参数生效。

  • isBacktestMode = true 时,可选值为:

    • “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

行情数据结构说明

通过接口 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[] 区间成交数量列表