策略交易
分享
阅读 11624
更新 2020-10-29 09:40:19
策略交易相关的功能包括:
交易接口、查询委托、查询交易回报
查询资金信息、查询持仓信息
交易接口面对策略的函数形式保持不变,策略运行与回测、仿真、实盘时,接口底层自动适配不同交易通道,策略无需做额外处理
订单数据结构说明
订数据是由交易接口返回的数据集,在接口调用成功时即生成,识别主键为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 - 按指定量委托
函数原型:
[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=
Columns1through9
'strategyId''accountId''accountName''clOrdId''orderId''exOrdId''symbol''side''positionEffect'
[1x36char][1x36char]'''000000001''''''SZSE.000001'[1][1]
Columns10through17
'positionSide''orderType''orderDuration''orderQualifier''orderSrc''status''ordRejReason''ordRejReasonDetail'
[1][2][0][0][0][3][0]''
Columns18through26
'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]
Columns27through31
'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=
Columns1through9
'strategyId''accountId''accountName''clOrdId''orderId''execId''symbol''positionEffect''side'
[1x36char]'''''000000341''''''SZSE.000001'[1][1]
[1x36char]'''''000000340''''''SZSE.000001'[1][1]
Columns10through17
'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]
Column18
'createdAt'
'0001-01-01 00:00:00'
'0001-01-01 00:00:00'
get_position-持仓查询[position]=get_position(account)
示例:
[position]=get_position()
返回值
position=
Columns1through9
'accountId''accountName''symbol''side''volume''volumeToday''vwap''amount''price'
[1x36char]'''SZSE.000001'[1][2200][2200][8.9800][1.9756e+04][0]
Columns10through17
'fpnl''cost''orderFrozen''orderFrozenToday''available''available_today''lastPrice''lastVolume'
[242.0013][1.9756e+04][0][0][2200][2200][0][0]
Columns18through22
'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=
Columns1through8
'accountId''accountName''currency''nav''pnl''fpnl''frozen''orderFrozen'
[1x36char]''[0][9.9989e+05][-107.7559][-87.9999][1.9756e+04][0]
Columns9through16
'available''balance''cumInout''cumTrade''cumPnl''cumCommission''lastTrade''lastPnl'
[9.8022e+05][0][1000000][1.9756e+04][0][19.7560][9.8780e+03][0]
Columns17through22
'lastCommission''lastInout''changeReason''changeEventId''createdAt''updatedAt'
[9.8780][0][0]'''2018-08-05 10:40:00''2018-08-06 09:45:00'