文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
策略交易
策略交易相关的功能包括:
- 交易接口、查询委托、查询交易回报
- 查询资金信息、查询持仓信息
交易接口面对策略的函数形式保持不变,策略运行与回测、仿真、实盘时,接口底层自动适配不同交易通道,策略无需做额外处理
订单数据结构说明
订数据是由交易接口返回的数据集,在接口调用成功时即生成,识别主键为 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 | 委托拒绝原因 取值参考 OrderRejectReason |
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.volume*trade.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)(仅上期所和上海能源交易中心支持) |
availableNow | double | 当前可平仓位 |
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按指定量委托
函数原型:
[ 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 格式的订单信息 |
示例
[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 )
参数说明
参数 | 类型 | 说明 |
---|---|---|
symbols | cell | 下单标的 |
value | double | 委托资金量 |
side | double | OrderSide 交易方向枚举类型 |
order_type | double | OrderType 交易类型枚举类型 |
position_effect | double | PositionEffect 开平仓枚举类型 |
account | char | 仿真和模拟可不填,实盘多账户填入账户的 ID |
返回值 | cell | order 格式的订单信息 |
示例
[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)
参数说明
参数 | 类型 | 说明 |
---|---|---|
symbols | cell | 下单标的 |
percent | double | 委托占总资金的百分比 |
side | double | OrderSide 交易方向枚举类型 |
order_type | double | OrderType 交易类型枚举类型 |
position_effect | double | PositionEffect 开平仓枚举类型 |
account | char | 仿真和模拟可不填,实盘多账户填入账户的 ID |
返回值 | cell | order 格式的订单信息 |
示例
[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)
参数说明
参数 | 类型 | 说明 |
---|---|---|
symbols | cell | 下单标的 |
volume | double | 目标持仓量,单位为:股票为股,期货为手 |
side | double | OrderSide 交易方向枚举类型 |
order_type | double | OrderType 交易类型枚举类型 |
position_effect | double | PositionEffect 开平仓枚举类型 |
account | char | 仿真和模拟可不填,实盘多账户填入账户的 ID |
返回值 | cell | order 格式的订单信息 |
示例
[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)
参数说明
参数 | 类型 | 说明 |
---|---|---|
symbols | cell | 下单标的 |
value | double | 目标持仓价值 |
side | double | OrderSide 交易方向枚举类型 |
order_type | double | OrderType 交易类型枚举类型 |
position_effect | double | PositionEffect 开平仓枚举类型 |
account | char | 仿真和模拟可不填,实盘多账户填入账户的 ID |
返回值 | cell | order 格式的订单信息 |
示例
[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)
参数说明
参数 | 类型 | 说明 |
---|---|---|
symbols | cell | 下单标的 |
percent | double | 目标总资产管比例 |
side | double | OrderSide 交易方向枚举类型 |
order_type | double | OrderType 交易类型枚举类型 |
position_effect | double | PositionEffect 开平仓枚举类型 |
account | char | 仿真和模拟可不填,实盘多账户填入账户的 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 是由以下参数组成的委托矩阵,
参数 | 类型 | 说明 |
---|---|---|
symbols | cell | 下单标的 |
percent | double | 目标总资产管比例 |
side | double | OrderSide 交易方向枚举类型 |
order_type | double | OrderType 交易类型枚举类型 |
position_effect | double | PositionEffect 开平仓枚举类型 |
account | char | 仿真和模拟可不填,实盘多账户填入账户的 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论