ForecastEx 预测合约
ForecastEx 预测合约在 TWS API 里按期权类合约处理,常见字段是 secType="OPT"、exchange="FORECASTX"、currency="USD"。它的业务含义是事件结果,而不是传统股票或指数期权,所以 symbol、到期日、本地代码、行权价和方向都要以具体事件合约为准。
基础合约形态
Section titled “基础合约形态”from ibapi.contract import Contract
def forecastex_contract(): contract = Contract() contract.symbol = "GCE" # Global Carbon Dioxide Emissions 示例 contract.secType = "OPT" # ForecastEx 合约按期权类合约请求 contract.exchange = "FORECASTX" # ForecastEx 交易所代码 contract.currency = "USD" # 美元计价 contract.lastTradeDateOrContractMonth = "20251231" contract.strike = 40500 contract.right = "C" # C 对应该 ForecastEx 示例里的 YES 方向 return contract上面是 ForecastEx 合约结构示例。实际开发时仍应先用 reqContractDetails() 确认,因为事件合约会随到期日、事件主题和产品状态变化。
| 字段 | 中文含义 | 写法说明 |
|---|---|---|
symbol | 事件主题代码 | 例如 GCE。 |
secType | 证券类型 | ForecastEx 常见为 OPT。 |
exchange | 交易所 | ForecastEx 使用 FORECASTX。 |
currency | 币种 | 常见为 USD。 |
lastTradeDateOrContractMonth | 到期日或合约月份 | 示例为 20251231。 |
strike | 事件阈值或价格刻度 | 示例为 40500。 |
right | 结果方向 | 示例中 C 对应 YES,P 常对应相反方向。 |
localSymbol | 本地合约代码 | 如果拿得到,它通常比宽泛 symbol 更精确。 |
conId | IBKR 合约 ID | 最精确,适合在合约已确认后保存使用。 |
查询合约详情
Section titled “查询合约详情”app.reqContractDetails(1001, forecastex_contract())如果请求成功,结果会进入 contractDetails() 回调;如果没有找到合约,通常进入 error() 回调并返回错误码 200。
def contractDetails(self, reqId, contractDetails): contract = contractDetails.contract print(contract.conId, contract.localSymbol, contract.tradingClass)
def error(self, reqId, errorTime, errorCode, errorString, advancedOrderRejectJson=""): print(reqId, errorCode, errorString)TWS 模拟账户中,GCE ForecastEx 合约详情请求成功:
REQ_SENT=FORECAST_GCE_FULL;reqId=95191;symbol=GCE;secType=OPT;exchange=FORECASTX;expiry=20251231;strike=40500;right=CDETAIL_END_FORECAST_GCE_FULL=TrueDETAIL_ROWS_FORECAST_GCE_FULL=1DETAIL=reqId=95191;conId=753279929;symbol=GCE;secType=OPT;exchange=FORECASTX;localSymbol=GCE_1225_40500_YES;tradingClass=GCE;lastTradeDateOrContractMonth=20251231;strike=40500.0;right=C;multiplier=1;longName=Global Carbon Dioxide Emissions宽泛请求 GCE/OPT/FORECASTX 会返回更多候选:
DETAIL_ROWS_FORECAST_GCE_BROAD=150所以搜索或宽泛查询适合发现合约,交易代码应使用已经筛选并确认过的具体合约字段。
先保存 conId 和 localSymbol,再保存中文业务解释。策略代码里不要只保存“美国大选”这类自然语言名称,因为 TWS API 识别的是合约字段,不识别业务描述。
ForecastEx 预测合约下单规则和普通期权不同。开发文档应优先使用限价单,并确认目标合约的买卖方向、到期日和事件结果含义。