期货移仓
适用市场
| 市场 | 品种 |
|---|---|
| 香港市场 | 期货 |
| 美国市场 | 期货 |
| 新加坡市场 | 期货 |
| 日本市场 | 期货 |
rolling_positions
接口说明
移仓,是指将期货合约持仓,转移到另一个较远期限的合约。在策略运行时,如果持有的期货合约即将到期,但想继续持有该方向的头寸更长的时间,可以使用“期货移仓”函数。
graph LR
A((持有2张<br>移仓合约的<br>多头持仓)) -->B{是否有<br>移仓合约的<br>未成交卖单?}
B -->|是| C[撤销移仓合约<br>的未成交卖单]
B -->|否| E{是否有<br>目标合约的<br>未成交卖单?}
C -->|撤单成功| E
E -->|是| F[撤销目标合约<br>的未成交卖单]
E -->|否| G[市价单卖出<br>2张移仓合约]
F -->|撤单成功| G
G -->|完全成交| H[市价单买入<br>2张目标合约]
H -->|完全成交| I((持有2张<br>目标合约的<br>多头持仓))
graph LR
A((持有2张<br>移仓合约的<br>空头持仓)) -->B{是否有<br>移仓合约的<br>未成交买单?}
B -->|是| C[撤销移仓合约<br>的未成交买单]
B -->|否| E{是否有<br>目标合约的<br>未成交买单?}
C -->|撤单成功| E
E -->|是| F[撤销目标合约<br>的未成交买单]
E -->|否| G[市价单买回<br>2张移仓合约]
F -->|撤单成功| G
G -->|完全成交| H[市价单卖空<br>2张目标合约]
H -->|完全成交| I((持有2张<br>目标合约的<br>空头持仓))
移仓时,允许持有 与移仓合约方向相反的 目标合约头寸,但持有数量不能少于移仓合约的持有数量。
例1:账户持有 1 张 US.CL2408 的多头合约和 1 张 US.CL2409 的空头合约。使用期货移仓功能,会卖出平仓 1 张 US.CL2408 合约,然后买入平仓 1 张 US.CL2409 合约。
例2:账户持有 2 张 US.CL2408 的多头合约和 1 张 US.CL2409 的空头合约。使用期货移仓功能,会卖出平仓 2 张 US.CL2408 合约,然后在提交买入 2 张 US.CL2409 合约买单时失败。
rolling_positions(initial_symbol,qty,new_symbol)
每 30 秒最多提交 15 次期货移仓。
参数
| 参数名 | 类型 | 说明 | 默认值 | 范围 |
|---|---|---|---|---|
| initial_symbol | Contract | 移仓合约 | -- | -- |
| qty | float | 数量(无论持有多仓还是空仓,qty 都需要输入正整数) | -- | (0,+∞) |
| new_symbol | Contract | 目标合约 | -- | -- |
返回
| 返回类型 | 返回值说明 |
|---|---|
| string | 订单组ID |
移仓操作产生的 2 笔订单的 订单组ID 相同,可通过 查询子订单ID 函数,获得 平仓订单ID 和 开仓订单ID。
示例说明
移仓 1 张 HSI2401 至 HSInext。
rolling_positions(initial_symbol=Contract("HK.HSI2401"),qty=1,new_symbol=Contract("HK.HSInext"))
示例返回值
"FT6644468615272262086"