跳转到内容

Paper Trading(模拟账户)

Paper Account(模拟账户) 是学习 TWS API 时最重要的安全环境。它适合验证合约查询、历史 K 线、订单预览和模拟下单流程,但不能等同于真实交易环境。

功能是否适合说明
TWS API 连接适合可以验证 127.0.0.1、端口、clientIdnextValidId 和回调链路。
合约详情适合可以用 reqContractDetails() 确认股票、期权、期货等合约定义。
历史 K 线适合可以验证 reqHistoricalData() 参数、返回周期和行情权限边界。
账户与持仓适合可以读取模拟账户的账户摘要、持仓、盈亏和保证金字段。
WhatIf 订单适合可以预览订单对保证金和风险的影响,不会真正提交成交。
模拟下单、改单、撤单适合可以验证 placeOrder()orderStatus()openOrder() 和撤单流程。
真实成交表现不适合模拟成交、滑点、排队和真实市场流动性不能完全代表实盘。
实时行情权限部分适合模拟账户也会受市场数据订阅、延迟行情和交易所权限影响。
差异说明
资金不是真实资金模拟账户适合学习和测试,但不能证明策略在真实资金中一定安全。
成交机制不同模拟成交可能比真实市场理想,不能直接用来评估滑点和冲击成本。
权限仍然存在行情订阅、交易权限、地区限制和产品权限仍可能影响 API 返回。
风控提示仍要处理即使是模拟账户,订单参数错误、风险提示和交易限制也可能阻止订单。
环境可能不同Paper 和 Live 的端口、登录状态、账户 ID、权限和订单状态都要分开确认。
客户端模拟账户端口实盘账户端口
TWS74977496
IB Gateway40024001

端口不是写死规则,最终以 TWS 或 IB Gateway 的 API 设置页为准。复制示例代码前,先确认代码里的 hostport 与当前客户端设置一致。

  • 第一步只测试 reqCurrentTime(),确认连接可用。
  • 第二步测试 reqContractDetails(),确认合约定义唯一。
  • 第三步测试历史 K 线或账户查询,确认请求和回调能正确对应。
  • 下单章节先使用 whatIf=True,再在模拟账户里做低风险限价单、改单和撤单验证。
  • 每个测试脚本使用不同 clientId,避免多个程序互相抢订单状态。
规则原因
不展示完整账号文档、截图和日志都应隐藏账号、姓名、订单号和资产信息。
不把 TWS API 端口开放到公网TWS API Socket 不是公开互联网接口。
真实账户和模拟账户分开配置防止把测试脚本误连到真实账户。
订单示例先用模拟账户先确认合约、价格、数量、订单类型和撤单流程。
不用模拟账户证明收益模拟环境只适合验证 API 行为和代码流程,不代表实盘结果。