数字货币

回测平台支持的数字货币行情数据类型包括:快照,快照+逐笔成交明细,分钟频率,日频等。

快照

引擎配置说明

接口 createBacktester 的参数 config 和接口 createBacktestEngine 的参数 userConfig 的配置可参考下表:

key 说明 备注
"startDate" 开始日期

必须配置,DATE 类型

例如 “2020.01.01”

"endDate" 结束日期

必须配置,DATE 类型

例如 “2020.01.01”

"strategyGroup" 策略类型 必须配置,“cryptocurrency”
"cash"

初始资金 字典类型

{

“spot”:100000.

“futures“:100000.

“option“:100000.

}

必须配置,DOUBLE 类型,不同的品种在不同的账户

spot:现货账户

futures:期货和永续账户

option:期权账户

"commission" 手续费 必须配置,DOUBLE 类型
"dataType" 行情类型 必须配置,1
"msgAsTable" 行情的数据格式

必须配置,BOOL 类型

false:字典

true:表(只能在旧版本中使用,引擎创建接口不同)

“matchingMode“ 订单撮合模式 INT 类型,设置为 3 时,订单以委托价格成交(默认按模拟撮合引擎撮合订单)
“orderBookMatchingRatio” 与行情订单薄的成交百分比 DOUBLE 类型,默认 1.0,取值0~1.0 之间
“matchingRatio” 区间撮合比例 DOUBLE 类型,默认 1.0,取值0~1.0 之间。默认和成交百分比 orderBookMatchingRatio 相等
“benchmark” 基准标的 STRING 或 SYMBOL 类型,例如 ”BTCUSDT_0“ 。在接口getReturnSummary 中使用
"latency" 订单延时 DOUBLE 类型,单位为毫秒,用来模拟用户订单从发出到被处理的时延
fundingRate 永续合约资金费率 TABLE 类型,字段说明见本节最后
“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 结构:

colName=["symbol","symbolSource","timestamp","tradingDay","lastPrice","upLimitPrice",
        "downLimitPrice","totalBidQty","totalOfferQty","bidPrice","bidQty","offerPrice",
        "offerQty","highPrice","lowPrice","signal","prevClosePrice","settlementPrice",
        "prevSettlementPrice","contractType"]
colType= ["STRING","STRING","TIMESTAMP","DATE","DECIMAL128(8)","DECIMAL128(8)","DECIMAL128(8)","DECIMAL128(8)","DECIMAL128(8)",
        "DECIMAL128(8)[]","DECIMAL128(8)[]","DECIMAL128(8)[]","DECIMAL128(8)[]","DECIMAL128(8)","DECIMAL128(8)","DOUBLE[]",
        "DECIMAL128(8)","DECIMAL128(8)","DECIMAL128(8)","INT"]
messageTable=table(10000000:0, colName, colType)

快照行情数据表结构:

字段 类型 备注
symbol STRING 品种代码
symbolSource STRING 交易所
timestamp TIMESTAMP 时间戳
tradingDay DATE 交易日/结算日期
lastPrice DECIMAL128(8) 最新成交价
upLimitPrice DECIMAL128(8) 涨停价
downLimitPrice DECIMAL128(8) 跌停价
totalBidQty DECIMAL128(8) 区间成交买数量
totalOfferQty DECIMAL128(8) 区间成交卖数量
bidPrice DECIMAL128(8)[] 委托买价
bidQty DECIMAL128(8)[] 委托买量
offerPrice DECIMAL128(8)[] 委托卖价
offerQty DECIMAL128(8)[] 委托卖价
highPrice DECIMAL128(8) 最高价
lowPrice DECIMAL128(8) 最低价
signal DOUBLE[] 其他字段列表
prevClosePrice DECIMAL128(8) 前收盘价
settlementPrice DECIMAL128(8) 结算价
prevSettlementPrice DECIMAL128(8) 前结算价
contractType INT

品种类型

0:现货

1:交割合约

2:永续合约

3:期权

注:不同品种类型对应的基本信息表说明见本节最后一栏。

回测行情回放结束时,发送一条 symbol 为 “END” 的消息:

messageTable=select top 1* from messageTable where tradeTime=max(tradeTime)
update messageTable set symbol="END"
update messageTable set tradeTime=concatDateTime(tradeTime.date(),16:00:00)
Backtest::appendQuotationMsg(engine,messageTable)

策略回调函数说明

快照行情回调函数 onSnapshot:输入参数 msg

msg 为字典时,是 symbol 为 key 值的 snapShot 数据字典,每个 snapShot 对象包含字段如下:

字段 类型 备注
symbol STRING 品种代码
symbolSource STRING 交易所
timestamp TIMESTAMP 时间戳
tradingDay DATE 交易日/结算日期
lastPrice DECIMAL128(8) 最新成交价
upLimitPrice DECIMAL128(8) 涨停价
downLimitPrice DECIMAL128(8) 跌停价
totalBidQty DECIMAL128(8) 区间成交买数量
totalOfferQty DECIMAL128(8) 区间成交卖数量
bidPrice DECIMAL128(8)[] 委托买价
bidQty DECIMAL128(8)[] 委托买量
offerPrice DECIMAL128(8)[] 委托卖价
offerQty DECIMAL128(8)[] 委托卖价
highPrice DECIMAL128(8) 最高价
lowPrice DECIMAL128(8) 最低价
signal DOUBLE[] 其他字段列表
prevClosePrice DECIMAL128(8) 前收盘价
settlementPrice DECIMAL128(8) 结算价
prevSettlementPrice DECIMAL128(8) 前结算价
contractType INT

品种类型

0:现货

1:交割合约

2:永续合约

3:期权

委托回报通知函数 onOrder:输入参数 orders

orders 为订单信息的字典,每个订单信息包含字段如下:

字段 类型 备注
orderId LONG 委托订单 id
symbol STRING 品种代码
timestamp TIMESTAMP 委托时间
qty LONG 委托数量
price DOUBLE 委托价格
status INT

委托状态

4:已报

0:部成

1:已成

2:撤单成功

-1:审批拒绝

-2:撤单拒绝

direction INT

委托方向

1 :买开

2: 卖开

3: 卖平

4 :买平

tradeQty LONG 成交数量
tradeValue DOUBLE 成交金额
label STRING 标签,可对该订单增加备注信息
updateTime TIMESTAMP 更新时间

成交回报通知函数 onTrade:输入参数 trades

trades 为订单信息的字典,每个订单信息包含的具体字段如下:

字段 类型 备注
orderId LONG 委托订单 id
symbol STRING 品种代码
tradePrice DOUBLE 成交价格
tradeQty LONG 成交数量
tradeValue DOUBLE 成交金额
totalFee DOUBLE 总费用
totalVolume LONG 累计成交量
totalValue DOUBLE 累计成交金额
direction INT

委托方向

1 :买开

2: 卖开

3: 卖平

4 :买平

tradeTime TIMESTAMP 成交时间
orderPrice DOUBLE 委托价格
label STRING 标签,可对该订单增加备注信息

快照+逐笔成交明细

引擎配置说明

接口 createBacktester 的参数 config 和接口 createBacktestEngine 的参数 userConfig 的配置可参考下表:

key 说明 备注
"startDate" 开始日期

必须配置,DATE 类型

例如 “2020.01.01”

"endDate" 结束日期

必须配置,DATE 类型

例如 “2020.01.01”

"strategyGroup" 策略类型 必须配置,“cryptocurrency”
"cash"

初始资金 字典类型

{

“spot”:100000.

“futures“:100000.

“option“:100000.

}

必须配置,DOUBLE 类型,不同的品种在不同的账户

spot:现货账户

futures:期货和永续账户

option:期权账户

"commission" 手续费 必须配置,DOUBLE 类型
"dataType" 行情类型 必须配置,2
"msgAsTable" 行情的数据格式

必须配置,BOOL 类型

false:字典

true:表(只能在旧版本中使用,引擎创建接口不同)

“matchingMode“ 订单撮合模式 INT 类型,设置为 3 时,订单以委托价格成交(默认按模拟撮合引擎撮合订单)
“orderBookMatchingRatio” 与行情订单薄的成交百分比 DOUBLE 类型,默认 1.0,取值0~1.0 之间
“matchingRatio” 区间撮合比例 DOUBLE 类型,默认 1.0,取值0~1.0 之间。默认和成交百分比 orderBookMatchingRatio 相等
“benchmark” 基准标的 STRING 或 SYMBOL 类型,例如 ”BTCUSDT_0“ 。在接口getReturnSummary 中使用
"latency" 订单延时 DOUBLE 类型,单位为毫秒,用来模拟用户订单从发出到被处理的时延
fundingRate 永续合约资金费率 TABLE 类型,字段说明见本节最后
“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 结构:

colName=["symbol","symbolSource","timestamp","tradingDay","lastPrice","upLimitPrice",
        "downLimitPrice","totalBidQty","totalOfferQty","bidPrice","bidQty","offerPrice",
        "offerQty","tradePrice","tradeQty","highPrice","lowPrice","signal","prevClosePrice","settlementPrice",
        "prevSettlementPrice","contractType"]
colType= ["STRING","STRING","TIMESTAMP","DATE","DECIMAL128(8)","DECIMAL128(8)","DECIMAL128(8)","DECIMAL128(8)","DECIMAL128(8)",
        "DECIMAL128(8)[]","DECIMAL128(8)[]","DECIMAL128(8)[]","DECIMAL128(8)[]","DECIMAL128(8)[]","DECIMAL128(8)[]","DECIMAL128(8)","DECIMAL128(8)",
        "DOUBLE[]","DECIMAL128(8)","DECIMAL128(8)","DECIMAL128(8)","INT"
      ]
messageTable=table(10000000:0, colName, colType)

快照+逐笔成交明细数据表结构:

字段 类型 备注
symbol STRING 品种代码
symbolSource STRING 交易所
timestamp TIMESTAMP 时间戳
tradingDay DATE 交易日/结算日期
lastPrice DECIMAL128(8) 最新成交价
upLimitPrice DECIMAL128(8) 涨停价
downLimitPrice DECIMAL128(8) 跌停价
totalBidQty DECIMAL128(8) 区间成交买数量
totalOfferQty DECIMAL128(8) 区间成交卖数量
bidPrice DECIMAL128(8)[] 委托买价
bidQty DECIMAL128(8)[] 委托买量
offerPrice DECIMAL128(8)[] 委托卖价
offerQty DECIMAL128(8)[] 委托卖价
tradePrice DECIMAL128(8)[] 成交价格
tradeQty DECIMAL128(8)[] 成交数量
highPrice DECIMAL128(8) 最高价
lowPrice DECIMAL128(8) 最低价
signal DOUBLE[] 其他字段列表
prevClosePrice DECIMAL128(8) 前收盘价
settlementPrice DECIMAL128(8) 结算价
prevSettlementPrice DECIMAL128(8) 前结算价
contractType INT

品种类型

0:现货

1:交割合约

2:永续合约

3:期权

注:不同品种类型对应的基本信息表说明见本节最后一栏。

回测行情回放结束时,发送一条 symbol 为 “END” 的消息:

messageTable=select top 1* from messageTable where tradeTime=max(tradeTime)
update messageTable set symbol="END"
update messageTable set tradeTime=concatDateTime(tradeTime.date(),16:00:00)
Backtest::appendQuotationMsg(engine,messageTable)

策略回调函数说明

快照行情回调函数 onSnapshot:输入参数 msg

msg 为字典时,是 symbol 为 key 值的 snapShot 数据字典,每个 snapShot 对象包含字段如下:

字段 类型 备注
symbol STRING 品种代码
symbolSource STRING 交易所
timestamp TIMESTAMP 时间戳
tradingDay DATE 交易日/结算日期
lastPrice DECIMAL128(8) 最新成交价
upLimitPrice DECIMAL128(8) 涨停价
downLimitPrice DECIMAL128(8) 跌停价
totalBidQty DECIMAL128(8) 区间成交买数量
totalOfferQty DECIMAL128(8) 区间成交卖数量
bidPrice DECIMAL128(8)[] 委托买价
bidQty DECIMAL128(8)[] 委托买量
offerPrice DECIMAL128(8)[] 委托卖价
offerQty DECIMAL128(8)[] 委托卖价
tradePrice DECIMAL128(8)[] 最高价
tradeQty DECIMAL128(8)[] 最低价
highPrice DECIMAL128(8) 最高价
lowPrice DECIMAL128(8) 最低价
signal DOUBLE[] 其他字段列表
prevClosePrice DECIMAL128(8) 前收盘价
settlementPrice DECIMAL128(8) 结算价
prevSettlementPrice DECIMAL128(8) 前结算价
contractType INT

品种类型

0:现货

1:交割合约

2:永续合约

3:期权

委托回报通知函数 onOrder:输入参数 orders

orders 为订单信息的字典,每个订单信息包含字段如下:

字段 类型 备注
orderId LONG 委托订单 id
symbol STRING 品种代码
timestamp TIMESTAMP 委托时间
qty LONG 委托数量
price DOUBLE 委托价格
status INT

委托状态

4:已报

0:部成

1:已成

2:撤单成功

-1:审批拒绝

-2:撤单拒绝

direction INT

委托方向

1 :买开

2: 卖开

3: 卖平

4 :买平

tradeQty LONG 成交数量
tradeValue DOUBLE 成交金额
label STRING 标签,可对该订单增加备注信息
updateTime TIMESTAMP 更新时间

成交回报通知函数 onTrade:输入参数 trades

trades 为订单信息的字典,每个订单信息包含的具体字段如下:

字段 类型 备注
orderId LONG 委托订单 id
symbol STRING 品种代码
tradePrice DOUBLE 成交价格
tradeQty LONG 成交数量
tradeValue DOUBLE 成交金额
totalFee DOUBLE 总费用
totalVolume LONG 累计成交量
totalValue DOUBLE 累计成交金额
direction INT

委托方向

1 :买开

2: 卖开

3: 卖平

4 :买平

tradeTime TIMESTAMP 成交时间
orderPrice DOUBLE 委托价格
label STRING 标签,可对该订单增加备注信息

分钟频率

引擎配置说明

接口 createBacktester 的参数 config 和接口 createBacktestEngine 的参数 userConfig 的配置可参考下表:

key 说明 备注
"startDate" 开始日期

必须配置,DATE 类型

例如 “2020.01.01”

"endDate" 结束日期

必须配置,DATE 类型

例如 “2020.01.01”

"strategyGroup" 策略类型 必须配置,“cryptocurrency”
"cash"

初始资金 字典类型

{

“spot”:100000.

“futures“:100000.

“option“:100000.

}

必须配置,DOUBLE 类型,不同的品种在不同的账户

spot:现货账户

futures:期货和永续账户

option:期权账户

"commission" 手续费 必须配置,DOUBLE 类型
"dataType" 行情类型 必须配置,3
"msgAsTable" 行情的数据格式

必须配置,BOOL 类型

false:字典

true:表(只能在旧版本中使用,引擎创建接口不同)

“matchingMode“ 订单撮合模式

INT 类型,可选值为:

1:行情时间大于订单时间时撮合订单(模式一)

2:行情时间等于订单时间时以当前行情的收盘价撮合订单,后续未完成的订单按照模式一撮合订单

3:以委托价格成交

“benchmark” 基准标的 STRING 或 SYMBOL 类型,例如 ”BTCUSDT_0“ 。在接口getReturnSummary 中使用
"latency" 订单延时 DOUBLE 类型,单位为毫秒,用来模拟用户订单从发出到被处理的时延
fundingRate 永续合约资金费率 TABLE 类型,字段说明见本节最后
“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 结构:

colName=[`symbol,`symbolSource,`tradeTime,`tradingDay,`open,`low,`high,`close,`volume,`amount,`upLimitPrice,
        `downLimitPrice,`signal,`prevClosePrice,`settlementPrice,`prevSettlementPrice,`contractType]
colType=[SYMBOL,SYMBOL,TIMESTAMP,DATE,DECIMAL128(8),DECIMAL128(8),DECIMAL128(8),DECIMAL128(8),DECIMAL128(8),
DECIMAL128(8),DECIMAL128(8),DECIMAL128(8),DOUBLE[],DECIMAL128(8),DECIMAL128(8),DECIMAL128(8),INT]
messageTable=table(10000000:0, colName, colType)

分钟频行情数据表结构:

字段 类型 备注
symbol SYMBOL 品种代码
symbolSource SYMBOL 交易所
tradeTime TIMESTAMP 时间戳
tradingDay DATE 交易日/结算日期
open DECIMAL128(8) 开盘价
low DECIMAL128(8) 最低价
high DECIMAL128(8) 最高价
close DECIMAL128(8) 收盘价
volume DECIMAL128(8) 成交量
amount DECIMAL128(8) 成交金额
upLimitPrice DECIMAL128(8) 涨停价
downLimitPrice DECIMAL128(8) 跌停价
signal DOUBLE[] 其他字段列表
prevClosePrice DECIMAL128(8) 前收盘价
settlementPrice DECIMAL128(8) 结算价
prevSettlementPrice DECIMAL128(8) 前结算价
contractType INT

品种类型

0:现货

1:交割合约

2:永续合约

3:期权

注:不同品种类型对应的基本信息表说明见本节最后一栏。

回测行情回放结束时,发送一条 symbol 为 “END” 的消息:

messageTable=select top 1* from messageTable where tradeTime=max(tradeTime)
update messageTable set symbol="END"
update messageTable set tradeTime=concatDateTime(tradeTime.date(),16:00:00)
Backtest::appendQuotationMsg(engine,messageTable)

策略回调函数说明

k 线行情回调函数 onBar:输入参数 msg

msg 是字典时,是 以 symbol 为 key 值的分钟频率的 K 线数据字典,每个 K 线包含字段如下:

字段 类型 备注
symbol SYMBOL 品种代码
symbolSource SYMBOL 交易所
tradeTime TIMESTAMP 时间戳
tradingDay DATE 交易日/结算日期
open DECIMAL128(8) 开盘价
low DECIMAL128(8) 最低价
high DECIMAL128(8) 最高价
close DECIMAL128(8) 收盘价
volume DECIMAL128(8) 成交量
amount DECIMAL128(8) 成交金额
upLimitPrice DECIMAL128(8) 涨停价
downLimitPrice DECIMAL128(8) 跌停价
signal DOUBLE[] 其他字段列表
prevClosePrice DECIMAL128(8) 前收盘价
settlementPrice DECIMAL128(8) 结算价
prevSettlementPrice DECIMAL128(8) 前结算价
contractType INT

品种类型

0:现货

1:交割合约

2:永续合约

3:期权

委托回报通知函数 onOrder:输入参数 orders

orders 为订单信息的字典,每个订单信息包含字段如下:

字段 类型 备注
orderId LONG 委托订单 id
symbol STRING 品种代码
timestamp TIMESTAMP 委托时间
qty LONG 委托数量
price DOUBLE 委托价格
status INT

委托状态

4:已报

0:部成

1:已成

2:撤单成功

-1:审批拒绝

-2:撤单拒绝

direction INT

委托方向

1 :买开

2: 卖开

3: 卖平

4 :买平

tradeQty LONG 成交数量
tradeValue DOUBLE 成交金额
label STRING 标签,可对该订单增加备注信息
updateTime TIMESTAMP 更新时间

成交回报通知函数 onTrade:输入参数 trades

trades 为订单信息的字典,每个订单信息包含的具体字段如下:

字段 类型 备注
orderId LONG 委托订单 id
symbol STRING 品种代码
tradePrice DOUBLE 成交价格
tradeQty LONG 成交数量
tradeValue DOUBLE 成交金额
totalFee DOUBLE 总费用
totalVolume LONG 累计成交量
totalValue DOUBLE 累计成交金额
direction INT

委托方向

1 :买开

2: 卖开

3: 卖平

4 :买平

tradeTime TIMESTAMP 成交时间
orderPrice DOUBLE 委托价格
label STRING 标签,可对该订单增加备注信息

日频

引擎配置说明

接口 createBacktester 的参数 config 和接口 createBacktestEngine 的参数 userConfig 的配置可参考下表:

key 说明 备注
"startDate" 开始日期

必须配置,DATE 类型

例如 “2020.01.01”

"endDate" 结束日期

必须配置,DATE 类型

例如 “2020.01.01”

"strategyGroup" 策略类型 必须配置,“cryptocurrency”
"cash"

初始资金 字典类型

{

“spot”:100000.

“futures“:100000.

“option“:100000.

}

必须配置,DOUBLE 类型,不同的品种在不同的账户

spot:现货账户

futures:期货和永续账户

option:期权账户

"commission" 手续费 必须配置,DOUBLE 类型
"dataType" 行情类型 必须配置,4
"msgAsTable" 行情的数据格式

必须配置,BOOL 类型

false:字典

true:表(只能在旧版本中使用,引擎创建接口不同)

“matchingMode“ 订单撮合模式

INT 类型,可选值为:

1:以收盘价撮合订单

2:以开盘价撮合订单

3:以委托价格成交

“benchmark” 基准标的 STRING 或 SYMBOL 类型,例如 ”BTCUSDT_0“ 。在接口getReturnSummary 中使用
"latency" 订单延时 DOUBLE 类型,单位为毫秒,用来模拟用户订单从发出到被处理的时延
fundingRate 永续合约资金费率 TABLE 类型,字段说明见本节最后
“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 结构:

colName=[`symbol,`symbolSource,`tradeTime,`tradingDay,`open,`low,`high,`close,`volume,`amount,`upLimitPrice,
        `downLimitPrice,`signal,`prevClosePrice,`settlementPrice,`prevSettlementPrice,`contractType]
colType=[SYMBOL,SYMBOL,TIMESTAMP,DATE,DECIMAL128(8),DECIMAL128(8),DECIMAL128(8),DECIMAL128(8),DECIMAL128(8),
DECIMAL128(8),DECIMAL128(8),DECIMAL128(8),DOUBLE[],DECIMAL128(8),DECIMAL128(8),DECIMAL128(8),INT]
messageTable=table(10000000:0, colName, colType)

日频行情数据表结构:

字段 类型 备注
symbol SYMBOL 品种代码
symbolSource SYMBOL 交易所
tradeTime TIMESTAMP 时间戳
tradingDay DATE 交易日/结算日期
open DECIMAL128(8) 开盘价
low DECIMAL128(8) 最低价
high DECIMAL128(8) 最高价
close DECIMAL128(8) 收盘价
volume DECIMAL128(8) 成交量
amount DECIMAL128(8) 成交金额
upLimitPrice DECIMAL128(8) 涨停价
downLimitPrice DECIMAL128(8) 跌停价
signal DOUBLE[] 其他字段列表
prevClosePrice DECIMAL128(8) 前收盘价
settlementPrice DECIMAL128(8) 结算价
prevSettlementPrice DECIMAL128(8) 前结算价
contractType INT

品种类型

0:现货

1:交割合约

2:永续合约

3:期权

注:不同品种类型对应的基本信息表说明见本节最后一栏。

回测行情回放结束时,发送一条 symbol 为 “END” 的消息:

messageTable=select top 1* from messageTable where tradeTime=max(tradeTime)
update messageTable set symbol="END"
update messageTable set tradeTime=concatDateTime(tradeTime.date(),16:00:00)
Backtest::appendQuotationMsg(engine,messageTable

策略回调函数说明

k 线行情回调函数 onBar:输入参数 msg

msg 是字典时,是以 symbol 为 key 值的日频的 K 线数据字典,每个 K 线包含字段如下:

字段 类型 备注
symbol SYMBOL 品种代码
symbolSource SYMBOL 交易所
tradeTime TIMESTAMP 时间戳
tradingDay DATE 交易日/结算日期
open DECIMAL128(8) 开盘价
low DECIMAL128(8) 最低价
high DECIMAL128(8) 最高价
close DECIMAL128(8) 收盘价
volume DECIMAL128(8) 成交量
amount DECIMAL128(8) 成交金额
upLimitPrice DECIMAL128(8) 涨停价
downLimitPrice DECIMAL128(8) 跌停价
signal DOUBLE[] 其他字段列表
prevClosePrice DECIMAL128(8) 前收盘价
settlementPrice DECIMAL128(8) 结算价
prevSettlementPrice DECIMAL128(8) 前结算价
contractType INT

品种类型

0:现货

1:交割合约

2:永续合约

3:期权

委托回报通知函数 onOrder:输入参数 orders

orders 为订单信息的字典,每个订单信息包含字段如下:

字段 类型 备注
orderId LONG 委托订单 id
symbol STRING 品种代码
timestamp TIMESTAMP 委托时间
qty LONG 委托数量
price DOUBLE 委托价格
status INT

委托状态

4:已报

0:部成

1:已成

2:撤单成功

-1:审批拒绝

-2:撤单拒绝

direction INT

委托方向

1 :买开

2: 卖开

3: 卖平

4 :买平

tradeQty LONG 成交数量
tradeValue DOUBLE 成交金额
label STRING 标签,可对该订单增加备注信息
updateTime TIMESTAMP 更新时间

成交回报通知函数 onTrade:输入参数 trades

trades 为订单信息的字典,每个订单信息包含的具体字段如下:

字段 类型 备注
orderId LONG 委托订单 id
symbol STRING 品种代码
tradePrice DOUBLE 成交价格
tradeQty LONG 成交数量
tradeValue DOUBLE 成交金额
totalFee DOUBLE 总费用
totalVolume LONG 累计成交量
totalValue DOUBLE 累计成交金额
direction INT

委托方向

1 :买开

2: 卖开

3: 卖平

4 :买平

tradeTime TIMESTAMP 成交时间
orderPrice DOUBLE 委托价格
label STRING 标签,可对该订单增加备注信息

基本信息表说明

不同品种类型对应的基本信息表字段说明如下:

字段 类型 备注
symbol SYMBOL 或 STRING 品种代码
contractType INT

品种类型

0:现货

1:交割合约

2:永续合约

3:期权

optType INT

期权类型

1:看涨(call)

2:看跌(put)

strikePrice DECIMAL128(8) 行权价
contractSize DECIMAL128(2) 合约乘数
matchingRatio DECIMAL128(2) 保证金比例
tradeUnit DECIMAL128(2) 合约单位
priceUnit DECIMAL128(2) 报价单位
priceTick DECIMAL128(2) 价格最小变动单位
takerRate DECIMAL128(8) 吃单手续费
makerRate DECIMAL128(8) 挂单手续费
deliveryCommissionMode INT

1:makerRate(或者takerRate)/ 手

2:成交额 *makerRate(或者takerRate)

fundingSettlementMode INT

1:lastFundingRate/手(永续合约)

2:价值 *lastFundingRate(永续合约)

lastTradeTime TIMESTAMP 最后交易时间
  1. 费用计算,每个品种相应的保证金、费用等不一致

  2. 若品种类型为永续合约时,持仓费用计算还需参考配置的永续合约资金费率表

永续合约资金费率表:

字段 类型 备注
symbol STRING 或 SYMBOL 合约
settlementTime TIMESTAMP 结算时间
lastFundingRate DECIMAL128(8) 结算费率