# 交易函数
# order_volume
- 按指定量委托
函数原型:
order_volume(symbol, volume, side, order_type,position_effect, price=0,order_duration=OrderDuration_Unknown, order_qualifier=OrderQualifier_Unknown,account='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
volume | int | 数量(指股数) |
side | int | 参见订单委托方向 |
order_type | int | 参见订单委托类型 |
position_effect | int | 参见开平仓类型 |
price | float | 价格(限价委托的委托价格;市价委托的保护价,沪市实盘市价单必填字段,股票需要保留两位小数,回测仿真可不填写,参考下文注意点6。) |
order_duration | int | 参见 委托时间属性 |
order_qualifier | int | 参见 委托成交属性 |
account | account id or account name or None | 帐户 |
返回值:
类型 | 说明 |
---|---|
list[order] | 委托对象列表,参见order 对象 |
示例:
order_volume(symbol='SHSE.600000', volume=10000, side=OrderSide_Buy, order_type=OrderType_Limit, position_effect=PositionEffect_Open, price=11)
返回:
[{'strategy_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'account_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'cl_ord_id': '000000000', 'symbol': 'SHSE.600000', 'side': 1, 'position_effect': 1, 'position_side': 1, 'order_type': 1, 'status': 3, 'price': 11.0, 'order_style': 1, 'volume': 10000, 'value': 110000.0, 'percent': 5.5e-05, 'target_volume': 10000, 'target_value': 110000.0, 'target_percent': 5.5e-05, 'filled_volume': 10000, 'filled_vwap': 11.0011, 'filled_amount': 110010.99999999999, 'created_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'filled_commission': 11.0011, 'account_name': '', 'order_id': '', 'ex_ord_id': '', 'algo_order_id': '', 'order_business': 0, 'order_duration': 0, 'order_qualifier': 0, 'order_src': 0, 'position_src': 0, 'ord_rej_reason': 0, 'ord_rej_reason_detail': '', 'stop_price': 0.0}]
注意:
1. 仅支持一个标的代码,若交易代码输入有误,终端会拒绝此单,并显示委托代码不正确
。
2. 若下单数量输入有误,终端会拒绝此单,并显示委托量不正确
。股票买入最小单位为100
,卖出最小单位为1
,如存在不足 100 股的持仓一次性卖出;期货买卖最小单位为1
,向下取整
。
3. 若仓位不足,终端会拒绝此单,显示仓位不足
。平仓时股票默认平昨仓
,期货默认平今仓
。应研究需要,股票也支持卖空操作
。
4. 输入无效参数报NameError
错误,缺少参数报TypeError
错误。
5. 关于side
与position_effect
字段的使用说明,(股票,基金和可转债只能做多,买入(填买开),卖出(填卖平))
做多(买开):side=OrderSide_Buy ,position_effect=PositionEffect_Open
平仓(卖平):side=OrderSide_Sell ,position_effect=PositionEffect_Close
做空(卖开):side=OrderSide_Sell ,position_effect=PositionEffect_Open
平仓(买平):side= OrderSide_Buy ,position_effect=PositionEffect_Close
6. 按交易所规定,沪市市价单,必须填写保护限价。(买入设置保护限价price 的有效范围为当前价~涨停价, 卖出设置保护限价price的有效范围为跌停价~当前价。),终端版本号大于3.21.0.0的,会默认买入填写涨停价,卖出填写跌停价。
# order_value
- 按指定价值委托
函数原型:
order_value(symbol, value, side,order_type, position_effect, price=0, order_duration=OrderDuration_Unknown, order_qualifier=OrderQualifier_Unknown,account='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
value | int | 股票价值 |
side | int | 参见订单委托方向 |
order_type | int | 参见订单委托类型 |
position_effect | int | 参见开平仓类型 |
price | float | 价格(限价委托的委托价格;市价委托的保护价,沪市实盘市价单必填字段,股票需要保留两位小数,回测仿真可不填写,参考下文注意点5。) |
order_duration | int | 参见 委托时间属性 |
order_qualifier | int | 参见 委托成交属性 |
account | account id or account name or None | 帐户 |
返回值:
类型 | 说明 |
---|---|
list[order] | 委托对象列表,参见order 对象 |
示例:
下限价单,以 11 元每股的价格买入价值为 100000 的 SHSE.600000,根据 volume = value / price,计算并取整得到 volume = 9000
order_value(symbol='SHSE.600000', value=100000, price=11, side=OrderSide_Buy, order_type=OrderType_Limit, position_effect=PositionEffect_Open)
返回:
[{'strategy_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'account_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'cl_ord_id': '000000000', 'symbol': 'SHSE.600000', 'side': 1, 'position_effect': 1, 'position_side': 1, 'order_type': 1, 'status': 3, 'price': 11.0, 'order_style': 1, 'volume': 9000, 'value': 100000.0, 'percent': 5e-05, 'target_volume': 9000, 'target_value': 99000.0, 'target_percent': 4.95e-05, 'filled_volume': 9000, 'filled_vwap': 11.0011, 'filled_amount': 99009.9, 'created_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'filled_commission': 9.90099, 'account_name': '', 'order_id': '', 'ex_ord_id': '', 'algo_order_id': '', 'order_business': 0, 'order_duration': 0, 'order_qualifier': 0, 'order_src': 0, 'position_src': 0, 'ord_rej_reason': 0, 'ord_rej_reason_detail': '', 'stop_price': 0.0}]
注意:
1. 仅支持一个标的代码,若交易代码输入有误,终端会拒绝此单,并显示委托代码不正确
。
2. 根据指定价值计算购买标的数量,即value/price
。股票买卖最小单位为100
,不足 100 部分向下取整
,如存在不足 100 的持仓一次性卖出;期货买卖最小单位为1
,向下取整
。
3. 若仓位不足,终端会拒绝此单,显示仓位不足
。平仓时股票默认平昨仓
,期货默认平今仓
。应研究需要,股票也支持卖空操作
。
4. 输入无效参数报 NameError 错误,缺少参数报 TypeError 错误。
5. 按交易所规定,沪市市价单,必须填写保护限价。(买入设置保护限价price 的有效范围为当前价~涨停价, 卖出设置保护限价price的有效范围为跌停价~当前价。),终端版本号大于3.21.0.0的,会默认买入填写涨停价,卖出填写跌停价。
# order_percent
- 按总资产指定比例委托
函数原型:
order_percent(symbol, percent, side,order_type, position_effect, price=0, order_duration=OrderDuration_Unknown, order_qualifier=OrderQualifier_Unknown, account='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
percent | double | 委托占总资产比例 |
side | int | 参见订单委托方向 |
order_type | int | 参见订单委托类型 |
position_effect | int | 参见开平仓类型 |
price | float | 价格(限价委托的委托价格;市价委托的保护价,沪市实盘市价单必填字段,股票需要保留两位小数,回测仿真可不填写,参考下文注意点6。) |
order_duration | int | 参见 委托时间属性 |
order_qualifier | int | 参见 委托成交属性 |
account | account id or account name or None | 帐户 |
返回值:
类型 | 说明 |
---|---|
list[order] | 委托对象列表,参见order 对象 |
示例:
当前总资产为 1000000。下限价单,以 11 元每股的价格买入 SHSE.600000,期望买入比例占总资产的 10%,根据 volume = nav * precent / price 计算取整得出 volume = 9000
order_percent(symbol='SHSE.600000', percent=0.1, side=OrderSide_Buy, order_type=OrderType_Limit, position_effect=PositionEffect_Open, price=11)
返回:
[{'strategy_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'account_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'cl_ord_id': '000000000', 'symbol': 'SHSE.600000', 'side': 1, 'position_effect': 1, 'position_side': 1, 'order_type': 1, 'status': 3, 'price': 11.0, 'order_style': 1, 'volume': 18181800, 'value': 200000000.0, 'percent': 0.1, 'target_volume': 18181800, 'target_value': 199999800.0, 'target_percent': 0.0999999, 'filled_volume': 18181800, 'filled_vwap': 11.0011, 'filled_amount': 200019799.98, 'created_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'filled_commission': 20001.979998, 'account_name': '', 'order_id': '', 'ex_ord_id': '', 'algo_order_id': '', 'order_business': 0, 'order_duration': 0, 'order_qualifier': 0, 'order_src': 0, 'position_src': 0, 'ord_rej_reason': 0, 'ord_rej_reason_detail': '', 'stop_price': 0.0}]
注意:
1. 仅支持一个标的代码,若交易代码输入有误,终端会拒绝此单,并显示委托代码不正确
。
2. 根据指定比例计算购买标的数量,即(nav*precent)/price
,股票买卖最小单位为100
,不足 100 部分向下取整
,如存在不足 100 的持仓一次性卖出;期货买卖最小单位为1
,向下取整
。
3. 若仓位不足,终端会拒绝此单,显示仓位不足
。平仓时股票默认平昨仓
,期货默认平今仓
。应研究需要,股票也支持卖空操作
。
4. 输入无效参数报 NameError 错误,缺少参数报 TypeError 错误。
5. 期货实盘时,percent 是以合约上市的初始保证金比例计算得到的,并非实时保证金比例。
6. 按交易所规定,沪市市价单,必须填写保护限价。(买入设置保护限价price 的有效范围为当前价~涨停价, 卖出设置保护限价price的有效范围为跌停价~当前价。),终端版本号大于3.21.0.0的,会默认买入填写涨停价,卖出填写跌停价。
# order_target_volume
- 调仓到目标持仓量
函数原型:
order_target_volume(symbol, volume, position_side, order_type, price=0, order_duration=OrderDuration_Unknown, order_qualifier=OrderQualifier_Unknown, account='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
volume | int | 期望的最终数量 |
position_side | int | 表示将多仓还是空仓调到目标持仓量,参见 持仓方向 |
order_type | int | 参见订单委托类型 |
price | float | 价格(限价委托的委托价格;市价委托的保护价,沪市实盘市价单必填字段,股票需要保留两位小数,回测仿真可不填写,参考下文注意点5。) |
order_duration | int | 参见 委托时间属性 |
order_qualifier | int | 参见 委托成交属性 |
account | account id or account name or None | 帐户 |
返回值:
类型 | 说明 |
---|---|
list[order] | 委托对象列表,参见order 对象 |
示例:
当前 SHSE.600000 多方向持仓量为 0,期望持仓量为 10000,下单量为期望持仓量 - 当前持仓量 = 10000
order_target_volume(symbol='SHSE.600000', volume=10000, position_side=PositionSide_Long, order_type=OrderType_Limit, price=13)
返回:
[{'strategy_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'account_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'cl_ord_id': '000000000', 'symbol': 'SHSE.600000', 'side': 1, 'position_effect': 1, 'position_side': 1, 'order_type': 1, 'status': 3, 'price': 13.0, 'order_style': 1, 'volume': 10000, 'value': 130000.0, 'percent': 6.5e-05, 'target_volume': 10000, 'target_value': 130000.0, 'target_percent': 6.5e-05, 'filled_volume': 10000, 'filled_vwap': 13.0013, 'filled_amount': 130013.0, 'created_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'filled_commission': 13.0013, 'account_name': '', 'order_id': '', 'ex_ord_id': '', 'algo_order_id': '', 'order_business': 0, 'order_duration': 0, 'order_qualifier': 0, 'order_src': 0, 'position_src': 0, 'ord_rej_reason': 0, 'ord_rej_reason_detail': '', 'stop_price': 0.0}]
注意:
1. 仅支持一个标的代码,若交易代码输入有误,订单会被拒绝,终端无显示,无回报
。回测模式可参看 order_reject_reason。
2. 根据目标数量计算下单数量,系统判断开平仓类型。若下单数量有误,终端拒绝此单,并显示委托量不正确
。若实际需要买入数量为 0,则订单会被拒绝,终端无显示,无回报
。股票买卖最小单位为100
,不足 100 部分向下取整
,如存在不足 100 的持仓一次性卖出;期货买卖最小单位为1
,向下取整
。
3. 若仓位不足,终端拒绝此单,显示仓位不足
。平仓时股票默认平昨仓
,期货默认平今仓
,上期所昨仓不能平掉。应研究需要,股票也支持卖空操作。
4. 输入无效参数报 NameError 错误,缺少参数报 Typeerror 错误。
5. 按交易所规定,沪市市价单,必须填写保护限价。(买入设置保护限价price 的有效范围为当前价~涨停价, 卖出设置保护限价price的有效范围为跌停价~当前价。),终端版本号大于3.21.0.0的,会默认买入填写涨停价,卖出填写跌停价。
# order_target_value
- 调仓到目标持仓额
函数原型:
order_target_value(symbol, value, position_side, order_type, price=0, order_duration=OrderDuration_Unknown, order_qualifier=OrderQualifier_Unknown, account='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
value | int | 期望的股票最终价值 |
position_side | int | 表示将多仓还是空仓调到目标持仓量,参见 持仓方向 |
order_type | int | 参见订单委托类型 |
price | float | 价格(限价委托的委托价格;市价委托的保护价,沪市实盘市价单必填字段,股票需要保留两位小数,回测仿真可不填写,参考下文注意点5。) |
order_duration | int | 参见 委托时间属性 |
order_qualifier | int | 参见 委托成交属性 |
account | account id or account name or None | 帐户 |
返回值:
类型 | 说明 |
---|---|
list[order] | 委托对象列表,参见order 对象 |
示例:
当前 SHSE.600000 多方向当前持仓量为 0,目标持有价值为 100000 的该股票,根据 value / price 计算取整得出目标持仓量 volume 为 9000,目标持仓量 - 当前持仓量 = 下单量为 9000
order_target_value(symbol='SHSE.600000', value=100000, position_side=PositionSide_Long, order_type=OrderType_Limit, price=11)
返回:
[{'strategy_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'account_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'cl_ord_id': '000000000', 'symbol': 'SHSE.600000', 'side': 1, 'position_effect': 1, 'position_side': 1, 'order_type': 1, 'status': 3, 'price': 11.0, 'order_style': 1, 'volume': 9000, 'value': 100000.0, 'percent': 5e-05, 'target_volume': 9000, 'target_value': 100000.0, 'target_percent': 5e-05, 'filled_volume': 9000, 'filled_vwap': 11.0011, 'filled_amount': 99009.9, 'created_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'filled_commission': 9.90099, 'account_name': '', 'order_id': '', 'ex_ord_id': '', 'algo_order_id': '', 'order_business': 0, 'order_duration': 0, 'order_qualifier': 0, 'order_src': 0, 'position_src': 0, 'ord_rej_reason': 0, 'ord_rej_reason_detail': '', 'stop_price': 0.0}]
注意:
1. 仅支持一个标的代码,若交易代码输入有误,订单会被拒绝,终端无显示,无回报
。回测模式可参看 order_reject_reason。
2. 根据目标价值计算下单数量,系统判断开平仓类型。若下单数量有误,终端拒绝此单,并显示委托量不正确
。若实际需要买入数量为 0,则本地拒绝此单,终端无显示,无回报
。股票买卖最小单位为100
,不足 100 部分向下取整
,如存在不足 100 的持仓一次性卖出;期货买卖最小单位为1
,向下取整
。
3. 若仓位不足,终端拒绝此单,显示仓位不足
。平仓时股票默认平昨仓
,期货默认平今仓
,目前不可修改。应研究需要,股票也支持卖空操作
。
4. 输入无效参数报 NameError 错误,缺少参数报 Typeerror 错误。
5. 按交易所规定,沪市市价单,必须填写保护限价。(买入设置保护限价price 的有效范围为当前价~涨停价, 卖出设置保护限价price的有效范围为跌停价~当前价。),终端版本号大于3.21.0.0的,会默认买入填写涨停价,卖出填写跌停价。
# order_target_percent
- 调仓到目标持仓比例(总资产的比例)
函数原型:
order_target_percent(symbol, percent, position_side, order_type, price=0, order_duration=OrderDuration_Unknown, order_qualifier=OrderQualifier_Unknown, account='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
percent | double | 期望的最终占总资产比例 |
position_side | int | 表示将多仓还是空仓调到目标持仓量,参见 持仓方向 |
order_type | int | 参见订单委托类型 |
price | float | 价格(限价委托的委托价格;市价委托的保护价,沪市实盘市价单必填字段,股票需要保留两位小数,回测仿真可不填写,参考下文注意点6。) |
order_duration | int | 参见 委托时间属性 |
order_qualifier | int | 参见 委托成交属性 |
account | account id or account name or None | 帐户 |
返回值:
类型 | 说明 |
---|---|
list[order] | 委托对象列表,参见order 对象 |
示例:
当前总资产价值为 1000000,目标为以 11 元每股的价格买入 SHSE.600000 的价值占总资产的 10%,根据 volume = nav * percent / price 计算取整得出应持有 9000 股。当前该股持仓量为零,因此买入量为 9000
order_target_percent(symbol='SHSE.600000', percent=0.1, position_side=PositionSide_Long, order_type=OrderType_Limit, price=11)
返回:
[{'strategy_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'account_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'cl_ord_id': '000000000', 'symbol': 'SHSE.600000', 'side': 1, 'position_effect': 1, 'position_side': 1, 'order_type': 1, 'status': 3, 'price': 11.0, 'order_style': 1, 'volume': 18181800, 'value': 200000000.0, 'percent': 0.1, 'target_volume': 18181800, 'target_value': 199999800.0, 'target_percent': 0.1, 'filled_volume': 18181800, 'filled_vwap': 11.0011, 'filled_amount': 200019799.98, 'created_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'filled_commission': 20001.979998, 'account_name': '', 'order_id': '', 'ex_ord_id': '', 'algo_order_id': '', 'order_business': 0, 'order_duration': 0, 'order_qualifier': 0, 'order_src': 0, 'position_src': 0, 'ord_rej_reason': 0, 'ord_rej_reason_detail': '', 'stop_price': 0.0}]
注意:
1. 仅支持一个标的代码,若交易代码输入有误,订单会被拒绝,终端无显示,无回报
。回测模式可参看 order_reject_reason。
2. 根据目标比例计算下单数量,为占总资产(nav)
比例,系统判断开平仓类型。若下单数量有误,终端拒绝此单,并显示委托量不正确
。若实际需要买入数量为 0,则本地拒绝此单,终端无显示,无回报
。股票买卖最小单位为100
,不足 100 部分向下取整
,如存在不足 100 的持仓一次性卖出;期货买卖最小单位为1
,向下取整
。
3. 若仓位不足,终端拒绝此单,显示仓位不足
。平仓时股票默认平昨仓
,期货默认平今仓
,目前不可修改。应研究需要,股票也支持卖空操作
。
4. 输入无效参数报 NameError 错误,缺少参数报 Typeerror 错误。
5. 期货实盘时,percent 是以合约上市的初始保证金比例计算得到的,并非实时保证金比例。
6. 按交易所规定,沪市市价单,必须填写保护限价。(买入设置保护限价price 的有效范围为当前价~涨停价, 卖出设置保护限价price的有效范围为跌停价~当前价。),终端版本号大于3.21.0.0的,会默认买入填写涨停价,卖出填写跌停价。
# order_batch
- 批量委托接口
函数原型:
order_batch(orders, combine=False, account='')
参数:
参数名 | 类型 | 说明 |
---|---|---|
orders | list[order] | 委托对象列表,其中委托至少包含交易接口的必选参数,参见order 对象 |
combine | bool | 是否是组合单, 默认不是(预留字段,目前无效) |
account | account id or account name or None | 帐户 |
返回值:
类型 | 说明 |
---|---|
list[order] | 委托对象列表,参见order 对象 |
示例:
order_1 = {'symbol': 'SHSE.600000', 'volume': 100, 'price': 11, 'side': 1,
'order_type': 2, 'position_effect':1}
order_2 = {'symbol': 'SHSE.600004', 'volume': 100, 'price': 11, 'side': 1,
'order_type': 2, 'position_effect':1}
orders = [order_1, order_2]
batch_orders = order_batch(orders, combine=True)
for order in batch_orders:
print(order)
返回:
{'strategy_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'account_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'cl_ord_id': '000000000', 'symbol': 'SHSE.600000', 'side': 1, 'position_effect': 1, 'order_type': 2, 'status': 3, 'price': 10.280000686645508, 'order_style': 1, 'volume': 100, 'filled_volume': 100, 'filled_vwap': 10.281028686714173, 'filled_amount': 1028.1028686714174, 'created_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'filled_commission': 0.10281028686714173, 'account_name': '', 'order_id': '', 'ex_ord_id': '', 'algo_order_id': '', 'position_side': 0, 'order_business': 0, 'order_duration': 0, 'order_qualifier': 0, 'order_src': 0, 'position_src': 0, 'ord_rej_reason': 0, 'ord_rej_reason_detail': '', 'stop_price': 0.0, 'value': 0.0, 'percent': 0.0, 'target_volume': 0, 'target_value': 0.0, 'target_percent': 0.0}
{'strategy_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'account_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'cl_ord_id': '000000001', 'symbol': 'SHSE.600004', 'side': 1, 'position_effect': 1, 'order_type': 2, 'status': 3, 'price': 15.050000190734863, 'order_style': 1, 'volume': 100, 'filled_volume': 100, 'filled_vwap': 15.051505190753936, 'filled_amount': 1505.1505190753935, 'created_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'filled_commission': 0.15051505190753936, 'account_name': '', 'order_id': '', 'ex_ord_id': '', 'algo_order_id': '', 'position_side': 0, 'order_business': 0, 'order_duration': 0, 'order_qualifier': 0, 'order_src': 0, 'position_src': 0, 'ord_rej_reason': 0, 'ord_rej_reason_detail': '', 'stop_price': 0.0, 'value': 0.0, 'percent': 0.0, 'target_volume': 0, 'target_value': 0.0, 'target_percent': 0.0}
{'strategy_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'account_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'cl_ord_id': '000000002', 'symbol': 'SHSE.600000', 'side': 1, 'position_effect': 1, 'order_type': 2, 'status': 3, 'price': 10.180000305175781, 'order_style': 1, 'volume': 100, 'filled_volume': 100, 'filled_vwap': 10.1810183052063, 'filled_amount': 1018.10183052063, 'created_at': datetime.datetime(2020, 9, 2, 9, 40, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 9, 2, 9, 40, tzinfo=tzfile('PRC')), 'filled_commission': 0.101810183052063, 'account_name': '', 'order_id': '', 'ex_ord_id': '', 'algo_order_id': '', 'position_side': 0, 'order_business': 0, 'order_duration': 0, 'order_qualifier': 0, 'order_src': 0, 'position_src': 0, 'ord_rej_reason': 0, 'ord_rej_reason_detail': '', 'stop_price': 0.0, 'value': 0.0, 'percent': 0.0, 'target_volume': 0, 'target_value': 0.0, 'target_percent': 0.0}
{'strategy_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'account_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'cl_ord_id': '000000003', 'symbol': 'SHSE.600004', 'side': 1, 'position_effect': 1, 'order_type': 2, 'status': 3, 'price': 14.819999694824219, 'order_style': 1, 'volume': 100, 'filled_volume': 100, 'filled_vwap': 14.8214816947937, 'filled_amount': 1482.14816947937, 'created_at': datetime.datetime(2020, 9, 2, 9, 40, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 9, 2, 9, 40, tzinfo=tzfile('PRC')), 'filled_commission': 0.148214816947937, 'account_name': '', 'order_id': '', 'ex_ord_id': '', 'algo_order_id': '', 'position_side': 0, 'order_business': 0, 'order_duration': 0, 'order_qualifier': 0, 'order_src': 0, 'position_src': 0, 'ord_rej_reason': 0, 'ord_rej_reason_detail': '', 'stop_price': 0.0, 'value': 0.0, 'percent': 0.0, 'target_volume': 0, 'target_value': 0.0, 'target_percent': 0.0}
注意:
1. 每个 order 的 symbol 仅支持一个标的代码,若交易代码输入有误,终端会拒绝此单,并显示委托代码不正确
。
2. 若下单数量输入有误,终端会拒绝此单,并显示委托量不正确
。下单数量严格按照指定数量下单
,需注意股票买入最小单位为 100。
3. 若仓位不足,终端会拒绝此单,显示仓位不足
。应研究需要,股票也支持卖空操作
。
4. 输入无效参数报 NameError 错误,缺少参数不报错,可能会出现下单被拒。
# order_cancel
- 撤销委托
函数原型:
order_cancel(wait_cancel_orders)
参数:
参数名 | 类型 | 说明 |
---|---|---|
wait_cancel_orders | list[dict] | 传入单个字典. 或者 list 字典. 每个字典包含 key: cl_ord_id, account_id, 参见order 对象 |
示例:
# 先查未结委托,再把未结委托全部撤单,
unfin_order = get_unfinished_orders()
if unfin_order:
order_cancel(wait_cancel_orders=unfin_order)
# 也可循环未结委托,根据下单时间撤单
unfin_order = get_unfinished_orders()
for order in unfin_order:
# 下单超过30秒,没有全部成交撤单
if (abs(context.now - order['created_at'])).seconds > 30:
# 撤单
order_cancel(wait_cancel_orders=[{'cl_ord_id': order['cl_ord_id'], 'account_id': order['account_id']}])
# order_cancel_all
- 撤销所有委托
函数原型:
order_cancel_all()
示例:
order_cancel_all()
# order_close_all
- 平当前所有可平持仓
注意: 不支持市价委托类型的委托,会被柜台拒绝
函数原型:
order_close_all()
示例:
order_close_all()
# get_unfinished_orders
- 查询日内全部未结委托
函数原型:
get_unfinished_orders()
返回值:
类型 | 说明 |
---|---|
list[order] | 委托对象列表,参见order 对象 |
示例:
get_unfinished_orders()
返回:
[{'strategy_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'account_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'cl_ord_id': '000000000', 'symbol': 'SHSE.600519', 'side': 1, 'position_effect': 1, 'position_side': 1, 'order_type': 2, 'status': 3, 'price': 1792.0, 'order_style': 1, 'volume': 100, 'value': 179200.0, 'percent': 8.96e-05, 'target_volume': 100, 'target_value': 179200.0, 'target_percent': 8.96e-05, 'filled_volume': 100, 'filled_vwap': 1792.1792, 'filled_amount': 179217.92, 'created_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'filled_commission': 17.921792000000003, 'account_name': '', 'order_id': '', 'ex_ord_id': '', 'algo_order_id': '', 'order_business': 0, 'order_duration': 0, 'order_qualifier': 0, 'order_src': 0, 'position_src': 0, 'ord_rej_reason': 0, 'ord_rej_reason_detail': '', 'stop_price': 0.0}]
# get_orders
- 查询日内全部委托
函数原型:
get_orders()
返回值:
类型 | 说明 |
---|---|
list[order] | 委托对象列表,参见order 对象 |
示例:
get_orders()
返回:
[{'strategy_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'account_id': 'd7443a53-f65b-11ea-bb9d-484d7eaefe55', 'cl_ord_id': '000000000', 'symbol': 'SHSE.600519', 'side': 1, 'position_effect': 1, 'position_side': 1, 'order_type': 2, 'status': 3, 'price': 1792.0, 'order_style': 1, 'volume': 100, 'value': 179200.0, 'percent': 8.96e-05, 'target_volume': 100, 'target_value': 179200.0, 'target_percent': 8.96e-05, 'filled_volume': 100, 'filled_vwap': 1792.1792, 'filled_amount': 179217.92, 'created_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'updated_at': datetime.datetime(2020, 9, 1, 9, 40, tzinfo=tzfile('PRC')), 'filled_commission': 17.921792000000003, 'account_name': '', 'order_id': '', 'ex_ord_id': '', 'algo_order_id': '', 'order_business': 0, 'order_duration': 0, 'order_qualifier': 0, 'order_src': 0, 'position_src': 0, 'ord_rej_reason': 0, 'ord_rej_reason_detail': '', 'stop_price': 0.0}]
# get_execution_reports
- 查询日内全部执行回报
函数原型:
get_execution_reports()
返回值:
类型 | 说明 |
---|---|
list[execrpt] | 回报对象列表, 参见ExecRpt 回报对象 |
示例:
get_execution_reports()
返回:
[{'strategy_id': '004beb61-1282-11eb-9313-00ff5a669ee2', 'account_id': '3acc8b6e-af54-11e9-b2de-00163e0a4100', 'account_name': '3acc8b6e-af54-11e9-b2de-00163e0a4100', 'cl_ord_id': '49764a82-14fb-11eb-89df-00ff5a669ee2', 'order_id': '4a06f925-14fb-11eb-9e8a-00163e0a4100', 'exec_id': '573b108b-14fb-11eb-9e8a-00163e0a4100', 'symbol': 'SHSE.600714', 'position_effect': 1, 'side': 1, 'exec_type': 15, 'price': 5.579999923706055, 'volume': 900, 'amount': 5021.999931335449, 'created_at': datetime.datetime(2020, 10, 23, 14, 45, 29, 776756, tzinfo=tzfile('PRC')), 'commission': 5.0, 'cost': 5021.999931335449, 'ord_rej_reason': 0, 'ord_rej_reason_detail': ''}]
← 可转债增值数据函数(付费) 交易查询函数 →