债券
回测平台支持债券资产,包括银行间债券和上交所债券。
银行间债券
引擎配置说明
接口 createBacktester
的参数 config 和接口
createBacktestEngine
的参数 userConfig 的配置可参考下表:
key | 说明 | 备注 |
---|---|---|
"startDate" | 开始日期 | 必须配置,DATE 类型 例如 “2020.01.01” |
"endDate" | 结束日期 | 必须配置,DATE 类型 例如 “2020.01.01” |
"strategyGroup" | 策略类型 | 必须配置,“CFETSBond” |
"cash" | 初始资金 | 必须配置,DOUBLE 类型 |
"dataType" | 行情类型 | 必须配置,INT 类型,可选值为: 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=[`symbol,`symbolSource,`timestamp,`bidSettlType,`bidQty,`bidPrice, `bidYield,`askSettlType,`askQty,`askPrice,`askYield,`tradePrice, `tradeQty,`settlType,`yield] colType=["SYMBOL","SYMBOL","TIMESTAMP","INT[]","LONG[]","DOUBLE[]","DOUBLE[]", "INT[]","LONG[]","DOUBLE[]","DOUBLE[]","DOUBLE[]","LONG[]","INT[]","DOUBLE[]"] messageTable=table(10000000:0, colName, colType)
快照+逐笔成交明细数据表结构:
名称 | 类型 | 含义 |
---|---|---|
symbol | SYMBOL | 标的代码 |
symbolSource | SYMBOL | 市场:银行间 ”X_BOND” |
timestamp | TIMESTAMP | 时间 |
bidSettlType | INT[] | 买清算速度 |
bidQty | LONG[] | 报买量(元) |
bidPrice | DOUBLE[] | 报买净价(元) |
bidYield | DOUBLE[] | 报买到期 |
askSettlType | INT[] | 卖清算速度 |
askQty | LONG[] | 报卖量(元) |
askPrice | DOUBLE[] | 报卖净价(元) |
askYield | DOUBLE[] | 报卖到期 |
tradePrice | DOUBLE[] | 区间成交价格列表 |
tradeQty | LONG[] | 区间成交数量列表 |
settlType | INT[] | 清算速度 |
yield | DOUBLE[] | 到期收益率 |
回测行情回放结束时,发送一条 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[] | 区间成交数量列表 |
上交所债券
引擎配置说明
接口 createBacktester
的参数 config :
key | 说明 | 备注 |
---|---|---|
"startDate" | 开始日期 | 必须配置,DATE 类型 例如 “2020.01.01” |
"endDate" | 结束日期 | 必须配置,DATE 类型 例如 “2020.01.01” |
"strategyGroup" | 策略类型 | 必须配置,“XSHGBond” |
"cash" | 初始资金 | 必须配置,DOUBLE 类型 |
"commission" | 手续费 | 必须配置,DOUBLE 类型 |
"tax" | 印花税 | 必须配置,DOUBLE 类型 |
"dataType" | 行情类型 | 必须配置,INT 类型,可选值为: 2:快照+逐笔成交明细 |
"orderBookMatchingRatio" | 与行情订单薄的成交百分比 | DOUBLE 类型,默认 1.0,取值0~1.0 之间 |
"matchingRatio" | 区间撮合比例 | DOUBLE 类型,默认 1.0,取值0~1.0 之间。默认和成交百分比 orderBookMatchingRatio 相等 |
"setLastDayPosition" | 底仓设置 | 底仓信息表,表结构见下表 |
底仓信息表结构如下:
字段 | 类型 | 含义 |
---|---|---|
symbol | SYMBOL | 股票代码 |
longPosition | LONG 或者 INT | 买入持仓量 |
costPrice | DOUBLE | 成本价 |
基本信息表说明
接口 createBacktester
的参数 securityReference
的基本信息表字段可参考下表:
字段 | 类型 | 含义 |
---|---|---|
symbol | STRING | 标的 |
couponRate | DOUBLE | 票面利率 / 票息率 |
frequency | INT | 付息频率 |
valueDate | DATE | 起息日 |
maturityDate | DATE | 到期日 |
行情数据结构说明
输入的行情支持由“确定报价行情”和“成交明细”组成的宽表,表结构如下:
字段 | 数据类型 | 备注 |
---|---|---|
symbol | SYMBOL 或 STRING | 证券代码 |
timestamp | TIMESTAMP | 时间戳 |
msgType | INT | 行情类型,可选值为:
|
symbolName | STRING | 证券简称 |
bidId | INT | 买入订单编号 |
bidTime | TIMESTAMP | 买入报价时间 |
bidParty | SYMBOL 或 STRING | 买入报价方 |
bidClean | DOUBLE | 买入价(净价) |
bidQty | LONG | 买入数量 |
bidDirty | DOUBLE | 买入全价 |
bidYield | DOUBLE | 买入到期收益 率 |
askId | INT | 卖出订单编号 |
askTime | TIMESTAMP | 卖出报价时间 |
askParty | SYMBOL 或 STRING | 卖出报价方 |
askClean | DOUBLE | 卖出价(净价) |
askQty | LONG | 卖出数量 |
askDirty | DOUBLE | 卖出全价 |
askYield | DOUBLE | 卖出到期收益率 |
accruedInterest | DOUBLE | 应计利息 |
tradeTime | TIMESTAMP | 成交时间 |
tradeClean | DOUBLE | 成交净价 |
tradeAccruedInterest | DOUBLE | 应计利息 |
tradeDirty | DOUBLE | 成交全价 |
yield | DOUBLE | 到期收益率 |
tradeVolume | INT | 成交量 |
tradeValue | DOUBLE | 成交金额 |
tradeType | INT | 成交方式,可选值为: 1:确定报价成交 2:待定报价成交 3:询价成交 4:协议交易 6:协商成交(含合并申报) 7:竞买 |