order_target - 指定目标数量买卖

order_target 是 PTrade 中用于指定目标数量买卖的接口。

提示

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

原型

order_target(security, amount, limit_price=None)

释义

order_target 是 PTrade 中用于指定目标数量买卖的接口。

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

参数

参数 是否必填 官方原始定义
security security
amount amount
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):

#买卖恒生电子股票数量到100股

order_target('600570.SS', 100)

#卖出恒生电子所有股票

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

order_target('600570.SS', 0)

详细说明

order_target(security, amount, limit_price=None)

使用场景

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

接口说明

该接口用于买卖股票,直到股票最终数量达到指定的amount

注意事项

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

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

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

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

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

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

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

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

参数详细说明

security: 股票代码(str);

amount: 期望的最终数量(int);

limit_price:买卖限价(float);

返回值

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