计算期权价格
calculateOptionPrice() 用来让 TWS 根据期权合约、给定波动率和标的价格计算理论期权价格。它不是下单接口,也不会发出交易。
计算结果同样通过 tickOptionComputation() 返回。
app.calculateOptionPrice( reqId, contract, volatility, underPrice, optPrcOptions,)| 参数 | 示例 | 中文说明 |
|---|---|---|
reqId | 97603 | 请求编号,用来匹配 tickOptionComputation()。 |
contract | AAPL 看涨期权合约 | 必须是具体期权合约。 |
volatility | 0.25 | 输入波动率,0.25 表示 25%。 |
underPrice | 300.0 | 输入标的价格。 |
optPrcOptions | [] | 通常留空。 |
Python 示例
Section titled “Python 示例”# 给定 25% 波动率和 300 美元标的价格,计算理论期权价格。app.calculateOptionPrice( 97603, build_option_contract(), 0.25, 300.0, [],)接收结果:
def tickOptionComputation(self, reqId, tickType, tickAttrib, impliedVol, delta, optPrice, pvDividend, gamma, vega, theta, undPrice): if reqId == 97603: print("理论期权价格", optPrice) print("模型使用的标的价格", undPrice) print("delta", delta, "gamma", gamma, "vega", vega, "theta", theta)和实时行情的区别
Section titled “和实时行情的区别”| 项目 | reqMktData() | calculateOptionPrice() |
|---|---|---|
| 输入 | 期权合约 | 期权合约、波动率、标的价格 |
| 是否订阅行情 | 是 | 否,属于模型计算请求 |
| 回调 | tickOptionComputation() | tickOptionComputation() |
| 适合用途 | 读取真实行情与模型值 | 测算不同波动率和标的价格下的理论价格 |
使用可识别的 AAPL 期权合约,calculateOptionPrice() 可以返回模型计算结果:
SELECTED_OPTION=symbol=AAPL;expiry=20260615;strike=300.0;right=C;exchange=SMART;tradingClass=AAPLGREEKS=reqId=97603;tickType=53;iv=0.25;delta=0.506375;gamma=0.083872;vega=0.076269;theta=-0.659189;optPrice=1.926125;undPrice=300.0如果这里返回 200 合约错误,应先回到合约定位步骤处理。不要在合约详情未确认的情况下继续调试模型参数。
calculateOptionPrice() 适合做教学、风控预估和策略参数敏感性测试。真实交易前仍应使用实际 bid/ask、成交量、流动性和订单成本进行判断,不能只看模型价格。