Claude AI + 盈透证券IBKR API:AI看盘、策略执行、自动下单完整教程

Claude AI接入盈透证券IBKR API:从0搭建AI自动交易机器人完整教程

如果你已经有一套相对成熟的交易策略,那么接下来最值得做的一件事,就是把它自动化。

比如:让AI帮你自动扫描股票、判断策略条件、连接券商API、自动下单、自动止盈止损,甚至把交易提醒直接推送到手机上。这个思路的核心,就是把 Claude AI + Python + 盈透证券 IBKR API 连接起来,搭建一套可以执行交易流程的AI自动交易机器人。

本篇文章会用比较通俗的方式,带你理解整个搭建流程。你不需要一开始就会写代码,因为很多代码和配置,都可以交给 Claude AI / Claude Code 来协助完成。

如果你还没有盈透证券账户,可以先通过下面这个链接注册:

👉 IB盈透证券:美股投资神器,全球顶级券商
注册链接:https://ibkr.com/referral/gan760

如果你也做加密货币交易,可以使用币安或欧易:

👉 Binance币安:全球最大的加密货币交易所
注册链接:https://bit.ly/3PF8egr
减免20%交易手续费,邀请码:BFCYEW71

👉 OKX欧易:中文支持比较好的比特币交易所
注册链接:https://www.lywebuuz.com/join/88576911
减免20%交易手续费,邀请码:88576911



提示词1:

我现在想把 Interactive Brokers(盈透证券)PythonClaude 连接到一起。我已经有一个 Interactive Brokers 模拟交易账户,而且全局配置也已经设置好了。你能帮我确认一下……或者说,你能一步一步带我走完整个连接流程吗?



提示词2:

帮我看一下这个 Interactive Brokers(盈透证券)模拟交易账户 里面有没有任何持仓。通过 TWS 查看,同时也告诉我我的 购买力 / 可用买入资金 是多少。



提示词3:

你能帮我下一个特斯拉 的买入订单吗?限价是 350 美元。我只想买 2 股



提示词4:创建交易策略

 


在当前目录中,为 IBKR 模拟交易机器人 创建策略文件。

前置检查:

确认当前目录中 没有 已经存在的 rules.json 文件。
如果已经存在,就停止操作,并让我先清理它。

创建一个名为 rules.json 的文件,内容必须完全如下:
请逐字复制,不要自行修改字段名、大小写或数值。

{
  "strategy_name": "趋势跟随",
  "direction": "long_only",
  "trade_timeframe": "5m",

  "universe_filters": {
    "index": "S&P 500",
    "min_price_usd": 3.0
  },

  "daily_filters": {
    "D1_above_prior_day_high": true,
    "D2_prior_close_above_sma200": true,
    "D3_min_gap_pct_from_prior_close": 3.0
  },

  "intraday_filters": {
    "I1_above_premarket_high": true,
    "I2_above_today_hod": true,
    "I3_rvol_min": 2.0,
    "I3_rvol_lookback_days": 14
  },

  "time_filter": {
    "earliest_entry_et": "10:05",
    "latest_entry_et": "15:30",
    "force_close_et": "15:51"
  },

  "exit": {
    "initial_stop_rule": "lod_minus_1pct",
    "partial_profit_trigger_R": 0.75,
    "partial_profit_fraction": 0.3333,
    "breakeven_trigger_R": 1.0,
    "post_breakeven_trail": "swing_low_5m_2_2"
  },

  "risk": {
    "max_risk_per_trade_pct": 1.0,
    "max_position_size_pct_of_portfolio": 10,
    "max_concurrent_positions": 5
  }
}

创建文件之后:

把文件内容打印出来给我确认。

不要创建任何其他文件。

不要运行任何东西。

 



提示词5: IBKR 模拟交易机器人 创建配置文件。

在当前目录中,为 IBKR 模拟交易机器人 创建配置文件。

前置检查:

  1. 确认当前目录中已经存在 rules.json 文件,也就是第 4 步创建的文件。
    如果不存在,就停止操作。
  2. 确认以下这些文件都不存在:.env.gitignorerequirements.txt
    如果其中任何一个已经存在,就停止操作,并让我先清理它们。

只创建下面这 3 个文件,并且内容必须完全一致:

1. .env

IBKR_HOST=127.0.0.1
IBKR_PORT=7497
IBKR_CLIENT_ID=2
IBKR_EXEC_CLIENT_ID=3
PAPER_TRADING=true
PORTFOLIO_VALUE_USD=25000
MAX_TRADE_SIZE_USD=2500
MAX_TRADES_PER_DAY=5
MAX_RISK_PER_TRADE_PCT=1.0
TELEGRAM_BOT_TOKEN=
TELEGRAM_CHAT_ID=

2. .gitignore

.env
.venv/
__pycache__/
*.pyc
trades.csv
logs/
open_positions.json
safety-check-log.json
watchlist.txt

3. requirements.txt

不要指定版本号。

ib_async
python-dotenv
pandas
numpy
yfinance
requests

创建文件之后:

打印当前文件树。

打印下面这句话:

已准备好进入第 6 步:构建机器人代码

不要运行任何东西。



提示词6:标普500股票代码列表



帮我创建一个名为 SP500_TICKERS 的 Python 列表,也就是“标普500股票代码列表”,然后把当前标普500成分股的所有股票代码都放进去。

 

提示词7:早盘预筛选脚本


为当前目录中的 IBKR 模拟交易机器人 创建一个 早盘预筛选脚本

前置检查:

  1. 确认 src/sp500_tickers.py 存在,并且里面有一个 SP500_TICKERS 列表。
    如果不存在,就停止。
  2. 确认已经安装了 yfinance
python -c "import yfinance"

如果没有安装,就停止,并告诉我运行:

pip install yfinance
  1. 确认 morning_prefilter.py 文件 还不存在
    如果已经存在,就停止。

创建一个文件:

morning_prefilter.py

这是一个独立的命令行脚本。

顶部常量如下:

WATCHLIST_PATH = Path("watchlist.txt")
DEFAULT_MIN_GAP_PCT = 3.0
DEFAULT_MIN_PRICE = 3.0
MAX_SURVIVORS = 20
ET = ZoneInfo("America/New_York")

命令行参数,使用 argparse

  • --min-gap:浮点数,默认值为 DEFAULT_MIN_GAP_PCT
  • --min-price:浮点数,默认值为 DEFAULT_MIN_PRICE
  • --dry-run:标志参数;如果设置了这个参数,就不要写入 watchlist.txt

逻辑按以下顺序执行:

  1. 把 IBKR 的股票代码格式转换成 Yahoo 格式:
    "BRK B" 转换成 "BRK-B"
  2. 调用:
yf.download(
    tickers=" ".join(yahoo_tickers),
    period="2d",
    interval="1d",
    group_by="ticker",
    threads=5,
    progress=False,
    auto_adjust=True,
)

重要:
这里必须使用 threads=5,不要用 10
因为在 Windows 任务计划程序里运行时,更高的并发数可能会耗尽文件描述符。

  1. 对每个股票代码:
yesterday_close = bars.iloc[-2]["Close"]
today_open = bars.iloc[-1]["Open"]
today_close = bars.iloc[-1]["Close"]   # 这是市场交易时段里的实时盘中价格
today_high = bars.iloc[-1]["High"]
today_low = bars.iloc[-1]["Low"]
gap_pct = (today_close - yesterday_close) / yesterday_close * 100

筛选条件:

today_close >= min_price
并且
gap_pct >= min_gap

同时把被拒绝的股票数量分别统计到这些分类里:

below_gap
below_price
failed
  1. gap_pct 从高到低排序通过筛选的股票。
    最多保留 MAX_SURVIVORS 个。
  2. 如果没有设置 --dry-run,就写入 watchlist.txt,格式必须完全如下:
# Auto-generated by morning_prefilter.py at YYYY-MM-DD HH:MM ZONE
# Filters: gap >= X%, price >= $Y
# Source: yfinance (screening only); IBKR handles execution
# Survivors: N (capped at 20) of 503
#
# ticker  # gap +X.XX%  open $X.XX  prev $X.XX
AAPL  # gap +3.45%  open $185.20  prev $180.00
...
  1. 向标准输出打印一个 JSON 摘要,包含以下字段:
success
total_screened
survivors_count
below_gap
below_price
failed
elapsed_seconds
top_20_survivors
watchlist_path

其中:

top_20_survivors

是一个字符串列表,格式类似:

"TICKER (+X.XX%)"

降级警报触发条件:

如果触发,打印到标准错误输出 stderr

  • 如果:
failed / total >= 0.95

打印:

ALERT: Yahoo-wide failure suspected; check yfinance changelog

意思是:可能是 Yahoo 整体接口出问题了,需要检查 yfinance 更新日志。

  • 如果:
failed / total >= 0.30
但小于 0.95

打印:

ALERT: yfinance degradation (failed N/M)

意思是:yfinance 可能出现了部分降级或不稳定。

这些后面会在通知章节里接入 Telegram。
现在先只打印到 stderr


失败处理:

  • 如果 yf.download 返回的是空 DataFrame,就打印错误 JSON,并以状态码 1 退出。
  • 如果某个单独股票代码触发以下错误:
KeyError
IndexError
ValueError

就把它加入 failed 列表,然后继续处理下一个股票。
不要让整个脚本崩溃。


限制条件:

  • 不要修改任何已有文件,比如:
bot.py
strategy.py
rules.json

等等。

  • 使用 zoneinfo 里的 ZoneInfo,不要使用 pytz

创建文件之后:

打印:

READY: run `python morning_prefilter.py --dry-run` to test

不要你自己运行任何东西。

 

 

 

提示词8:自动交易循环脚本



 

为当前目录中的 IBKR 模拟交易机器人 创建一个 自动交易循环脚本

前置检查:

  1. 确认以下文件都存在:
bot.py
trade.py
strategy.py
rules.json
morning_prefilter.py
src/sp500_tickers.py
src/ibkr_client.py
  1. 确认 watchlist.txt 存在。
    如果不存在,就告诉我先运行:
python morning_prefilter.py

然后停止。

  1. 确认 cycle.py 文件 还不存在
    如果已经存在,就停止。

创建一个文件:

cycle.py

这个脚本会由 Windows 任务计划程序 每 5 分钟运行一次。

main() 函数需要按顺序完成以下 9 个步骤:


1. 时间判断

返回以下其中一种状态:

"weekend"
"too_early"
"closed"
"manage_only"
"force_close"
"ok"

规则如下:

  • 周六 / 周日 → 立即退出
  • 美东时间 10:00 之前,或者 16:00 之后 → 立即退出
  • 美东时间 10:00–10:05,或者 15:30–15:51 → 返回 "manage_only"
    只管理已有持仓,不开新仓
  • 美东时间 15:51–16:00 → 返回 "force_close"
  • 美东时间 10:05–15:30 → 返回 "ok"

在周末、太早、已收盘这些情况下,必须在 1 秒内退出
这就是为什么可以让脚本“全天每 5 分钟运行一次”,成本仍然很低。


2. 加载状态

读取:

open_positions.json

如果文件不存在,就返回空列表 []

每个持仓字典包含这些字段:

symbol
entry_price
entry_time_iso
qty
initial_stop
stop_order_id
state
R

3. 检查是否被止损

对每一个已有持仓,查询最近 1 小时内的:

ibkr.ib.fills()

通过下面这个条件匹配:

order_id == position["stop_order_id"]

非常重要:不要用数量来匹配。
用数量匹配会在部分止盈之后,错误判断为已经止损出场。
这是 Mac 版本里真实出现过的 bug。

如果确认某个持仓已经被止损,就从持仓列表中移除。


4. 管理每个持仓

持仓有 3 种状态:

"pre_breakeven"

如果:

price >= entry + 1R

就取消旧止损单,重新放一个止损在入场价位置,然后设置:

state = "post_breakeven_no_partial"

如果:

price >= entry + 0.75R

就按市价卖出:

ceil(qty / 3)

也就是大约三分之一仓位。

然后把剩余仓位的新止损放在:

entry * 0.99

并设置:

state = "post_breakeven_partial_done"

"post_breakeven_*"

计算 5 分钟级别的摆动低点。

摆动低点定义为:

某根 K 线的最低价,低于它前面 2 根 K 线的低点,也低于它后面 2 根 K 线的低点。

如果最新的摆动低点高于当前止损价,就取消旧止损单,然后把新的止损单放在:

swing_low - 0.01

止损只能往上移动,不能往下移动。


5. 保存状态

使用原子写入方式保存:

先写入 .tmp 临时文件,然后用:

os.replace

替换成最终文件。


6. 如果是强制平仓状态

如果状态是:

force_close

就取消每一个:

stop_order_id

然后对每个持仓执行市价卖出。

最后清空:

open_positions.json

然后退出。


7. 如果是只管理持仓状态

如果状态是:

manage_only

就直接退出,不开新仓。


8. 入场扫描

只有当状态是:

ok

时才执行。

流程如下:

  • 统计 trades.csv 中今天的 BUY 买入次数。
    如果已经大于等于:
MAX_TRADES_PER_DAY

就退出。

  • 读取 watchlist.txt
    跳过所有以 # 开头的行。
  • 非常重要:先调用:
ibkr.ib.positions()

跳过所有当前已经持有的股票。
这样可以避免“静默重复开仓”的 bug。
比如子进程在成交之后崩溃,程序下一轮又尝试重新买入。
这也是 Mac 版本里出现过的问题。

  • 对剩下的股票,使用 yfinance 拉取 5 分钟 K 线,并执行 rules.json 里的 6 个过滤条件:
D1-D3 日线过滤
I1-I3 盘中过滤
  • 对于每一个通过筛选的股票,计算:
initial_stop = low_of_day * 0.99
R = price - initial_stop
risk_dollars = PORTFOLIO_VALUE_USD * (MAX_RISK_PER_TRADE_PCT / 100)
size = min(
    floor(risk_dollars / R),
    floor(PORTFOLIO_VALUE_USD * 0.10 / price)
)

如果:

size < 1

就跳过。

  • 启动子进程:
python trade.py --symbol X --side BUY --size N

子进程超时时间为 30 秒。

如果执行成功,就为刚买入的数量放置保护性止损单 StopOrder,并记录:

stop_order_id

然后把该持仓追加到持仓列表里。


9. 保存最终状态,断开连接并退出

保存最终的持仓状态,断开 IBKR 连接,然后退出。


日志记录

把每一个决策都追加写入:

safety-check-log.json

格式是每行一个 JSON 对象。

需要记录的内容包括:

跳过的入场
移动的止损
退出的持仓
强制平仓

在写入之前,先把所有 numpy bool 转换成 Python 原生的:

bool()

失败处理

  • 如果 main() 中出现任何未处理异常:

把 traceback 错误堆栈写入:

logs/cycle_errors.log

然后干净地断开 IBKR 连接,并以状态码 1 退出。

不要静默崩溃。

  • 如果 IBKR 连接失败,等待 5 秒后重试一次。
    如果仍然失败,就以状态码 1 退出。

限制条件

  • 只能使用:
ib_async
  • cycle.py 连接 IBKR 时使用:
IBKR_CLIENT_ID

也就是和 trade.py 的:

IBKR_EXEC_CLIENT_ID

分开使用。

  • 子进程超时时间为:
30 秒

创建文件之后:

打印:

READY: run `python cycle.py` to test. Outside market hours it will exit in <1s, that is correct.

中文意思是:

准备好了:运行 `python cycle.py` 进行测试。在非交易时段,它会在 1 秒内退出,这是正常的。

不要你自己运行任何东西。

 

 

 

提示词9: Telegram 推送通知

为现有的 IBKR 模拟交易机器人 添加 Telegram 推送通知

凭证:

我的机器人 Token 和 Chat ID 已经保存在当前目录的 .env 文件中。如果还没有env文件,你就创建一个。

请读取以下两个环境变量:

TELEGRAM_BOT_TOKEN
TELEGRAM_CHAT_ID

不要把机器人 Token 的具体内容打印到终端,也不要写入任何可能被提交到代码仓库的文件中。


前置检查

  1. 确认以下文件存在:
bot.py
cycle.py
morning_prefilter.py
src/__init__.py

如果不存在,就停止。

  1. 确认已经安装 requests
python -c "import requests"

如果没有安装,就停止,并告诉我运行:

pip install requests
  1. 确认 src/notify.py 还不存在。

创建一个新文件

创建文件:

src/notify.py

要求如下:

  • 在模块顶部,通过 python-dotenv 从环境变量中加载:
TELEGRAM_BOT_TOKEN
TELEGRAM_CHAT_ID
NOTIFY_URL
  • 只创建一个函数:
def notify(title: str, body: str, priority: str = "default") -> None
  • 如果 TELEGRAM_BOT_TOKENTELEGRAM_CHAT_ID 都已经设置:

向下面这个 Telegram API 地址发送 POST 请求:

https://api.telegram.org/bot{token}/sendMessage

参数包含:

chat_id
text=f"*{title}*\n{body}"
parse_mode="Markdown"

请求超时时间为 5 秒

  • 如果设置了 NOTIFY_URL,也就是 ntfy 作为备用通知方式:

向该 URL 发送 POST 请求,内容为:

body=body

请求头为:

headers={"Title": title, "Priority": priority}

请求超时时间也是 5 秒

  • 两种通知方式都要用 try/except 包起来。
  • 如果出现异常,把异常写入:
logs/notify_errors.log

但绝对不要抛出异常。

也就是说,这是 fire-and-forget 模式:
只负责尝试发送通知,失败也不能影响主程序。


修改 morning_prefilter.py

保留所有现有逻辑,只添加通知调用。

main() 结束时,如果没有设置 --dry-run

成功时发送通知:

notify(
    f"Prefilter {hh:mm ET}",
    "{N}/503 survivors in {elapsed}s\n" + bullet list of top 20 survivors with their gap %,
    "default"
)

意思是:

发送早盘预筛选结果,比如:

Prefilter 09:35 ET
12/503 survivors in 8.2s
- AAPL +3.45%
- NVDA +4.12%
...

失败时发送通知:

notify(
    f"Prefilter FAILED {hh:mm ET}",
    error_message,
    "high"
)

触发降级警报时:

发送通知,priority="high",内容为对应的警报信息。


修改 cycle.py

保留所有现有逻辑,只在下面这些事件发生时添加通知:

新开仓时:

notify(
    f"BUY {symbol}",
    f"@ ${price:.2f}, stop ${stop:.2f}, qty {qty}",
    "default"
)

中文意思:

买入某个股票,显示成交价、止损价和数量。


止损出场时:

notify(
    f"STOP {symbol}",
    f"exit ${price:.2f}, P&L ${pnl:+.2f}",
    "default"
)

中文意思:

某个股票触发止损,显示退出价格和盈亏。


到达 0.75R 部分止盈时:

notify(
    f"PARTIAL {symbol}",
    f"sold {sold}/{total} @ ${price:.2f}",
    "default"
)

中文意思:

部分止盈,显示卖出数量、总数量和成交价。


移动到保本止损时:

notify(
    f"BE {symbol}",
    f"stop -> ${new_stop:.2f}",
    "default"
)

这里的 BEBreakeven,意思是 保本

中文意思:

该股票止损已经移动到保本位置。


止损上移时:

notify(
    f"TRAIL {symbol}",
    f"stop ${old:.2f} -> ${new:.2f}",
    "default"
)

中文意思:

追踪止损上移,从旧止损价移动到新止损价。


收盘前强制平仓开始时:

notify(
    "EOD Force Close",
    f"flattening {N} positions",
    "high"
)

这里的 EODEnd of Day,意思是 当日结束 / 收盘前

中文意思:

收盘前强制平仓,正在清空 N 个持仓。


出现未处理异常时:

notify(
    "Cycle CRASHED",
    str(exc)[:500],
    "high"
)

中文意思:

交易循环脚本崩溃,发送错误信息,最多发送前 500 个字符。


限制条件

  • 每一个 notify() 调用都必须包起来,确保通知失败不会影响交易逻辑。
  • 不要修改任何交易逻辑,只能添加通知相关代码。
  • 不要在任何地方打印 Telegram Token 或 Chat ID。

修改完成后

打印下面这句话:

READY: set TELEGRAM_BOT_TOKEN and TELEGRAM_CHAT_ID in .env, then test with: python -c "from src.notify import notify; notify('Test', 'Hello')"

中文意思是:

准备好了:在 .env 里设置 TELEGRAM_BOT_TOKEN 和 TELEGRAM_CHAT_ID,然后用下面命令测试:
python -c "from src.notify import notify; notify('Test', 'Hello')"

不要你自己运行任何东西。

 

 

以下内容不用再复制

 

如果你还没有盈透证券账户,可以先通过下面这个链接注册:

👉 IB盈透证券:美股投资神器,全球顶级券商
注册链接:https://ibkr.com/referral/gan760

如果你也做加密货币交易,可以使用币安或欧易:

👉 Binance币安:全球最大的加密货币交易所
注册链接:https://bit.ly/3PF8egr
减免20%交易手续费,邀请码:BFCYEW71

👉 OKX欧易:中文支持比较好的比特币交易所
注册链接:https://www.lywebuuz.com/join/88576911
减免20%交易手续费,邀请码:88576911


一、这个AI自动交易机器人可以做什么?

这套系统的目标,不是让AI替你凭空赚钱,而是把你原本手动做的交易流程自动化。

比如你每天早上要做这些事情:

查看哪些股票跳空高开;
筛选哪些股票符合你的策略;
判断是否满足进场条件;
下单、设置止损止盈;
盘中定期检查市场;
把机会或交易结果推送到手机。

这些步骤如果全部靠人工做,会很累,也容易漏掉机会。而AI交易机器人可以按照你提前设定好的规则,每隔一段时间自动扫描市场,并把结果发送给你。视频脚本里也提到,这个机器人可以每30分钟扫描一次市场,并把结果和提醒发送到手机。

但这里一定要先说清楚:

AI不是印钞机。

Claude AI、ChatGPT、Python、IBKR API,本质上都是工具。它们可以帮你提高效率,但不能替你创造交易优势。如果你的策略本身没有优势,机器人只会让你更快、更稳定地亏钱。视频里也强调,AI只是放大器,真正的优势还是来自交易策略本身。

所以这篇教程更适合这类人:

已经有自己的交易策略;
想把策略自动化;
想学习IBKR API自动交易;
想用Claude AI辅助写Python代码;
想搭建股票扫描器、下单机器人、Telegram提醒系统。


二、需要提前准备哪些工具?

在正式开始之前,我们需要准备几个核心工具。

1. 盈透证券 IBKR账户

本教程用到的券商是 盈透证券 Interactive Brokers,也就是IBKR。它支持美股、ETF、期权、期货、外汇等多种市场,也是很多专业交易员和量化交易者常用的券商。

👉 注册IB盈透证券账户
https://ibkr.com/referral/gan760

如果你是新手,建议先使用 Paper Trading模拟账户,不要一上来就用真实资金。视频中也是先登录IB的模拟账户进行测试,等策略和系统跑通以后,再考虑是否接入真实账户。

2. TWS交易者工作站

TWS全称是 Trader Workstation,中文一般叫“交易者工作站”。这是盈透证券的桌面交易软件,也是我们后面连接IBKR API的重要工具。

你需要先下载并安装TWS桌面版,然后登录IBKR模拟账户。

👉 IB盈透证券注册链接
https://ibkr.com/referral/gan760

3. Python环境

Python是这套自动交易机器人的核心编程语言。你不用一开始就会写Python,因为后面可以让Claude帮你生成代码,但你的电脑上必须先安装Python。

👉 Python官方下载地址
https://www.python.org/downloads/

建议安装较新的版本,视频里提到 Python 版本至少要在 3.12 以上。

4. Claude / Claude Code

本教程的核心是用 Claude AI / Claude Code 来协助完成代码编写、环境配置、策略转化、机器人搭建。

👉 Claude官方下载地址
https://claude.com/download

如果你需要Claude会员、ChatGPT会员或其他AI工具账号,也可以看这个平台:

👉 ChatGPT / Claude会员代充、账号购买平台:银河录像局
https://nf.video/C1dxn

Claude Code建议使用付费版本,尤其是涉及代码生成、Python项目搭建、API连接的时候,付费模型的稳定性和上下文能力会更好。


三、第一步:设置盈透证券TWS API权限

打开TWS以后,我们需要先开启API访问权限。这个步骤非常关键,因为如果TWS没有打开API权限,Python和Claude生成的程序就无法连接到IB账户。

大致路径是:

进入TWS以后,点击左上角“文件”;
选择“全局设置”;
找到“API”;
进入“设置”;
勾选“启用 ActiveX 和 Socket 客户端”。

这里有一个重要端口:

7497:IBKR模拟账户 Paper Trading API端口
7496:IBKR真实账户 Live Trading API端口

如果你是新手,一定先用7497模拟交易端口测试,不要直接连接真实账户。

同时,你还需要设置允许本地主机连接,也就是添加:

127.0.0.1

这代表你的Python程序可以从本机连接TWS。

还有一个地方要特别注意:
如果你希望API可以真正下单,就不要勾选“只读API”。视频里也提到,如果勾选只读API,程序只能读取数据,不能执行交易。

设置完成以后,点击应用和确定,然后不要关闭TWS,让它保持运行状态。


四、第二步:用Claude Code连接IBKR API

接下来打开Claude Code,新建一个项目文件夹。以后所有Python代码、配置文件、策略文件,都会保存在这个文件夹里面。

你可以把下面这段提示词发给Claude:

我想把 Claude AI、Python 和盈透证券 IBKR TWS API 连接起来。
我已经有一个 IBKR 模拟交易账户,并且已经在 TWS 里面开启了 API 设置。
请你带我从零完成整个连接流程,包括:
1. 检查Python环境;
2. 安装需要的依赖库;
3. 测试TWS是否正在运行;
4. 测试IBKR API端口是否可以连接;
5. 创建一个最简单的测试脚本;
6. 读取模拟账户信息,确认连接成功。
请一步一步操作,并在每一步告诉我应该做什么。

Claude会开始检查你的Python环境、TWS端口状态,并帮你创建连接IBKR API的基础代码。

如果连接成功,你应该可以读取到模拟账户信息,比如账户净值、购买力、持仓等。视频里也演示了通过Claude查询IB模拟账户持仓、购买力和资金情况,成功读取出来以后,就说明IBKR API已经连通。


五、第三步:测试API是否可以下单

连接成功以后,不要急着做复杂策略。第一步应该先测试API下单功能是否正常。

比如你可以让Claude帮你创建一个模拟订单:

请通过IBKR TWS API,在模拟账户里创建一个测试订单。
股票代码:TSLA
方向:买入
数量:2股
订单类型:限价单
限价:350美元
注意:这是模拟账户测试订单,不是真实交易。
请先让我确认,再提交订单。

这里建议使用限价单,而且价格可以设置得离当前价格远一点,这样主要是测试订单能不能进入TWS,而不是为了真的成交。

在视频演示里,测试订单成功出现在TWS里面,说明Claude生成的Python代码已经可以通过IBKR API把订单发送到盈透证券。

再次提醒:
所有测试都应该先在模拟账户完成,不要直接用真实账户。


六、第四步:把你的交易策略交给Claude AI

完成IBKR API连接以后,下一步就是让Claude AI帮你把交易策略转成程序规则。

这里要注意,AI交易机器人真正能不能发挥作用,关键不是Claude有多聪明,而是你的策略本身有没有逻辑。你可以把自己的交易规则,用自然语言写出来,然后交给Claude帮你转成Python代码。视频里也提到,你可以直接用文字描述自己的交易策略,AI会帮你转成相关规则。

比如你可以这样写:

请帮我创建一个交易策略规则文件。
我的策略是顺势做多策略,只做多,不做空。

交易条件如下:
1. 只交易美股大盘股;
2. 股票当天跳空高开;
3. 开盘后价格保持在VWAP上方;
4. 5分钟K线趋势向上;
5. 回踩后重新突破前高时,作为入场信号;
6. 止损放在信号K线最低点下方;
7. 第一目标位是1R,第二目标位是2R;
8. 如果价格跌破VWAP,或者趋势结构破坏,则平仓离场。

请你把这个策略转成清晰的Python规则文件,并且每一条规则都加上中文注释,方便我以后修改。

这一步的目的,就是让Claude先帮你生成一个“策略大脑”。后面机器人扫描股票、判断机会、决定是否下单,都会根据这个策略文件来执行。

如果你还没有成熟策略,建议不要急着自动化。你可以先用一些专业看盘工具做策略验证:

👉 TradingView:交易投资分析工具,适合日常看盘和回测
链接:https://bit.ly/3QApgwJ

👉 TrendSpider:自动化技术分析平台,适合做技术面扫描
链接:https://bit.ly/4tS9UVK

👉 ATAS:专业订单流与成交量分析软件
链接:https://bit.ly/3PnQhWU

👉 Bookmap:看主力挂单、二级行情、热力图的交易工具
链接:https://bookmap.com/members/aff/go/JDG1


七、第五步:创建配置文件,让机器人知道怎么连接IBKR

策略规则写好以后,还需要一个配置文件。这个配置文件的作用,就是告诉机器人:

IBKR API连接地址;
模拟账户端口;
真实账户端口;
交易时间;
账户设置;
下单限制;
风险控制;
Telegram通知参数。

视频里面也提到,配置文件会保存IB端口、时长限制、账户信息,以及后面要用到的Telegram连接。

你可以给Claude这样的提示词:

请帮我创建一个 config.py 配置文件,用于IBKR API自动交易机器人。

要求:
1. 默认连接模拟账户端口 7497;
2. 保留真实账户端口 7496,但默认不要启用;
3. 设置单笔最大亏损限制;
4. 设置每日最大亏损限制;
5. 设置最大持仓数量;
6. 设置交易时间,只在美股常规交易时段运行;
7. 预留Telegram Bot Token和Chat ID;
8. 所有参数都加中文注释,方便我以后修改。

这里一定要把风险控制放进配置文件里。比如单笔最多亏多少、一天最多亏多少、最多同时持有几只股票,这些都应该提前写死。

否则一旦程序逻辑出错,或者市场突然剧烈波动,机器人可能会连续下单,风险会非常大。

如果你还没有IB账户,可以先注册盈透证券,然后用模拟账户跑通全部流程:

👉 IB盈透证券:美股投资神器,全球顶级券商
链接:https://ibkr.com/referral/gan760


八、第六步:创建股票池,让AI知道扫描哪些股票

自动交易机器人不能漫无目的地扫描整个市场。你需要先告诉它:你到底要交易哪些股票。

视频里面演示的是先创建一个标普500成分股列表,让机器人从大盘股里面寻找机会。这样做的好处是,标普500成分股流动性通常更好,滑点和极端波动相对更容易控制。视频中也提到,机器人会先把股票池限制在标普500成分股里面。

你可以这样告诉Claude:

请帮我创建一个名为 sp500_symbols.py 的Python文件。
请把当前标普500成分股的股票代码整理成一个Python列表,变量名叫 SP500_SYMBOLS。
这个列表后面会用于我的IBKR API股票扫描器。

股票池确定以后,机器人就可以围绕这个范围进行扫描。

如果你做的是美股交易,可以用IBKR作为券商;
如果你做的是加密货币交易,可以使用币安、欧易、Bybit等交易所;
如果你做的是期货交易,可以考虑NinjaTrader等工具。

👉 Binance币安:全球最大的加密货币交易所
链接:https://bit.ly/3PF8egr
减免20%交易手续费,邀请码:BFCYEW71

👉 OKX欧易:中文支持比较好的比特币交易所
链接:https://www.lywebuuz.com/join/88576911
减免20%交易手续费,邀请码:88576911

👉 Bybit:全球领先的合约交易平台
链接:https://bit.ly/3EnpvbB
减免20%交易手续费,邀请码:95292

👉 NinjaTrader:专业期货交易工具
链接:https://ninjatraderdomesticvendor.sjv.io/DyDM3q


九、第七步:创建早盘预筛选脚本

股票池里面可能有几百只股票,如果每一只都实时扫描,效率会比较低。所以更合理的做法是,先做一个早盘预筛选。

比如先筛选出:

当天跳空高开的股票;
成交量明显放大的股票;
价格波动比较活跃的股票;
符合你策略方向的股票。

视频里面演示的是,从标普500成分股里面筛选出跳空高开的前20只或前30只股票,作为当天候选股票。

你可以给Claude这样的提示词:

请帮我创建一个 morning_prefilter.py 早盘预筛选脚本。

要求:
1. 从 sp500_symbols.py 读取股票池;
2. 扫描每只股票的盘前价格;
3. 计算相对昨日收盘价的跳空幅度;
4. 筛选跳空高开超过3%的股票;
5. 按跳空幅度和成交量排序;
6. 最多输出前20只候选股票;
7. 把结果保存成 candidates.json;
8. 同时在终端打印出来,方便我检查。

这样一来,机器人就不是盲目扫描全市场,而是先把可能有机会的股票筛出来,然后再交给后面的交易循环去判断。


十、第八步:创建自动交易循环脚本

到这一步,系统的核心部分基本都准备好了:

IBKR API连接完成;
Claude Code工作环境完成;
交易策略规则完成;
配置文件完成;
股票池完成;
早盘预筛选完成。

接下来就要创建真正的自动交易循环脚本。

这个脚本的作用是:在美股交易时段内,定时扫描候选股票,根据策略条件判断是否进场、是否平仓、是否发送提醒。视频里面也提到,可以让Claude设置一个循环,在交易时段内定期扫描,并根据策略条件决定是否进场下单。

你可以这样写:

请帮我创建一个 cycle.py 自动交易循环脚本。

要求:
1. 只在美股常规交易时段运行;
2. 从 candidates.json 读取候选股票;
3. 每30分钟扫描一次;
4. 根据 strategy.py 里面的策略规则判断是否进场;
5. 如果满足条件,先生成订单计划;
6. 下单前再次检查账户风险限制;
7. 使用IBKR API发送模拟订单;
8. 自动记录每一笔交易日志;
9. 如果触发止损、止盈或平仓条件,要自动退出;
10. 每次扫描结果都发送Telegram通知。

如果你想把TradingView信号、策略提醒或Webhook接进来,也可以考虑使用SignalStack这类自动化信号传送平台:

👉 SignalStack:自动化信号传送平台
链接:https://bit.ly/4q8gxkr

如果你想使用现成的自动化交易机器人,也可以了解:

👉 3Commas:自动化交易机器人
链接:https://bit.ly/4lf0UXb

十一、第九步:添加Telegram手机推送通知

自动交易机器人如果只能在电脑后台运行,其实还不够方便。更好的方式是:每次扫描结果、开仓、平仓、止损、止盈、错误提醒,都可以直接推送到手机上。

这里可以使用 Telegram电报通知。视频里也提到,手机通知主要通过Telegram来实现,机器人每30分钟扫描一次,开仓、平仓、盈利亏损、收盘总结,都可以通过电报发送提醒。

你可以让Claude创建一个通知模块:

请帮我为现有的IBKR自动交易机器人添加Telegram推送通知功能。

要求:
1. 创建一个 notify.py 文件;
2. 从 .env 文件读取 TELEGRAM_BOT_TOKEN 和 TELEGRAM_CHAT_ID;
3. 创建 notify(title, message) 函数;
4. 每次扫描股票时发送候选股票列表;
5. 每次触发进场信号时发送提醒;
6. 每次下单成功或失败时发送提醒;
7. 每次止损、止盈、平仓时发送提醒;
8. 每天收盘后生成当日总结,并发送到Telegram;
9. 所有异常错误也要发送提醒。

这里需要你准备两个东西:

TELEGRAM_BOT_TOKEN
TELEGRAM_CHAT_ID

1. 创建Telegram Bot Token

打开Telegram,搜索:

BotFather

然后点击开始,创建一个新的机器人。创建成功以后,BotFather会给你一串很长的Token,这个就是你的 Telegram Bot Token。视频里也演示了通过BotFather创建机器人,并复制Token。

2. 获取Telegram Chat ID

接下来你需要获取自己的Telegram ID。可以搜索类似:

userinfobot
或者
get id bot

然后把获取到的ID复制下来,填入 .env 文件里面。

视频中也提到,需要把Telegram机器人的Token和ID填到ENV文件里,这样Claude AI和Telegram才能连接起来。

你的 .env 文件可以类似这样:

TELEGRAM_BOT_TOKEN=这里填写你的Telegram机器人Token
TELEGRAM_CHAT_ID=这里填写你的Telegram用户ID
IBKR_HOST=127.0.0.1
IBKR_PORT=7497
ACCOUNT_MODE=paper

配置好以后,让Claude测试一下:

请帮我测试Telegram通知是否正常。
如果连接成功,请发送一条消息到我的Telegram:
IBKR AI交易机器人连接成功。

如果手机收到消息,就说明通知系统已经打通了。视频里也演示了测试Telegram连接,成功收到“IB连接成功”之类的消息,说明整个提醒流程已经正常。


十二、这套AI交易机器人适合哪些人?

这套 Claude AI + IBKR API + Python自动交易机器人,最适合以下几类人:

第一类,是已经有成熟交易策略的人。
比如你每天都会按照固定规则做美股、ETF、期货或期权交易,那么你可以让AI帮你把重复动作自动化。

第二类,是想学习量化交易的人。
你可以通过这个项目理解:股票扫描器、策略判断、API下单、风控、日志记录、通知系统,到底是怎么连接起来的。

第三类,是想用AI提高效率的交易者。
Claude AI不是替你赚钱,而是帮你节省时间。它可以帮你写代码、整理规则、生成脚本、检查错误、优化流程。

第四类,是内容创作者或技术爱好者。
如果你想做AI交易、量化交易、自动交易机器人相关内容,这个项目本身也非常适合做成教程、博客文章或YouTube视频。

如果你准备跟着实操,建议先准备下面这些工具:

👉 IB盈透证券:美股投资神器,全球顶级券商
https://ibkr.com/referral/gan760

👉 Python官方下载地址
https://www.python.org/downloads/

👉 Claude官方下载地址
https://claude.com/download

👉 ChatGPT / Claude会员代充、账号购买平台:银河录像局
https://nf.video/C1dxn

👉 TradingView:交易投资分析工具,必备看盘软件
https://bit.ly/3QApgwJ


十三、做自动交易之前,一定要注意风险

很多新手一听到“AI交易机器人”“自动下单”“量化交易”,就会觉得好像只要搭建好系统,就可以躺着赚钱。

这个想法非常危险。

AI交易机器人只能执行规则,不能保证盈利。视频最后也强调,本期内容不是说AI可以让你躺着赚钱,而是告诉你,AI可以把交易流程自动化,但不能替你创造交易优势。

所以在真实使用前,一定要做到这几点:

第一,先用模拟账户测试。
IBKR提供Paper Trading模拟账户,建议至少跑几周,甚至几个月,再考虑真实账户。

第二,先小资金测试。
不要一开始就让机器人管理大资金。即使模拟账户跑得不错,真实市场也可能出现滑点、延迟、断线、订单异常等问题。

第三,必须设置风控。
比如单笔最大亏损、每日最大亏损、最大持仓数量、最大下单金额,这些都要写进配置文件。

第四,不要完全相信AI生成的代码。
Claude写出来的代码一定要测试。尤其是下单、止损、仓位管理这些部分,必须反复检查。

第五,不要把演示策略当成投资建议。
教程里的策略只是技术演示,不代表一定能赚钱。真正交易时,一定要使用你自己验证过的策略。


十四、如果你做不同市场,可以搭配这些工具

如果你主要交易美股和ETF,核心工具可以是:

👉 IB盈透证券:美股投资神器,全球顶级券商
https://ibkr.com/referral/gan760

👉 TradingView:交易投资分析工具
https://bit.ly/3QApgwJ

👉 TrendSpider:自动化技术分析平台
https://bit.ly/4tS9UVK

如果你做期货,可以考虑:

👉 NinjaTrader:专业期货交易工具
https://ninjatraderdomesticvendor.sjv.io/DyDM3q

👉 Bookmap:看主力挂单、二级行情、热力图的交易工具
https://bookmap.com/members/aff/go/JDG1

👉 ATAS:专业订单流与成交量分析软件
https://bit.ly/3PnQhWU

如果你做期权,可以搭配:

👉 OptionStrat:美股期权交易必备工具
https://optionstrat.com/bitguy

如果你做加密货币,可以使用:

👉 Binance币安:全球最大的加密货币交易所
https://bit.ly/3PF8egr
减免20%交易手续费,邀请码:BFCYEW71

👉 OKX欧易:中文支持比较好的比特币交易所
https://www.lywebuuz.com/join/88576911
减免20%交易手续费,邀请码:88576911

👉 Bybit:全球领先的合约交易平台
https://bit.ly/3EnpvbB
减免20%交易手续费,邀请码:95292

👉 GMGN链上交易平台:功能全面,上手比较顺
https://gmgn.ai/r/BEagnzYd

如果你想做自动化信号传送或交易机器人,可以了解:

👉 SignalStack:自动化信号传送平台
https://bit.ly/4q8gxkr

👉 3Commas:自动化交易机器人
https://bit.ly/4lf0UXb

十五、常见问题FAQ

1. Claude AI真的可以帮我自动交易吗?

可以,但准确地说,Claude AI不是直接替你交易,而是帮你完成自动交易系统的搭建。

它可以帮你写Python代码、连接IBKR API、创建股票扫描器、把交易策略转成规则、生成下单脚本、添加Telegram提醒。但真正执行交易的,还是你的交易规则、Python程序和盈透证券TWS API。

所以更准确的说法是:

Claude AI负责辅助开发,IBKR API负责连接券商,Python负责执行交易逻辑。


2. 这套系统可以直接用真实账户交易吗?

技术上可以,但不建议新手一开始就这样做。

正确流程应该是:

先用IBKR Paper Trading模拟账户;
确认API连接正常;
确认订单可以正确进入TWS;
确认策略判断没有问题;
确认止损止盈逻辑正常;
确认Telegram提醒正常;
最后再考虑小资金实盘测试。

👉 IB盈透证券:美股投资神器,支持模拟账户测试
https://ibkr.com/referral/gan760


3. 我不会Python,可以跟着做吗?

可以,但你至少要理解基本逻辑。现在Claude Code可以帮你生成大量代码,很多地方不需要你手写。但你还是要知道每个文件大概是做什么的。

比如:

config.py 是配置文件;
strategy.py 是策略规则;
sp500_symbols.py 是股票池;
morning_prefilter.py 是早盘预筛选;
cycle.py 是自动交易循环;
notify.py 是Telegram通知模块。

你不一定要从零写代码,但一定要能看懂大概流程。否则程序一旦报错,你不知道哪里出了问题。

👉 Python官方下载地址
https://www.python.org/downloads/

👉 Claude官方下载地址
https://claude.com/download

👉 ChatGPT / Claude会员代充、账号购买平台:银河录像局
https://nf.video/C1dxn


4. IBKR API、TWS API、Interactive Brokers API有什么区别?

这几个词很多新手容易混在一起。

IBKR 是 Interactive Brokers 的简称,也就是盈透证券。
Interactive Brokers API 是盈透证券提供的接口。
TWS API 是通过盈透证券桌面版TWS进行连接的API。
IBKR API 通常是大家口语里对盈透证券API的统称。

在这个教程里,我们主要使用的是:

盈透证券 TWS + Python + IBKR API连接方式。


5. 这个机器人可以交易加密货币吗?

本篇教程主要是围绕 盈透证券IBKR API 来做美股自动交易。如果你想做加密货币自动交易,逻辑类似,但需要换成交易所API,比如币安、欧易、Bybit。

👉 Binance币安:全球最大的加密货币交易所
https://bit.ly/3PF8egr
减免20%交易手续费,邀请码:BFCYEW71

👉 OKX欧易:中文支持比较好的比特币交易所
https://www.lywebuuz.com/join/88576911
减免20%交易手续费,邀请码:88576911

👉 Bybit:全球领先的合约交易平台
https://bit.ly/3EnpvbB
减免20%交易手续费,邀请码:95292

👉 GMGN链上交易平台:功能全面,上手比较顺
https://gmgn.ai/r/BEagnzYd


6. 我能不能把TradingView信号接到自动交易机器人?

可以。一个常见做法是:
TradingView负责发出策略信号,Webhook负责传递信号,自动化平台或Python程序负责接收信号,然后再执行下单。

如果你不想自己写完整的Webhook系统,可以考虑使用SignalStack这类自动化信号传送工具。

👉 TradingView:交易投资分析工具,必备看盘软件
https://bit.ly/3QApgwJ

👉 SignalStack:自动化信号传送平台
https://bit.ly/4q8gxkr

👉 3Commas:自动化交易机器人
https://bit.ly/4lf0UXb


十六、SEO关键词布局建议

如果你准备把这篇文章发布到网站上,建议重点布局这些关键词:

Claude AI自动交易
Claude Code量化交易
IBKR API教程
盈透证券API教程
Interactive Brokers API
Python自动交易机器人
AI交易机器人
IBKR自动下单
盈透证券自动交易
美股量化交易教程
AI看盘工具
自动交易Bot
Telegram交易提醒
TradingView自动交易
Python量化交易入门

文章标题可以使用:

Claude AI接入盈透证券IBKR API:从0搭建AI自动交易机器人完整教程

SEO描述可以写:

本教程教你如何用Claude AI、Python和盈透证券IBKR API搭建AI自动交易机器人,实现股票扫描、策略判断、自动下单、止损止盈和Telegram手机提醒,适合想学习美股量化交易和自动交易的新手。


十七、总结:AI不能替你赚钱,但可以帮你自动化交易流程

这套系统的核心逻辑其实很简单:

先有交易策略;
再用Claude AI帮你转成代码;
用Python连接IBKR API;
用TWS执行模拟交易;
用股票扫描器寻找机会;
用自动循环脚本执行策略;
用Telegram把结果推送到手机。

这就是一套完整的 Claude AI + IBKR API + Python自动交易机器人 流程。

但最后还是要提醒一次:
AI不能替你创造交易优势,它只能帮你执行和放大你的交易规则。

如果你的策略没有经过验证,自动交易只会让亏损来得更快。
如果你的策略本身有优势,AI才有可能帮你节省时间,提高执行效率,减少人工盯盘的压力。

想跟着教程实操,可以先准备好下面这些工具:

👉 IB盈透证券:美股投资神器,全球顶级券商
https://ibkr.com/referral/gan760

👉 Python官方下载地址
https://www.python.org/downloads/

👉 Claude官方下载地址
https://claude.com/download

👉 TradingView:交易投资分析工具,必备看盘软件
https://bit.ly/3QApgwJ

👉 ATAS:专业订单流与成交量分析软件
https://bit.ly/3PnQhWU

👉 Bookmap:看主力挂单、二级行情、热力图的交易工具
https://bookmap.com/members/aff/go/JDG1

👉 NinjaTrader:专业期货交易工具
https://ninjatraderdomesticvendor.sjv.io/DyDM3q

如果你是做加密货币交易,可以使用:

👉 Binance币安:全球最大的加密货币交易所
https://bit.ly/3PF8egr
减免20%交易手续费,邀请码:BFCYEW71

👉 OKX欧易:中文支持比较好的比特币交易所
https://www.lywebuuz.com/join/88576911
减免20%交易手续费,邀请码:88576911

👉 Bybit:全球领先的合约交易平台
https://bit.ly/3EnpvbB
减免20%交易手续费,邀请码:95292

最后一句话总结:

普通交易者想用AI做自动交易,一定要先有策略,再谈自动化。

© 版权声明

相关文章