matlab symbol filled,策略交易 - MATLAB - 掘金量化

策略交易

分享

阅读 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'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值