order_target_value - 指定持仓市值买卖

order_target_value 是 PTrade 中用于指定持仓市值买卖的接口。

提示

  • live-or-trading-module-only
  • backtest-only
  • broker-or-counter-dependent

原型

order_target_value(security, value, limit_price=None)

释义

order_target_value 是 PTrade 中用于指定持仓市值买卖的接口。

研究:不支持;回测:支持;模拟:官方目录未明确;实盘:支持。

参数

参数 是否必填 官方原始定义
security security
value value
limit_price limit_price=None

返回值

Order对象中的id或者None。如果创建订单成功,则返回Order对象的id(str),失败则返回None(NoneType)。

示例

def initialize(context):

g.security = ['600570.SS', '000001.SZ']

set_universe(g.security)

def handle_data(context, data):

#买卖股票到指定价值

order_target_value('600570.SS', 10000)

#卖出当前所有恒生电子的股票

if data['600570.SS']['close'] > 39:

order_target_value('600570.SS', 0)

详细说明

order_target_value(security, value, limit_price=None)

使用场景

该函数仅在回测、交易模块可用

接口说明

该接口用于调整股票持仓市值到value价值

注意事项

该函数不支持逆回购交易。

该函数在委托股票时取整100股,委托可转债时取整10张。

交易场景如果limit_price字段不入参,系统会默认用行情快照数据最新价报单,假如行情快照获取失败会导致委托失败, 系统会在日志中增加提醒。

该接口的使用有场景限制,回测可以正常使用,交易谨慎使用。回测场景下撮合是引擎计算的,因此成交之后持仓信息的更新是瞬时的,但交易场景下信息的更新依赖于柜台数据的返回,无法做到瞬时同步,可能造成重复下单。具体原因如下:

柜台返回持仓数据体现当日变化(由柜台配置决定):交易场景中持仓信息同步有时滞,一般在6秒左右,假如在这6秒之内连续下单两笔或更多order_target_value委托,由于持仓市值不会瞬时更新,会造成重复下单。

柜台返回持仓数据体现当日变化(由柜台配置决定):第一笔委托未完全成交,如果不对第一笔做撤单再次order_target_value相同的委托目标金额,引擎不会计算包括在途的总委托数量,也会造成重复下单。

柜台返回持仓数据不体现当日变化(由柜台配置决定):这种情况下持仓金额只会一天同步一次,必然会造成重复下单。

针对以上几种情况,假如要在交易场景使用该接口,首先要确定券商柜台的配置,是否实时更新持仓情况,其次需要增加订单和持仓同步的管理,来配合order_target_value使用。

参数详细说明

security: 股票代码(str);

value: 期望的股票最终价值(float);

limit_price:买卖限价(float);

返回值

Order对象中的id或者None。如果创建订单成功,则返回Order对象的id(str),失败则返回None(NoneType)。