PDF下载 下载

策略交易

阅读 27014

策略交易相关的功能包括:

  • 交易接口、查询委托、查询交易回报
  • 查询资金信息、查询持仓信息
    交易接口面对策略的函数形式保持不变,策略运行与回测、仿真、实盘时,接口底层自动适配不同交易通道,策略无需做额外处理

订单数据结构说明

订数据是由交易接口返回的数据集,在接口调用成功时即生成,识别主键为clOrdId,随之委托的成交进度,委托单的状会不断更新,但主键保持不变

属性 类型 说明
strategyId char 策略ID
accountId char 账号ID
accountName char 账户登录名
clOrdId char 委托客户端ID,下单生成,固定不变,这个才是策略识别的主键
orderId char 委托柜台ID(系统字段)
exOrdId char 委托交易所ID(系统字段)
symbol char 标的代码
side double 买卖方向 取值参考 OrderSide
positionEffect double 开平标志 取值参考 PositionEffect
positionSide double 持仓方向 取值参考 PositionSide
orderType double 委托类型 取值参考 OrderType
orderDuration double 委托时间属性 取值参考 OrderDuration
orderQualifier double 委托成交属性 取值参考 OrderQualifier
orderSrc double 委托来源(系统字段)
status double 委托状态 取值参考 OrderStatus
ordRejReason double 委托拒绝原因 取值参考 OrderRejegectReason
ordRejReasonDetail char 委托拒绝原因描述
price double 委托价格
stopPrice double 委托止损/止盈触发价格
orderStyle double 委托风格 取值参考 OrderStyle
volume double 委托量
value double 委托额
percent double 委托百分比
targetVolume double 委托目标量
targetValue double 委托目标额
targetPercent double 委托目标百分比
filledVolume double 已成量
filledVwap double 已成均价
filledAmount double 已成金额
filledCommission double 已成手续费
createdAt char 委托创建时间
updatedAt char 委托更新时间

回报数据结构说明

ExecRpt - 回报返回值字段

属性 类型 说明
strategyId char 策略ID
accountId char 账号ID
accountName char 账户登录名
clOrdId char 委托客户端ID,下单生成,固定不变,这个才是策略识别的主键
orderId char 委托柜台ID(系统字段)
ex_ord_id char 委托交易所ID
positionEffect double 开平标志 取值参考 PositionEffect
side double 买卖方向 取值参考 OrderSide
ordRejReason double 委托拒绝原因 取值参考 OrderRejectReason
ordRejReasonDetail char 委托拒绝原因描述
execType double 执行回报类型 取值参考 ExecType
price double 委托成交价格
volume double 委托成交量
amount double 委托成交金额
createdAt char 回报创建时间

持仓数据结构说明

Position - 持仓返回值字段

属性 类型 说明
accountId char 账号ID
accountName char 账户登录名
symbol char 标的代码
side double 持仓方向 取值参考 PositionSide
volume double 总持仓量; 昨持仓量 (volume - volume_today)
volumeToday double 今日持仓量
vwap double 持仓均价 new_vwap=((position.vwap position.volume)+(trade.volumetrade.price))/(position.volume+trade.volume)
amount double 持仓额 (volumevwapmultiplier)
price double 当前行情价格(回测时值为0)
fpnl double 持仓浮动盈亏 ((price - vwap) volume multiplier) (回测模式fpnl只有仓位变化时或者一天更新一次,仿真模式3s更新一次)
cost double 持仓成本 (vwap volume multiplier * margin_ratio)
orderFrozen double 挂单冻结仓位
orderFrozenToday double 挂单冻结今仓仓位
available double 非挂单冻结总仓位 (volume - order_frozen); 可平昨仓位 (available - available_today)
availableToday double 非挂单冻结今仓位 (volume_today - order_frozen_today)(仅期货)
lastPrice double 上一次成交价(回测时值为0)
lastVolume double 上一次成交量(回测时值为0)
lastInout double 上一次出入持仓量(回测时值为0)
changeReason double 仓位变更原因, 取值参考 CashPositionChangeReason
changeEventId char 触发资金变更事件的ID
hasDividend double 持仓区间有分红配送
createdAt char 建仓时间
updatedAt char 仓位变更时间

资金数据结构说明

Cash - 资金返回值字段

属性 类型 说明
accountId char 账号ID
accountName char 账户登录名
currency double 币种
nav double 净值,总权益
pnl double 净收益
fpnl double 浮动盈亏
frozen double 持仓占用资金
orderFrozen double 挂单冻结资金
available double 可用资金
cumInout double 累计出入金
cumTrade double 累计交易额
cumPnl double 累计平仓收益(没扣除手续费)
cumCommission double 累计手续费
lastTrade double 上一次交易额
lastPnl double 上一次收益
lastCommission double 上一次手续费
lastInout double 上一次出入金
changeReason double 资金变更原因 取值参考 CashPositionChangeReason
changeEventId char 触发资金变更事件的ID
createdAt char 资金初始时间
updatedAt char 资金变更时间

order_volume - 按指定量委托

函数原型:

  1. [ order] = order_volume( symbol, volume, side, order_type, position_effect, price, account)

参数说明

参数 类型 说明
symbols cell 下单标的
volume double 委托量,单位为:股票为股,期货为手
side double OrderSide 交易方向枚举类型
order_type double OrderType 交易类型枚举类型
position_effect double PositionEffect 开平仓枚举类型
account char 仿真和模拟可不填,实盘多账户填入账户的ID
返回值 cell order格式的订单信息

示例

  1. [order]=order_volume('SZSE.000001', 100, OrderSide.OrderSide_Buy, OrderType.OrderType_Market,PositionEffect.PositionEffect_Open,0)

返回值

  1. order =
  2. Columns 1 through 9
  3. 'strategyId' 'accountId' 'accountName' 'clOrdId' 'orderId' 'exOrdId' 'symbol' 'side' 'positionEffect'
  4. [1x36 char] [1x36 char] '' '000000001' '' '' 'SZSE.000001' [ 1] [ 1]
  5. Columns 10 through 17
  6. 'positionSide' 'orderType' 'orderDuration' 'orderQualifier' 'orderSrc' 'status' 'ordRejReason' 'ordRejReasonDetail'
  7. [ 1] [ 2] [ 0] [ 0] [ 0] [ 3] [ 0] ''
  8. Columns 18 through 26
  9. 'price' 'stopPrice' 'orderStyle' 'volume' 'value' 'percent' 'targetVolume' 'targetValue' 'targetPercent'
  10. [8.9800] [ 0] [ 1] [ 100] [898.0000] [8.9800e-04] [ 200] [ 1.7960e+03] [ 0.0018]
  11. Columns 27 through 31
  12. 'filledVolume' 'filledVwap' 'filledAmount' 'filledCommission' 'updatedAt'
  13. [ 100] [ 8.9800] [ 898.0000] [ 0.8980] '0001-01-01 00:00:00'

order_value - 按指定价值委托

函数原型:

  1. [ order] = order_value ( symbol, value, side, order_type, position_effect,price, account )

参数说明

参数 类型 说明
symbols cell 下单标的
value double 委托资金量
side double OrderSide 交易方向枚举类型
order_type double OrderType 交易类型枚举类型
position_effect double PositionEffect 开平仓枚举类型
account char 仿真和模拟可不填,实盘多账户填入账户的ID
返回值 cell order格式的订单信息

示例

  1. [order]=order_value('SZSE.000001', 10000, OrderSide.OrderSide_Buy, OrderType.OrderType_Market,PositionEffect.PositionEffect_Open,0)

order_percent - 按总资产指定比例委托

函数原型:

  1. [ order] = order_percent( symbol, percent, side, order_type,position_effect,price, account)

参数说明

参数 类型 说明
symbols cell 下单标的
percent double 委托占总资金的百分比
side double OrderSide 交易方向枚举类型
order_type double OrderType 交易类型枚举类型
position_effect double PositionEffect 开平仓枚举类型
account char 仿真和模拟可不填,实盘多账户填入账户的ID
返回值 cell order格式的订单信息

示例

  1. [order]=order_percent('SZSE.000001', 0.1, OrderSide.OrderSide_Buy, OrderType.OrderType_Market,PositionEffect.PositionEffect_Open,0);

order_target_volume - 调仓到目标持仓量

函数原型:

  1. [ order] = order_target_volume( symbol, volume, side, order_type,price, account)

参数说明

参数 类型 说明
symbols cell 下单标的
volume double 目标持仓量,单位为:股票为股,期货为手
side double OrderSide 交易方向枚举类型
order_type double OrderType 交易类型枚举类型
position_effect double PositionEffect 开平仓枚举类型
account char 仿真和模拟可不填,实盘多账户填入账户的ID
返回值 cell order格式的订单信息

示例

  1. [order]=order_target_volume('SZSE.000001', 10000, OrderSide.OrderSide_Buy, OrderType.OrderType_Market,0)

order_target_value - 调仓到目标持仓额

函数原型:

  1. [ order] =order_target_value( symbol, value, side, order_type,price, account)

参数说明

参数 类型 说明
symbols cell 下单标的
value double 目标持仓价值
side double OrderSide 交易方向枚举类型
order_type double OrderType 交易类型枚举类型
position_effect double PositionEffect 开平仓枚举类型
account char 仿真和模拟可不填,实盘多账户填入账户的ID
返回值 cell order格式的订单信息

示例

  1. [order]=order_target_value('SZSE.000001', 10000, OrderSide.OrderSide_Buy, OrderType.OrderType_Market,0)

order_target_percent - 调仓到目标持仓比例(总资产的比例)

函数原型:

  1. [ order] = order_target_percent( symbol, percent, side, order_type, price, account)

参数说明

参数 类型 说明
symbols cell 下单标的
percent double 目标总资产管比例
side double OrderSide 交易方向枚举类型
order_type double OrderType 交易类型枚举类型
position_effect double PositionEffect 开平仓枚举类型
account char 仿真和模拟可不填,实盘多账户填入账户的ID

示例

  1. [order]=order_target_percent('SZSE.000001', 0.5, OrderSide.OrderSide_Buy, OrderType.OrderType_Market,0)

order_batch - 批量委托

相比循环下单,批量委托在下单流程上一次完成,延迟更低

函数原型:

  1. [ orders ] = order_batch( order_cell)

参数说明
order_cell 是由以下参数组成的委托矩阵,

参数 类型 说明
symbols cell 下单标的
percent double 目标总资产管比例
side double OrderSide 交易方向枚举类型
order_type double OrderType 交易类型枚举类型
position_effect double PositionEffect 开平仓枚举类型
account char 仿真和模拟可不填,实盘多账户填入账户的ID

示例

  1. order_cell = {'SHSE.600000', 100, OrderSide.OrderSide_Buy, OrderType.OrderType_Limit,PositionEffect.PositionEffect_Open, 11;
  2. 'SHSE.600004', 100, OrderSide.OrderSide_Buy, OrderType.OrderType_Limit,PositionEffect.PositionEffect_Open, 18};
  3. [ orders ] = order_batch( order_cell);

order_cancel -撤销指定委托

函数原型

  1. [ reg ] = order_cancel( clOrdIds, account)

说明:
clOrdIds字段数据由订单数据中的clOrdId获取,返回结果为撤单成功或者失败

order_cancel_all - 撤销所有委托

函数原型:

  1. order_cancel_all()

order_close_all - 平当前所有可平持仓

函数原型:

  1. order_close_all()

get_unfinished_orders - 查询日内全部未结委托

函数原型:

  1. get_unfinished_orders()

说明:
返回cell格式的订单数据表

get_orders - 查询日内全部委托

函数原型:

  1. get_orders()

说明:
返回cell格式的订单数据列表

get_execution_reports - 查询日内全部执行回报

函数原型:

  1. get_execution_reports()

示例

  1. [ excerpt ] = get_execution_reports( )

返回值

  1. excerpt =
  2. Columns 1 through 9
  3. 'strategyId' 'accountId' 'accountName' 'clOrdId' 'orderId' 'execId' 'symbol' 'positionEffect' 'side'
  4. [1x36 char] '' '' '000000341' '' '' 'SZSE.000001' [ 1] [ 1]
  5. [1x36 char] '' '' '000000340' '' '' 'SZSE.000001' [ 1] [ 1]
  6. Columns 10 through 17
  7. 'ordRejReason' 'ordRejReasonDetail' 'execType' 'price' 'volume' 'amount' 'commission' 'cost'
  8. [ 0] '' [ 15] [8.9800] [ 1100] [9.8780e+03] [ 0] [ 0]
  9. [ 0] '' [ 15] [8.9800] [ 1100] [9.8780e+03] [ 0] [ 0]
  10. Column 18
  11. 'createdAt'
  12. '0001-01-01 00:00:00'
  13. '0001-01-01 00:00:00'

get_position-持仓查询

  1. [ position ] = get_position( account )

示例:

  1. [ position ] = get_position( )

返回值

  1. position =
  2. Columns 1 through 9
  3. 'accountId' 'accountName' 'symbol' 'side' 'volume' 'volumeToday' 'vwap' 'amount' 'price'
  4. [1x36 char] '' 'SZSE.000001' [ 1] [ 2200] [ 2200] [8.9800] [1.9756e+04] [ 0]
  5. Columns 10 through 17
  6. 'fpnl' 'cost' 'orderFrozen' 'orderFrozenToday' 'available' 'available_today' 'lastPrice' 'lastVolume'
  7. [242.0013] [1.9756e+04] [ 0] [ 0] [ 2200] [ 2200] [ 0] [ 0]
  8. Columns 18 through 22
  9. 'lastInout' 'changeReason' 'hasDividend' 'createdAt' 'updatedAt'
  10. [ 0] [ 0] [ 0] '2018-08-06 09:45:00' '2018-08-06 09:45:00'

get_cash—资金查询

  1. [ cash] = get_cash( account )

示例

  1. [ cash ] = get_cash( )

返回值

  1. position =
  2. Columns 1 through 8
  3. 'accountId' 'accountName' 'currency' 'nav' 'pnl' 'fpnl' 'frozen' 'orderFrozen'
  4. [1x36 char] '' [ 0] [9.9989e+05] [-107.7559] [-87.9999] [1.9756e+04] [ 0]
  5. Columns 9 through 16
  6. 'available' 'balance' 'cumInout' 'cumTrade' 'cumPnl' 'cumCommission' 'lastTrade' 'lastPnl'
  7. [9.8022e+05] [ 0] [ 1000000] [1.9756e+04] [ 0] [ 19.7560] [9.8780e+03] [ 0]
  8. Columns 17 through 22
  9. 'lastCommission' 'lastInout' 'changeReason' 'changeEventId' 'createdAt' 'updatedAt'
  10. [ 9.8780] [ 0] [ 0] '' '2018-08-05 10:40:00' '2018-08-06 09:45:00'
0 篇笔记