期权

快照

引擎配置说明

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

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

必须配置,DATE 类型

例如 “2020.01.01”

"endDate" 结束日期

必须配置,DATE 类型

例如 “2020.01.01”

"strategyGroup" 策略类型 必须配置,“option”
"cash" 初始资金 必须配置,DOUBLE 类型
"commission" 手续费 必须配置,DOUBLE 类型
"tax" 印花税 必须配置,DOUBLE 类型
"dataType" 行情类型 必须配置,1
“frequency” 快照数据以指定频率合成bar

必须配置,INT 类型

当 frequency = 0 时,该参数无效。

当 frequency > 0 时,引擎内部合成 frequency 频率的 bar 行情触发 onBar 回调函数

"msgAsTable" 行情的数据格式

必须配置,BOOL 类型

false:字典

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

”callbackForSnapshot “ 快照行情触发回调模式

INT 类型,可选值为:

0:表示只触发 onSnapshot

1 :表示既触发 onSnpshot 又触发 onBar

2 :表示只触发 onBar

默认为 0,当 frequency > 0 时,必须触发 onBar 回调函数,即 callbackForSnapshot = 1 或者 2

“matchingMode“ 订单撮合模式 INT 类型,设置为 3 时,订单以委托价格成交(默认按模拟撮合引擎撮合订单)
“orderBookMatchingRatio” 与行情订单薄的成交百分比 DOUBLE 类型,默认 1.0,取值 0~1.0 之间
“matchingRatio” 区间撮合比例 DOUBLE 类型,默认 1.0,取值0~1.0 之间。默认和成交百分比 orderBookMatchingRatio 相等
“benchmark” 基准标的

STRING 或 SYMBOL 类型

例如 ”A2305“ ,在接口getReturnSummary 中使用

"latency" 订单延时 INT 类型,单位为毫秒,用来模拟用户订单从发出到被处理的时延。
“maintenanceMargin” 维保比例 DOUBLE 类型,默认 1.0,取值0~1.0 之间
“enableIndicatorOptimize” 是否开启指标优化

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 时,无需设置

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

BOOL 类型

true:增加

false:不增加

"context" 策略逻辑上下文类结构

DICT 类型,策略全局变量构成的字典,如:

context = dict(STRING, ANY)
context["buySignalRSI"] = 70.
context["buySignalRSI"] = 30. 
userConfig["context"] = context

行情数据结构说明

通过接口 appendQuotationMsg 向引擎中插入数据时,msg 结构:

执行回测时输入表 messageTable 结构: Backtest::appendQuotationMsg(engine,messamessageTable)

快照行情(frequency = 0,callbackForSnapshot = 0)时的表结构:

colName = ["symbol", "symbolSource", "timestamp", "tradingDay", "lastPrice", "upLimitPrice",
        "downLimitPrice", "totalBidQty", "totalOfferQty", "bidPrice", "bidQty", "offerPrice",
        "offerQty", "highPrice", "lowPrice", "signal", "prevClosePrice", "settlementPrice",
        "prevSettlementPrice", "underlyingPrice", "Theta", "Vega", "Gamma", "Delta", "IV"]
colType = ["STRING", "STRING", "TIMESTAMP", "DATE", "DOUBLE", "DOUBLE", "DOUBLE", "LONG", "LONG",
        "DOUBLE[]", "LONG[]", "DOUBLE[]", "LONG[]", "DOUBLE", "DOUBLE", "DOUBLE[]", "DOUBLE",
        "DOUBLE", "DOUBLE", "DOUBLE", "DOUBLE", "DOUBLE", "DOUBLE", "DOUBLE", "DOUBLE"]
messageTable = table(10000000:0, colName, colType)

上述为快照行情(callbackForSnapshot = 0),即非快照合成 bar 行情的输入表结构。

快照行情数据表结构:

字段 类型 备注
symbol SYMBOL 期权代码
symbolSource STRING 交易所
timestamp TIMESTAMP 时间戳
tradingDay DATE 交易日/结算日期
lastPrice DOUBLE 最新成交价
upLimitPrice DOUBLE 涨停价
downLimitPrice DOUBLE 跌停价
totalBidQty LONG 区间成交买数量
totalOfferQty LONG 区间成交卖数量
bidPrice DOUBLE[] 委托买价
bidQty LONG[] 委托买量
offerPrice DOUBLE[] 委托卖价
offerQty LONG[] 委托卖价
highPrice DOUBLE 最高价
lowPrice DOUBLE 最低价
signal DOUBLE[] 其他字段列表
prevClosePrice DOUBLE 前收盘价
settlementPrice DOUBLE 结算价
prevSettlementPrice DOUBLE 前结算价
underlyingPrice DOUBLE 标的价格
Theta DOUBLE /
Vega DOUBLE /
Gamma DOUBLE /
Delta DOUBLE /
IV DOUBLE /

快照行情(frequency > 0,callbackForSnapshot = 1 或者 2)时的表结构:

colName = ["symbol", "symbolSource", "timestamp", "tradingDay", "lastPrice", "upLimitPrice",
        "downLimitPrice", "totalBidQty", "totalOfferQty", "bidPrice", "bidQty", "offerPrice",
        "offerQty", "highPrice", "lowPrice", "signal", "prevClosePrice", "settlementPrice",
        "prevSettlementPrice", "underlyingPrice", "Theta", "Vega", "Gamma", "Delta", "IV", "open", "close", "low", "high", "volume"]
colType = ["STRING", "STRING", "TIMESTAMP", "DATE", "DOUBLE", "DOUBLE", "DOUBLE", "LONG", "LONG",
        "DOUBLE[]", "LONG[]", "DOUBLE[]", "LONG[]", "DOUBLE", "DOUBLE", "DOUBLE[]", "DOUBLE",
        "DOUBLE", "DOUBLE", "DOUBLE", "DOUBLE", "DOUBLE", "DOUBLE", "DOUBLE", "DOUBLE", "DOUBLE", "DOUBLE", "DOUBLE", "DOUBLE", "LONG"]
messageTable = table(10000000:0, colName, colType)

快照合成 bar 行情时(frequency > 0且 callbackForSnapshot = 1 或者 2 ), 还需要增加五个字段:"open", "close","low","high","volume"。

快照行情数据表结构(使用快照合成 bar 行情):

字段 类型 备注
symbol SYMBOL 期权代码
symbolSource STRING 交易所
timestamp TIMESTAMP 时间戳
tradingDay DATE 交易日/结算日期
lastPrice DOUBLE 最新成交价
upLimitPrice DOUBLE 涨停价
downLimitPrice DOUBLE 跌停价
totalBidQty LONG 区间成交买数量
totalOfferQty LONG 区间成交卖数量
bidPrice DOUBLE[] 委托买价
bidQty LONG[] 委托买量
offerPrice DOUBLE[] 委托卖价
offerQty LONG[] 委托卖价
highPrice DOUBLE 最高价
lowPrice DOUBLE 最低价
signal DOUBLE[] 其他字段列表
prevClosePrice DOUBLE 前收盘价
settlementPrice DOUBLE 结算价
prevSettlementPrice DOUBLE 前结算价
underlyingPrice DOUBLE 标的价格
Theta DOUBLE /
Vega DOUBLE /
Gamma DOUBLE /
Delta DOUBLE /
IV DOUBLE /
open DOUBLE 合成 bar 行情的开盘价
close DOUBLE 合成 bar 行情的收盘价
low DOUBLE 合成 bar 行情的最低价
high DOUBLE 合成 bar 行情的最高价
volume LONG 合成 bar 行情的成交量

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

//signal字段生成demo 
//update tb set signal =fixedLengthArrayVector([close]) //或者在 select中通过 fixedLengthArrayVector([close])生成 
messageTable=select top 1* from messageTable where timestamp=max(timestamp) 
update messageTable set symbol="END" 
Backtest::appendQuotationMsg(engine,messageTable)

策略回调函数说明

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

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

    字段 类型 备注
    symbol SYMBOL

    期权代码

    symbolSource STRING 交易所
    timestamp TIMESTAMP 时间戳
    tradingDay DATE 交易日/结算日期
    lastPrice DOUBLE 最新成交价
    upLimitPrice DOUBLE 涨停价
    downLimitPrice DOUBLE 跌停价
    totalBidQty LONG 区间成交买数量
    totalOfferQty LONG 区间成交卖数量
    bidPrice DOUBLE[] 委托买价
    bidQty LONG[] 委托买量
    offerPrice DOUBLE[] 委托卖价
    offerQty LONG[] 委托卖价
    highPrice DOUBLE 最高价
    lowPrice DOUBLE 最低价
    signal DOUBLE[] 其他字段列表
    prevClosePrice DOUBLE 前收盘价
    settlementPrice DOUBLE 结算价
    prevSettlementPrice DOUBLE 前结算价
    underlyingPrice DOUBLE 标的价格
    Theta DOUBLE /
    Vega DOUBLE /
    Gamma DOUBLE /
    Delta DOUBLE /
    IV DOUBLE /
    open DOUBLE

    合成 bar 行情的开盘价

    (dataType = 1 或者 2,callbackForSnapshot = 1 或者 2 时才有)

    close DOUBLE

    合成 bar 行情的收盘价

    (dataType = 1 或者 2,callbackForSnapshot = 1 或者 2 时才有)

    low DOUBLE

    合成 bar 行情的最低价

    (dataType = 1 或者 2,callbackForSnapshot = 1 或者 2 时才有)

    high DOUBLE

    合成 bar 行情的最高价

    (dataType = 1 或者 2 ,callbackForSnapshot = 1 或者 2 时才有)

    volume LONG

    合成 bar 行情的成交量

    (dataType = 1 或者 2 ,callbackForSnapshot = 1 或者 2 时才有)

    1. 快照合成 bar 行情时(frequency > 0且 callbackForSnapshot = 1 或者 2), 输入参数 msg 还需要增加五个字段:"open", "close","low","high","volume"。

    2. 当 callbackForSnapshot = 1 或 2 时,还需回调 onBar 函数,输入参数 msg 的数据结构如下。

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

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

    字段 类型 备注
    symbol SYMBOL

    期权代码

    symbolSource STRING 交易所
    tradeTime TIMESTAMP 时间戳
    tradingDay DATE 交易日/结算日期
    open DOUBLE 开盘价
    low DOUBLE 最低价
    high DOUBLE 最高价
    close DOUBLE 收盘价
    volume LONG 成交量
    amount DOUBLE 成交金额
    upLimitPrice DOUBLE 涨停价
    downLimitPrice DOUBLE 跌停价
    signal DOUBLE[] 其他字段列表
    prevClosePrice DOUBLE 前收盘价
    settlementPrice DOUBLE 结算价
    prevSettlementPrice DOUBLE 前结算价
    underlyingPrice DOUBLE 标的价格
    Theta DOUBLE /
    Vega DOUBLE /
    Gamma DOUBLE /
    Delta DOUBLE /
    IV DOUBLE /
  • 委托回报通知函数 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" 策略类型 必须配置,“option”
"cash" 初始资金 必须配置,DOUBLE 类型
"commission" 手续费 必须配置,DOUBLE 类型
"tax" 印花税 必须配置,DOUBLE 类型
"dataType" 行情类型 必须配置,3
“frequency” 以指定频率合成 必须配置,INT 类型, 该参数无效
"msgAsTable" 行情的数据格式

必须配置,BOOL 类型

false:字典

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

“matchingMode“ 订单撮合模式

INT 类型,可选值为:

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

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

3:以委托价格成交

“benchmark” 基准标的

STRING 或 SYMBOL 类型

例如 ”A2305“ ,在接口getReturnSummary 中使用

"latency" 订单延时 INT 类型,单位为毫秒,用来模拟用户订单从发出到被处理的时延。
“maintenanceMargin” 维保比例 DOUBLE 类型,默认 1.0,取值0~1.0 之间
“enableIndicatorOptimize” 是否开启指标优化

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 时,无需设置

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

BOOL 类型

true:增加

false:不增加

"context" 策略逻辑上下文类结构

DICT 类型,策略全局变量构成的字典,如:

context=dict(STRING,ANY)
context["buySignalRSI"]=70.
context["buySignalRSI"]=30. 
userConfig["context"]=context

行情数据结构说明

通过接口 appendQuotationMsg 向引擎中插入数据时,msg 结构:

执行回测时输入表 messageTable 结构: Backtest::appendQuotationMsg(engine,messamessageTable)

colName=`symbol`symbolSource`tradeTime`tradingDay`open`low`high`close`volume`amount`upLimitPrice`downLimitPrice`signal`prevClosePrice`settlementPrice`prevSettlementPrice`underlyingPrice`Theta`Vega`Gamma`Delta`IV
colType=[SYMBOL,SYMBOL,TIMESTAMP,DATE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,LONG,DOUBLE,DOUBLE,DOUBLE,
        DOUBLE[],DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE]
messageTable=table(10000000:0, colName, colType)

分钟频行情数据表结构:

字段 类型 备注
symbol SYMBOL 期权代码
symbolSource STRING 交易所
tradeTime TIMESTAMP 时间戳
tradingDay DATE 交易日/结算日期
open DOUBLE 开盘价
low DOUBLE 最低价
high DOUBLE 最高价
close DOUBLE 收盘价
volume LONG 成交量
amount DOUBLE 成交金额
upLimitPrice DOUBLE 涨停价
downLimitPrice DOUBLE 跌停价
signal DOUBLE[] 其他字段列表
prevClosePrice DOUBLE 前收盘价
settlementPrice DOUBLE 结算价
prevSettlementPrice DOUBLE 前结算价
underlyingPrice DOUBLE 标的价格
Theta DOUBLE /
Vega DOUBLE /
Gamma DOUBLE /
Delta DOUBLE /
IV DOUBLE /

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

//signal字段生成demo 
//update tb set signal =fixedLengthArrayVector([close]) 
messageTable=select top 1* from messageTable where timestamp=max(timestamp) 
update messageTable set symbol="END" 
Backtest::appendQuotationMsg(engine,messageTable)

策略回调函数说明

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

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

字段 类型 备注
symbol SYMBOL

期权代码

symbolSource STRING 交易所
tradeTime TIMESTAMP 时间戳
tradingDay DATE 交易日/结算日期
open DOUBLE 开盘价
low DOUBLE 最低价
high DOUBLE 最高价
close DOUBLE 收盘价
volume LONG 成交量
amount DOUBLE 成交金额
upLimitPrice DOUBLE 涨停价
downLimitPrice DOUBLE 跌停价
signal DOUBLE[] 其他字段列表
prevClosePrice DOUBLE 前收盘价
settlementPrice DOUBLE 结算价
prevSettlementPrice DOUBLE 前结算价
underlyingPrice DOUBLE 标的价格
Theta DOUBLE /
Vega DOUBLE /
Gamma DOUBLE /
Delta DOUBLE /
IV DOUBLE /

委托回报通知函数 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" 策略类型 必须配置,“option”
"cash" 初始资金 必须配置,DOUBLE 类型
"commission" 手续费 必须配置,DOUBLE 类型
"tax" 印花税 必须配置,DOUBLE 类型
"dataType" 行情类型 必须配置,4
“frequency” 以指定频率合成 必须配置,INT 类型,该参数无效
"msgAsTable" 行情的数据格式

必须配置,BOOL 类型

false:字典

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

“matchingMode“ 订单撮合模式

INT 类型,可选值为:

1:以收盘价撮合订单

2:以开盘价撮合订单

3:以委托价格成交

“benchmark” 基准标的

STRING 或 SYMBOL 类型

例如 ”A2305“ ,在接口getReturnSummary 中使用

"latency" 订单延时 INT 类型,单位为毫秒,用来模拟用户订单从发出到被处理的时延。
“maintenanceMargin” 维保比例 DOUBLE 类型,默认1.0,取值0~1.0之间
“enableIndicatorOptimize” 是否开启指标优化

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 时,无需设置

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

BOOL 类型

true:增加

false:不增加

"context" 策略逻辑上下文类结构

DICT 类型,策略全局变量构成的字典,如:

context = dict(STRING, ANY)
context["buySignalRSI"] = 70.
context["buySignalRSI"] = 30. 
userConfig["context"] = context

行情数据结构说明

通过接口 appendQuotationMsg 向引擎中插入数据时,msg 结构:

执行回测时输入表 messageTable 结构: Backtest::appendQuotationMsg(engine,messamessageTable)

colName=`symbol`symbolSource`tradeTime`tradingDay`open`low`high`close`volume`amount`upLimitPrice`downLimitPrice`signal`prevClosePrice`settlementPrice`prevSettlementPrice`underlyingPrice`Theta`Vega`Gamma`Delta`IV
colType=[SYMBOL,SYMBOL,TIMESTAMP,DATE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,LONG,DOUBLE,DOUBLE,DOUBLE,
        DOUBLE[],DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE]
messageTable=table(10000000:0, colName, colType)

日频行情数据表结构:

字段 类型 备注
symbol SYMBOL 期权代码
symbolSource STRING 交易所
tradeTime TIMESTAMP 时间戳
tradingDay DATE 交易日/结算日期
open DOUBLE 开盘价
low DOUBLE 最低价
high DOUBLE 最高价
close DOUBLE 收盘价
volume LONG 成交量
amount DOUBLE 成交金额
upLimitPrice DOUBLE 涨停价
downLimitPrice DOUBLE 跌停价
signal DOUBLE[] 其他字段列表
prevClosePrice DOUBLE 前收盘价
settlementPrice DOUBLE 结算价
prevSettlementPrice DOUBLE 前结算价
underlyingPrice DOUBLE 标的价格
Theta DOUBLE /
Vega DOUBLE /
Gamma DOUBLE /
Delta DOUBLE /
IV DOUBLE

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

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

策略回调函数说明

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

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

字段 类型 备注
symbol SYMBOL 期权代码
symbolSource STRING 交易所
tradeTime TIMESTAMP 时间戳
tradingDay DATE 交易日/结算日期
open DOUBLE 开盘价
low DOUBLE 最低价
high DOUBLE 最高价
close DOUBLE 收盘价
volume LONG 成交量
amount DOUBLE 成交金额
upLimitPrice DOUBLE 涨停价
downLimitPrice DOUBLE 跌停价
signal DOUBLE[] 其他字段列表
prevClosePrice DOUBLE 前收盘价
settlementPrice DOUBLE 结算价
prevSettlementPrice DOUBLE 前结算价
underlyingPrice DOUBLE 标的价格
Theta DOUBLE /
Vega DOUBLE /
Gamma DOUBLE /
Delta DOUBLE /
IV DOUBLE /

委托回报通知函数 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 的配置可参考下表:

期权合约基本信息表字段说明如下:

字段 类型 备注
symbol SYMBOL 或 STRING 合约代码
underlyingAssetType INT

期权品种:

1:商品期权

2:股指期权

3:etf期权

multiplier DOUBLE 合约乘数
type INT

期权类型

1:看涨(call)

2:看跌(put)

strikePrice DOUBLE 行权价
marginRatio DOUBLE 保证金比率
tradeUnit DOUBLE 合约单位
priceUnit DOUBLE 报价单位
priceTick DOUBLE 价格最小变动单位
commission DOUBLE 手续费
deliveryCommissionMode INT

1:commission / 手

2:成交额 * commission

lastTradingDay DATE 合约最后交易日
exerciseDate DATE 期权行权日
exerciseSettlementDate DATE 行权交收日