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(盈透证券)、Python 和 Claude 连接到一起。我已经有一个 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 模拟交易机器人 创建配置文件。
前置检查:
- 确认当前目录中已经存在
rules.json文件,也就是第 4 步创建的文件。
如果不存在,就停止操作。- 确认以下这些文件都不存在:
.env、.gitignore、requirements.txt。
如果其中任何一个已经存在,就停止操作,并让我先清理它们。
只创建下面这 3 个文件,并且内容必须完全一致:
1.
.envIBKR_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.txt3.
requirements.txt不要指定版本号。
ib_async python-dotenv pandas numpy yfinance requests
创建文件之后:
打印当前文件树。
打印下面这句话:
已准备好进入第 6 步:构建机器人代码不要运行任何东西。
提示词6:标普500股票代码列表
帮我创建一个名为
SP500_TICKERS的 Python 列表,也就是“标普500股票代码列表”,然后把当前标普500成分股的所有股票代码都放进去。
提示词7:早盘预筛选脚本
为当前目录中的 IBKR 模拟交易机器人 创建一个 早盘预筛选脚本。
前置检查:
- 确认
src/sp500_tickers.py存在,并且里面有一个SP500_TICKERS列表。
如果不存在,就停止。- 确认已经安装了
yfinance:python -c "import yfinance"如果没有安装,就停止,并告诉我运行:
pip install yfinance
- 确认
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
逻辑按以下顺序执行:
- 把 IBKR 的股票代码格式转换成 Yahoo 格式:
"BRK B"转换成"BRK-B"。- 调用:
yf.download( tickers=" ".join(yahoo_tickers), period="2d", interval="1d", group_by="ticker", threads=5, progress=False, auto_adjust=True, )重要:
这里必须使用threads=5,不要用10。
因为在 Windows 任务计划程序里运行时,更高的并发数可能会耗尽文件描述符。
- 对每个股票代码:
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
- 按
gap_pct从高到低排序通过筛选的股票。
最多保留MAX_SURVIVORS个。- 如果没有设置
--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 ...
- 向标准输出打印一个 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 模拟交易机器人 创建一个 自动交易循环脚本。
前置检查:
- 确认以下文件都存在:
bot.py trade.py strategy.py rules.json morning_prefilter.py src/sp500_tickers.py src/ibkr_client.py
- 确认
watchlist.txt存在。
如果不存在,就告诉我先运行:python morning_prefilter.py然后停止。
- 确认
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 的具体内容打印到终端,也不要写入任何可能被提交到代码仓库的文件中。
前置检查
- 确认以下文件存在:
bot.py cycle.py morning_prefilter.py src/__init__.py如果不存在,就停止。
- 确认已经安装
requests:python -c "import requests"如果没有安装,就停止,并告诉我运行:
pip install requests
- 确认
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_TOKEN和TELEGRAM_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" )这里的
BE是 Breakeven,意思是 保本。中文意思:
该股票止损已经移动到保本位置。
止损上移时:
notify( f"TRAIL {symbol}", f"stop ${old:.2f} -> ${new:.2f}", "default" )中文意思:
追踪止损上移,从旧止损价移动到新止损价。
收盘前强制平仓开始时:
notify( "EOD Force Close", f"flattening {N} positions", "high" )这里的
EOD是 End 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做自动交易,一定要先有策略,再谈自动化。