跳转到内容

行权期权

exerciseOptions() 用于对期权合约发送行权或失效请求。它不是普通下单接口,风险比提交一张限价单更高,因为它可能直接改变期权和标的持仓结构。

Python API 的调用形态是:

app.exerciseOptions(
reqId,
option_contract,
exerciseAction,
exerciseQuantity,
account,
override,
manualOrderTime,
)
参数中文意思
reqId请求 ID,用来对应回调或错误信息。
option_contract期权合约,必须是明确的期权合约。
exerciseAction行权动作。常见含义是行权或失效,具体值以 API 版本和产品规则为准。
exerciseQuantity行权数量,通常按合约张数理解。
account账户代码。多账户场景必须明确。
override是否覆盖默认处理。这个字段有真实持仓风险,不要随意设置。
manualOrderTime人工订单时间字段,普通场景通常留空。
contract = Contract()
contract.symbol = "AAPL"
contract.secType = "OPT"
contract.exchange = "SMART"
contract.currency = "USD"
contract.lastTradeDateOrContractMonth = "20261218"
contract.strike = 100
contract.right = "C"
contract.multiplier = "100"

这只是合约结构示例。真正发送行权请求前,必须先用 reqContractDetails() 确认该期权合约存在,并确认账户确实持有对应期权或具备相关权限。

检查项说明
合约详情到期日、行权价、看涨/看跌、乘数必须准确。
持仓账户是否持有可行权数量。
账户多账户时不能依赖默认账户。
到期和截止时间期权行权有时间限制。
资金和标的影响行权可能生成股票、现金或其它标的持仓变化。
权限和风控TWS/IBKR 可能拒绝不符合规则的请求。

行权请求不适合公开网页工具默认开放。更合理的做法是:

  • 文档解释参数和风险。
  • 模拟账户里只在确认持仓后测试。
  • 生产系统必须有二次确认和权限限制。
  • 保存请求参数、回调和错误信息,方便事后核对。

如果没有期权持仓或权限,TWS 可能返回拒绝信息;这属于账户和产品权限边界,不是 Python 语法问题。