跳转到内容

计算期权价格

calculateOptionPrice() 用来让 TWS 根据期权合约、给定波动率和标的价格计算理论期权价格。它不是下单接口,也不会发出交易。

计算结果同样通过 tickOptionComputation() 返回。

app.calculateOptionPrice(
reqId,
contract,
volatility,
underPrice,
optPrcOptions,
)
参数示例中文说明
reqId97603请求编号,用来匹配 tickOptionComputation()
contractAAPL 看涨期权合约必须是具体期权合约。
volatility0.25输入波动率,0.25 表示 25%。
underPrice300.0输入标的价格。
optPrcOptions[]通常留空。
# 给定 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)
项目reqMktData()calculateOptionPrice()
输入期权合约期权合约、波动率、标的价格
是否订阅行情否,属于模型计算请求
回调tickOptionComputation()tickOptionComputation()
适合用途读取真实行情与模型值测算不同波动率和标的价格下的理论价格

使用可识别的 AAPL 期权合约,calculateOptionPrice() 可以返回模型计算结果:

SELECTED_OPTION=symbol=AAPL;expiry=20260615;strike=300.0;right=C;exchange=SMART;tradingClass=AAPL
GREEKS=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、成交量、流动性和订单成本进行判断,不能只看模型价格。