债券#
回测平台支持债券资产,包括银行间债券和上交所债券。
银行间债券#
配置#
配置项 |
说明 |
备注 |
|---|---|---|
"start_date" |
开始日期 |
DATE 类型,必填(例如“2020.01.01”) |
"end_date" |
结束日期 |
DATE 类型,必填(例如“2020.01.01”) |
"asset_type" |
策略类型 |
必须是 “CFETSBond” |
"cash" |
初始资金 |
DOUBLE 类型,必填 |
"data_type" |
行情类型 |
INT 类型,必填,可选值:
|
"matching_mode" |
撮合模式 |
整型。
按订单价格撮合 |
"msg_as_table" |
是否将输入的市场数据作为表或字典处理 |
|
"benck_mark" |
基准标的 |
|
"latency" |
订单提交到成交的延迟时间 |
DOUBLE 类型,单位为毫秒 |
"enable_indicator_optimize" |
是否启用指标计算优化 |
|
"add_time_columnIn_indicator" |
是否在指标订阅结果中添加时间列 |
|
"is_backtest_mode" |
是否为回测模式 |
|
"data_retention_window" |
指标优化的数据保留策略 |
STRING / INT 类型。仅在 enable_indicator_optimize = true 且 is_backtest_mode = true 时生效:
|
"context" |
策略上下文结构 |
由全局策略变量组成的字典 |
"orderbook_matching_ratio" |
与行情订单薄的成交百分比 |
DOUBLE 类型,默认值为 1.0,取值范围 0 到 1.0 |
"matchingRatio" |
价格区间内的撮合比例 |
DOUBLE 类型,取值范围 0 到 1.0,默认等同于 orderbook_matching_ratio |
基本信息表说明#
字段名称 |
数据类型 |
含义 |
|---|---|---|
symbol |
STRING |
标的 |
couponRate |
DOUBLE |
票面利率 / 票息率 |
frequency |
INT |
付息频率 |
valueDate |
DATE |
起息日 |
maturityDate |
DATE |
到期日 |
Market Data#
通过 “append_data” 接口将数据追加到回测引擎时:
col_type = {
"symbol": "SYMBOL", "symbolSource": "SYMBOL", "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[]"
}
message_table = sf.streaming.table(types=col_type, size=0, capacity=10000000)
快照+逐笔成交明细数据表结构:
字段 |
类型 |
含义 |
|---|---|---|
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 |
SYMBOL |
标的代码 |
symbolName |
STRING |
债券简称 |
tradeDate |
TIMESTAMP |
时间 |
maturityDate |
DOUBLE |
待偿期 |
tradeClean |
DOUBLE |
收盘净价 |
tradeDirty |
DOUBLE |
收盘全价 |
tradeAccruedInterest |
DOUBLE |
应计利息 |
yield |
DOUBLE |
收盘到期收益率 |
tradeVolume |
DOUBLE |
成交量 |
回测行情回放结束时,发送一条 symbol 为 “END” 的消息:
message_table = sf.sql("SELECT TOP 1 * FROM messageTable", vars={'messageTable': message_table})
sf.sql("UPDATE messageTable SET symbol='END'", vars={'messageTable': message_table})
backtester.append_data(message_table)
策略回调函数说明#
快照行情回调函数on_snapshot:输入参数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[] |
区间成交数量列表 |
上交所债券#
引擎配置说明#
配置项 |
说明 |
备注 |
|---|---|---|
"start_date" |
开始日期 |
DATE 类型,必填(例如:“2020.01.01”) |
"end_date" |
结束日期 |
DATE 类型,必填(例如:“2020.01.01”) |
"asset_type" |
资产类型 |
必须为 “XSHGBond” |
"cash" |
初始资金 |
DOUBLE 类型,必填 |
"commission" |
手续费 |
DOUBLE 类型,必填 |
"tax" |
印花税 |
DOUBLE 类型,必填 |
"data_type" |
行情类型 |
INT 类型,必填,可选值:
|
"orderbook_matching_ratio" |
订单成交比例 |
DOUBLE 类型,默认值为 1.0,取值范围:0 到 1.0 |
"matching_ratio" |
价位区间内撮合比例 |
DOUBLE 类型,取值范围:0 到 1.0;默认等于 orderbook_matching_ratio |
"set_last_day_position" |
基准持仓设置 |
基准持仓信息表,详见下方表结构 |
底仓信息表结构如下:
字段 |
类型 |
含义 |
|---|---|---|
symbol |
SYMBOL |
股票代码 |
longPosition |
LONG 或者 INT |
买入持仓量 |
costPrice |
DOUBLE |
成本价 |
基本信息表说明#
字段 |
类型 |
含义 |
|---|---|---|
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 |
交易类型,可以是:
|