关于 trading-alert-scheduler
trading-alert-scheduler 是面向交易者的盘前市场扫描与持仓检查工作流,每日汇总自选股和 IBKR 持仓。它结合交易信号分析框架,将高置信度设置及风险提醒整理为一份优先级摘要,并避免盘中提醒。
主要功能
- 01盘前扫描自选股与 IBKR 持仓
- 02结合五种方法评估技术信号
- 03识别市场状态并筛选高置信度设置
- 04检查期权 Greeks、到期与仓位风险
- 05生成每日优先级交易摘要
适用场景
- 01开盘前集中查看市场与持仓状况
- 02从自选股中筛选值得关注的交易设置
- 03发现临近到期或接近最大亏损的仓位
- 04减少工作时段的盘中盯盘
MCP 相关
该工作流通过 IBKR MCP server 查询投资组合、账户摘要、保证金需求等持仓数据;IBKR 未连接时可跳过该部分。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ scientiacapital/ skills --skill trading-alert-scheduler安装后在 Claude Code 中输入/trading-alert-scheduler确认已加载。
附带文件config.jsonreference/watchlist.json
详细介绍
目标:每天节省 30 分钟,并减少在每天拨打 50 通电话时因不盯盘而错过的交易机会。
<quick_start> 每日自动运行(中部标准时间上午 7 点/东部标准时间上午 8 点——距开盘还有 1.5 小时): 计划任务扫描所有关注列表中的代码和未平仓头寸 → 发送摘要
按需运行: “market digest” → 立即运行完整扫描 “what's setting up” → 仅筛选高确信度的交易机会 “check my positions” → 仅检查 IBKR 投资组合的健康状况
触发短语:
- “market digest”/“trading alerts”/“pre-market scan”
- “watchlist check”/“what's setting up”
- “trading morning brief”/“market open prep”
- “check my positions”/“position health” </quick_start>
<success_criteria>
- 扫描所有关注列表中的代码,并进行市场状态和技术分析
- 检查 IBKR 未平仓头寸的风险、到期日和 Greeks 健康状况
- 将高确信度交易机会(一致性评分 ≥ 0.7)置于摘要顶部
- 标记头寸风险警报(接近最大亏损、临近到期、被指派风险)
- 摘要可在 3 分钟内浏览完毕
- 不受盘中打扰——每日阅读一次即可掌握所有信息
- 与手动检查相比,减少错过交易机会的情况 </success_criteria>
架构
SCHEDULED (7am CST) ANALYSIS OUTPUT
──────────────────────────────────────────────────────────────────────
Watchlist tickers → Regime detection (Markov) → Daily Digest
IBKR open positions → Technical scan (5 methods) → Action List
Market internals → Options flow anomalies → Position Alerts
Economic calendar → Greeks/risk check positions → Risk Dashboard
阶段 1:数据收集
1a. 关注列表中的代码
Tim 的默认关注列表(在 reference/watchlist.json 中更新):
核心持仓: SPY、QQQ、IWM、TLT、GLD、SLV、USO、VIX 个股: AAPL、MSFT、NVDA、TSLA、AMZN、META、GOOG、AMD、PLTR、COIN 加密货币代理标的: BITO、MSTR 行业 ETF: XLF、XLE、XLK、ARKK、SMH
对每个代码,使用网页搜索获取:
- 当前价格和盘前涨跌幅
- 过去 5 天的价格走势摘要
- 成交量相对于平均水平的情况
- 关键支撑位/阻力位
- 隔夜新闻/催化因素
1b. IBKR 投资组合持仓
使用 IBKR MCP 服务工具(ArjunDivecha/ibkr-mcp-server,安装路径为 ~/Desktop/tk_projects/ibkr-mcp-server/):
| 工具 | 获取的数据 |
|---|---|
get_portfolio | 所有账户的未平仓头寸和盈亏(Roth IRA、个人经纪账户、THK Enterprises) |
get_account_summary | 余额、保证金使用率、购买力、可用现金 |
switch_account | 在不同账户间切换,以查看各账户数据 |
get_margin_requirements | 每个头寸当前的保证金要求 |
前提条件: IB Gateway 必须运行在端口 7497(模拟账户)或 7496(实盘账户)。 如果未连接 IBKR: 跳过此部分——网页搜索可提供市场数据。投资组合部分显示“IBKR 未连接——启动 IB Gateway 以启用投资组合检查。”
1c. 市场内部指标
通过网页搜索获取:
- 标普 500 涨跌家数
- VIX 水平和期限结构(正价差/逆价差)
- 看跌/看涨期权比率
- 10 年期美国国债收益率
- DXY(美元指数)
- 联邦基金期货(利率预期)
- 今日经济日历事件
阶段 2:分析(使用 trading-signals 框架)
2a. 市场状态识别
对 SPY(市场代理标的)运行 Markov 7 状态市场状态模型:
| 状态 | 描述 | 策略倾向 |
|---|---|---|
| 0 | 强势牛市 | 偏多,卖出看跌期权 |
| 1 | 温和牛市 | 偏多,备兑看涨期权 |
| 2 | 弱势牛市/盘整 | 中性,铁鹰式策略 |
| 3 | 转换期/震荡 | 减小仓位,等待 |
| 4 | 弱势熊市 | 对冲,减少多头仓位 |
| 5 | 温和熊市 | 偏空,买入看跌期权 |
| 6 | 崩盘/高波动 | 保护模式,VIX 策略 |
2b. 按股票代码进行技术扫描
针对观察名单中的每个股票代码,使用 5 种方法评分:
| 方法 | 信号 | 权重(经市场状态调整) |
|---|---|---|
| 艾略特波浪 | 波浪位置 + 预测目标 | 20-30% |
| 威科夫 | 吸筹/派发阶段 | 15-25% |
| 斐波那契 | 关键回撤/扩展位 | 15-20% |
| 海龟交易法 | 唐奇安通道突破信号 | 10-20% |
| 马尔可夫市场状态 | 适合市场状态的策略 | 20-30% |
共振评分: 各方法的加权平均值
- ≥ 0.7:高 — 标记为可执行的交易机会
- 0.4-0.7:中等 — 纳入观察名单,注明触发价位
- < 0.4:低 — 不采取行动,不纳入简报
2c. 期权流扫描
针对持有期权头寸或共振度较高的股票代码:
- 特定行权价的异常成交量(> 平均值的 2 倍)
- 看跌/看涨期权比率变化
- 隐含波动率排名(IVR)——权利金是偏高还是偏低?
- 未来 14 天内的财报日期
2d. 持仓健康检查
针对每笔未平仓的 IBKR 持仓(通过 get_portfolio + get_account_summary):
| 检查项 | 警报阈值 |
|---|---|
| 距到期天数 | 期权剩余 < 7 DTE → 决定展期/平仓 |
| Delta 敞口 | 投资组合 Delta > ±50 → 需要对冲 |
| 接近最大亏损 | 持仓亏损 > 最大亏损的 50% → 进行管理 |
| 指派风险 | 临近到期的价内卖出期权 → 平仓或展期 |
| Theta 衰减 | 投资组合整体 Theta 是否为正? |
| 保证金使用率 | > 50% → 降低风险 |
| 持仓集中度 | 任一单笔持仓 > 投资组合的 15% → 标记 |
阶段 3:输出 — 每日交易简报
╔══════════════════════════════════════════════════════════════╗
║ TRADING DIGEST — [Date] | Pre-Market ║
║ Market Regime: [STATE] | VIX: [level] | Futures: [ES move] ║
╠══════════════════════════════════════════════════════════════╣
MARKET OVERVIEW:
- ES Futures: [+/-X.XX%] | NQ: [+/-X.XX%]
- VIX: [level] ([contango/backwardation])
- 10Y: [yield] | DXY: [level]
- Key event today: [economic calendar item]
═══════════════════════════════════════════════════════════════
🎯 HIGH-CONVICTION SETUPS (confluence ≥ 0.7):
1. [TICKER] — [Direction] | Confluence: [0.XX]
Setup: [description — e.g., "Wyckoff spring at $185 support,
Elliott wave 3 launching, Turtle breakout confirmed"]
Entry: $[XX.XX] | Target: $[XX.XX] | Stop: $[XX.XX]
Options play: [specific strategy — e.g., "Apr 190C @ $3.20,
delta 0.45, 3:1 R:R"]
Why: [1-2 sentence reasoning]
2. [TICKER] — [Direction] | Confluence: [0.XX]
...
═══════════════════════════════════════════════════════════════
⚠️ POSITION ALERTS (action needed):
1. [TICKER] [STRIKE] [EXPIRY] — [ALERT TYPE]
Current P&L: [+/-$XXX] | Days to expiry: [X]
Recommended action: [ROLL to [new strike/expiry] | CLOSE | HOLD]
Why: [reason]
═══════════════════════════════════════════════════════════════
👀 WATCHLIST (confluence 0.4-0.7, not yet actionable):
| Ticker | Direction | Confluence | Trigger Level | Note |
|--------|-----------|------------|---------------|------|
| NVDA | Long | 0.55 | Break $950 | Needs volume confirm |
| TLT | Long | 0.48 | Hold $88 | Rate decision Thurs |
═══════════════════════════════════════════════════════════════
📊 PORTFOLIO SNAPSHOT:
| Account | Value | Day P&L | Margin Used |
|---------|-------|---------|-------------|
| Roth IRA | $XX,XXX | +/-$XXX | N/A |
| Personal | $XX,XXX | +/-$XXX | XX% |
| Business | $XX,XXX | +/-$XXX | XX% |
Net Delta: [+/-XX] | Net Theta: [+/-$XX/day] | IVR avg: [XX%]
═══════════════════════════════════════════════════════════════
📅 THIS WEEK:
- [Earnings/events that affect watchlist]
- [Fed speakers / economic data]
- [Options expiration dates]
╚══════════════════════════════════════════════════════════════╝
规则
- 不发盘中提醒。 此任务每天早上 7 点运行一次。Tim 查看后做出决定,然后专注于 BDR 工作。
- 只提供可执行信息。 不要列出 30 个信号为“中性”的股票代码。只呈现需要关注的内容。
- 优先管理持仓。 先提醒现有持仓,再介绍新的交易机会。
- 始终进行风险管理。 每个交易机会都要包含止损位。始终显示投资组合 Delta/保证金。
- 严格执行 2% 规则。 如果任何建议交易的投资组合风险超过 2%,则标记出来。
- 15% 集中度规则。 如果任何持仓超过账户的 15%,则标记出来。
必需工具
- Web 搜索: 盘前数据、新闻、经济日历、期权流(主要数据来源)
- IBKR MCP(
ArjunDivecha/ibkr-mcp-server):get_portfolio、get_account_summary、switch_account、get_market_data、get_historical_data、get_margin_requirements、check_shortable_shares、get_borrow_rates、short_selling_analysis、get_connection_status — 需要 IB Gateway 运行在端口 7497(模拟盘)或 7496(实盘)。如果未连接,则通过 Web 搜索获取市场数据。 - 调度: 为按会话运行的中部标准时间(CST)早上 7 点任务设置 CronCreate
"53 6 * * 1-5"(自动过期时间为 3 天)
数据来源(通过 Web 搜索)
- Yahoo Finance / TradingView:价格数据、技术指标
- CBOE:VIX、看跌/看涨比率
- CME:期货、美联储基金利率
- Finviz:筛选器、市场内部指标
- Unusual Whales / Barchart:期权流
写入结果 Sidecar
最后一步,将内容写入 ~/.claude/skill-analytics/last-outcome-trading-alert-scheduler.json:
{"ts":"[UTC ISO8601]","skill":"trading-alert-scheduler","version":"1.0.0","variant":"default",
"status":"[success|partial|error]","runtime_ms":[estimated ms from start],
"metrics":{"alerts_generated":[n],"tickers_scanned":[n],"regime_changes":[n]},
"error":null,"session_id":"[YYYY-MM-DD]"}
如果部分阶段失败但仍生成了结果,则使用状态 "partial"。只有未生成任何输出时才使用 "error"。