返回介绍

开始入门

操作指引

SDK

数据文档

常见问题

量化工具

其他

其他

策略交易

发布于 2024-06-22 12:53:28 字数 18740 浏览 0 评论 0 收藏 0

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

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

订单数据结构说明

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

属性类型说明
strategyIdchar策略 ID
accountIdchar账号 ID
accountNamechar账户登录名
clOrdIdchar委托客户端 ID,下单生成,固定不变,这个才是策略识别的主键
orderIdchar委托柜台 ID(系统字段)
exOrdIdchar委托交易所 ID(系统字段)
symbolchar标的代码
sidedouble买卖方向 取值参考 OrderSide
positionEffectdouble开平标志 取值参考 PositionEffect
positionSidedouble持仓方向 取值参考 PositionSide
orderTypedouble委托类型 取值参考 OrderType
orderDurationdouble委托时间属性 取值参考 OrderDuration
orderQualifierdouble委托成交属性 取值参考 OrderQualifier
orderSrcdouble委托来源(系统字段)
statusdouble委托状态 取值参考 OrderStatus
ordRejReasondouble委托拒绝原因 取值参考 OrderRejectReason
ordRejReasonDetailchar委托拒绝原因描述
pricedouble委托价格
stopPricedouble委托止损/止盈触发价格
orderStyledouble委托风格 取值参考 OrderStyle
volumedouble委托量
valuedouble委托额
percentdouble委托百分比
targetVolumedouble委托目标量
targetValuedouble委托目标额
targetPercentdouble委托目标百分比
filledVolumedouble已成量
filledVwapdouble已成均价
filledAmountdouble已成金额
filledCommissiondouble已成手续费
createdAtchar委托创建时间
updatedAtchar委托更新时间

回报数据结构说明

ExecRpt - 回报返回值字段

属性类型说明
strategyIdchar策略 ID
accountIdchar账号 ID
accountNamechar账户登录名
clOrdIdchar委托客户端 ID,下单生成,固定不变,这个才是策略识别的主键
orderIdchar委托柜台 ID(系统字段)
ex_ord_idchar委托交易所 ID
positionEffectdouble开平标志 取值参考 PositionEffect
sidedouble买卖方向 取值参考 OrderSide
ordRejReasondouble委托拒绝原因 取值参考 OrderRejectReason
ordRejReasonDetailchar委托拒绝原因描述
execTypedouble执行回报类型 取值参考 ExecType
pricedouble委托成交价格
volumedouble委托成交量
amountdouble委托成交金额
createdAtchar回报创建时间

持仓数据结构说明

Position - 持仓返回值字段

属性类型说明
accountIdchar账号 ID
accountNamechar账户登录名
symbolchar标的代码
sidedouble持仓方向 取值参考 PositionSide
volumedouble总持仓量; 昨持仓量 (volume - volume_today)
volumeTodaydouble今日持仓量
vwapdouble持仓均价 new_vwap=((position.vwap * position.volume)+(trade.volume*trade.price))/(position.volume+trade.volume)
amountdouble持仓额 (volumevwapmultiplier)
pricedouble当前行情价格(回测时值为 0)
fpnldouble持仓浮动盈亏 ((price - vwap) _ volume _ multiplier) (回测模式 fpnl 只有仓位变化时或者一天更新一次,仿真模式 3s 更新一次)
costdouble持仓成本 (vwap _ volume _ multiplier * margin_ratio)
orderFrozendouble挂单冻结仓位
orderFrozenTodaydouble挂单冻结今仓仓位
availabledouble非挂单冻结总仓位 (volume - order_frozen); 可平昨仓位 (available - available_today)(仅上期所和上海能源交易中心支持)
availableTodaydouble非挂单冻结今仓位 (volume_today - order_frozen_today)(仅上期所和上海能源交易中心支持)
availableNowdouble当前可平仓位
lastPricedouble上一次成交价(回测时值为 0)
lastVolumedouble上一次成交量(回测时值为 0)
lastInoutdouble上一次出入持仓量(回测时值为 0)
changeReasondouble仓位变更原因, 取值参考 CashPositionChangeReason
changeEventIdchar触发资金变更事件的 ID
hasDividenddouble持仓区间有分红配送
createdAtchar建仓时间
updatedAtchar仓位变更时间

资金数据结构说明

Cash - 资金返回值字段

属性类型说明
accountIdchar账号 ID
accountNamechar账户登录名
currencydouble币种
navdouble净值,总权益
pnldouble净收益
fpnldouble浮动盈亏
frozendouble持仓占用资金
orderFrozendouble挂单冻结资金
availabledouble可用资金
cumInoutdouble累计出入金
cumTradedouble累计交易额
cumPnldouble累计平仓收益(没扣除手续费)
cumCommissiondouble累计手续费
lastTradedouble上一次交易额
lastPnldouble上一次收益
lastCommissiondouble上一次手续费
lastInoutdouble上一次出入金
changeReasondouble资金变更原因 取值参考 CashPositionChangeReason
changeEventIdchar触发资金变更事件的 ID
createdAtchar资金初始时间
updatedAtchar资金变更时间

order_volume按指定量委托

函数原型:

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

参数说明

参数类型说明
symbolscell下单标的
volumedouble委托量,单位为:股票为股,期货为手
sidedoubleOrderSide 交易方向枚举类型
order_typedoubleOrderType 交易类型枚举类型
position_effectdoublePositionEffect 开平仓枚举类型
accountchar仿真和模拟可不填,实盘多账户填入账户的 ID
返回值cellorder 格式的订单信息

示例

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

返回值

order =

  Columns 1 through 9

    'strategyId'    'accountId'    'accountName'    'clOrdId'      'orderId'    'exOrdId'    'symbol'         'side'    'positionEffect'
     [1x36 char]    [1x36 char]    ''               '000000001'    ''           ''           'SZSE.000001'    [   1]    [             1]

  Columns 10 through 17

    'positionSide'    'orderType'    'orderDuration'    'orderQualifier'    'orderSrc'    'status'    'ordRejReason'    'ordRejReasonDetail'
    [           1]    [        2]    [            0]    [             0]    [       0]    [     3]    [           0]    ''

  Columns 18 through 26

    'price'     'stopPrice'    'orderStyle'    'volume'    'value'       'percent'       'targetVolume'    'targetValue'    'targetPercent'
    [8.9800]    [        0]    [         1]    [   100]    [898.0000]    [8.9800e-04]    [         200]    [ 1.7960e+03]    [       0.0018]

  Columns 27 through 31

    'filledVolume'    'filledVwap'    'filledAmount'    'filledCommission'    'updatedAt'
    [         100]    [    8.9800]    [    898.0000]    [          0.8980]    '0001-01-01 00:00:00'

order_value按指定价值委托

函数原型:

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

参数说明

参数类型说明
symbolscell下单标的
valuedouble委托资金量
sidedoubleOrderSide 交易方向枚举类型
order_typedoubleOrderType 交易类型枚举类型
position_effectdoublePositionEffect 开平仓枚举类型
accountchar仿真和模拟可不填,实盘多账户填入账户的 ID
返回值cellorder 格式的订单信息

示例

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

order_percent按总资产指定比例委托

函数原型:

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

参数说明

参数类型说明
symbolscell下单标的
percentdouble委托占总资金的百分比
sidedoubleOrderSide 交易方向枚举类型
order_typedoubleOrderType 交易类型枚举类型
position_effectdoublePositionEffect 开平仓枚举类型
accountchar仿真和模拟可不填,实盘多账户填入账户的 ID
返回值cellorder 格式的订单信息

示例

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

order_target_volume调仓到目标持仓量

函数原型:

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

参数说明

参数类型说明
symbolscell下单标的
volumedouble目标持仓量,单位为:股票为股,期货为手
sidedoubleOrderSide 交易方向枚举类型
order_typedoubleOrderType 交易类型枚举类型
position_effectdoublePositionEffect 开平仓枚举类型
accountchar仿真和模拟可不填,实盘多账户填入账户的 ID
返回值cellorder 格式的订单信息

示例

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

order_target_value调仓到目标持仓额

函数原型:

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

参数说明

参数类型说明
symbolscell下单标的
valuedouble目标持仓价值
sidedoubleOrderSide 交易方向枚举类型
order_typedoubleOrderType 交易类型枚举类型
position_effectdoublePositionEffect 开平仓枚举类型
accountchar仿真和模拟可不填,实盘多账户填入账户的 ID
返回值cellorder 格式的订单信息

示例

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

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

函数原型:

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

参数说明

参数类型说明
symbolscell下单标的
percentdouble目标总资产管比例
sidedoubleOrderSide 交易方向枚举类型
order_typedoubleOrderType 交易类型枚举类型
position_effectdoublePositionEffect 开平仓枚举类型
accountchar仿真和模拟可不填,实盘多账户填入账户的 ID

示例

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

order_batch批量委托

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

函数原型:

[ orders ] = order_batch( order_cell)

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

参数类型说明
symbolscell下单标的
percentdouble目标总资产管比例
sidedoubleOrderSide 交易方向枚举类型
order_typedoubleOrderType 交易类型枚举类型
position_effectdoublePositionEffect 开平仓枚举类型
accountchar仿真和模拟可不填,实盘多账户填入账户的 ID

示例

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

order_cancel撤销指定委托

函数原型

[ reg ] = order_cancel( clOrdIds, account)

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

order_cancel_all撤销所有委托

函数原型:

order_cancel_all()

order_close_all平当前所有可平持仓

函数原型:

order_close_all()

get_unfinished_orders查询日内全部未结委托

函数原型:

get_unfinished_orders()

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

get_orders查询日内全部委托

函数原型:

get_orders()

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

get_execution_reports查询日内全部执行回报

函数原型:

get_execution_reports()

示例

[ excerpt ] = get_execution_reports(  )

返回值

excerpt =

  Columns 1 through 9

    'strategyId'    'accountId'    'accountName'    'clOrdId'      'orderId'    'execId'    'symbol'         'positionEffect'    'side'
     [1x36 char]    ''             ''               '000000341'    ''           ''          'SZSE.000001'    [             1]    [   1]
     [1x36 char]    ''             ''               '000000340'    ''           ''          'SZSE.000001'    [             1]    [   1]

  Columns 10 through 17

    'ordRejReason'    'ordRejReasonDetail'    'execType'    'price'     'volume'    'amount'        'commission'    'cost'
    [           0]    ''                      [      15]    [8.9800]    [  1100]    [9.8780e+03]    [         0]    [   0]
    [           0]    ''                      [      15]    [8.9800]    [  1100]    [9.8780e+03]    [         0]    [   0]

  Column 18

    'createdAt'
    '0001-01-01 00:00:00'
    '0001-01-01 00:00:00'

get_position持仓查询

[ position ] = get_position( account )

示例:

[ position ] = get_position(  )

返回值

position =

  Columns 1 through 9

    'accountId'    'accountName'    'symbol'         'side'    'volume'    'volumeToday'    'vwap'      'amount'        'price'
    [1x36 char]    ''               'SZSE.000001'    [   1]    [  2200]    [       2200]    [8.9800]    [1.9756e+04]    [    0]

  Columns 10 through 17

    'fpnl'        'cost'          'orderFrozen'    'orderFrozenToday'    'available'    'available_today'    'lastPrice'    'lastVolume'
    [242.0013]    [1.9756e+04]    [          0]    [               0]    [     2200]    [           2200]    [        0]    [         0]

  Columns 18 through 22

    'lastInout'    'changeReason'    'hasDividend'    'createdAt'              'updatedAt'
    [        0]    [           0]    [          0]    '2018-08-06 09:45:00'    '2018-08-06 09:45:00'

get_cash资金查询

[ cash] = get_cash( account )

示例

[ cash ] = get_cash(  )

返回值

position

  Columns 1 through 8

    'accountId'    'accountName'    'currency'    'nav'           'pnl'          'fpnl'        'frozen'        'orderFrozen'
    [1x36 char]    ''               [       0]    [9.9989e+05]    [-107.7559]    [-87.9999]    [1.9756e+04]    [          0]

  Columns 9 through 16

    'available'     'balance'    'cumInout'    'cumTrade'      'cumPnl'    'cumCommission'    'lastTrade'     'lastPnl'
    [9.8022e+05]    [      0]    [ 1000000]    [1.9756e+04]    [     0]    [      19.7560]    [9.8780e+03]    [      0]

  Columns 17 through 22

    'lastCommission'    'lastInout'    'changeReason'    'changeEventId'    'createdAt'              'updatedAt'
    [        9.8780]    [        0]    [           0]    ''                 '2018-08-05 10:40:00'    '2018-08-06 09:45:00'

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文