跳转到内容

事件交易其他功能

事件交易没有一套完全独立的 API 家族。它通常组合使用 TWS API 已有能力:合约详情、行情、订单、错误处理、执行明细和日志。

目标接口说明
找到合约reqContractDetails()验证 Contract 是否能被 TWS 识别。
订阅报价reqMktData()获取买卖价、最新价和数量字段。
取消行情cancelMktData()停止持续订阅,避免占用行情额度。
提交订单placeOrder()使用已确认合约和限价单。
查询订单reqOpenOrders() / reqAllOpenOrders()核对仍在打开状态的订单。
撤单cancelOrder()调试后及时清理未成交订单。
成交查询reqExecutions()读取成交明细。

事件合约排查时建议同时看三处信息:

信息来源看什么
Python 控制台error()contractDetails()tickPrice()orderStatus() 输出。
TWS 界面合约是否存在、行情是否显示、订单是否进入委托列表。
TWS API 日志原始请求、响应和错误码。

如果页面显示合约可见,但 API 返回错误码 200,通常是代码里的 Contract 字段不完整,而不是 TWS 没有该产品。

1. TWS 是否登录模拟账户并开启 API。
2. API 端口是否正确,模拟账户常见为 7497。
3. clientId 是否和其他程序冲突。
4. 事件合约是否能在 TWS 里搜索到。
5. `reqContractDetails()` 是否返回至少 1 条。
6. `reqMktData()` 是否返回价格或权限错误。
7. 下单前是否收到 `nextValidId()`。
8. 下单后是否检查 `openOrder()`、`orderStatus()`、`error()`。