关于 trader-alerts
trader-alerts 是面向交易者的价格与时间提醒技能,可追踪价格阈值、交易时段和计划中的退出时间。提醒只报告事件,不会下单、取消或修改订单。
主要功能
- 01监测止损、目标价和百分比变动
- 02按纽约时间触发提醒
- 03从交易计划创建提醒
- 04从报价文件读取或离线检查
- 05每条规则仅响一次并记录状态
适用场景
- 01为计划中的交易设置止损和目标提醒
- 02在交易日结束前提醒检查未平仓头寸
- 03查看 NYSE 开市状态和下一次开市时间
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ jakeschincariol/ day-trader-skill --skill trader-alerts安装后在 Claude Code 中输入/trader-alerts确认已加载。
附带文件alerts.example.jsonalerts.py
详细介绍
trader-alerts
价格提醒会替用户盯着数字,无需一直盯着图表。提醒只传递信息,绝不是订单:止损提醒响起时,此工具不会卖出任何东西。使用括号订单时,止损和止盈已在经纪商处设置并自动执行;提醒会告知用户发生了什么,以及何时该平仓。
下面的 ${CLAUDE_SKILL_DIR} 是此技能的文件夹(即 SKILL.md 所在的位置)。
python3 "${CLAUDE_SKILL_DIR}/alerts.py" clock # NYSE open or closed, next open
python3 "${CLAUDE_SKILL_DIR}/alerts.py" add --from-plan # stop, target, flat by close from trader/plan.json
python3 "${CLAUDE_SKILL_DIR}/alerts.py" add --opening-bell
python3 "${CLAUDE_SKILL_DIR}/alerts.py" add --symbol TSLA --stop 358.32
python3 "${CLAUDE_SKILL_DIR}/alerts.py" add --symbol TSLA --target 370.04
python3 "${CLAUDE_SKILL_DIR}/alerts.py" add --at 15:55 --label "flat by close" --before-close
python3 "${CLAUDE_SKILL_DIR}/alerts.py" add --symbol KO --pct 3
python3 "${CLAUDE_SKILL_DIR}/alerts.py" check # exit 0 = something rang
python3 "${CLAUDE_SKILL_DIR}/alerts.py" quote TSLA --write # -> trader/prices.json
python3 "${CLAUDE_SKILL_DIR}/alerts.py" quote --holdings --write # portfolio + plan tickers
python3 "${CLAUDE_SKILL_DIR}/alerts.py" list
python3 "${CLAUDE_SKILL_DIR}/alerts.py" reset tsla-plan-stop
--now "2026-10-19 15:55" 用于固定时钟(纽约时间);--offline DIR 会读取保存的报价文件,而非访问网络。
读取和写入的内容
| 文件 | 内容 |
|---|---|
trader/plan.json | 来自 trader-exit 的交易,供 add --from-plan 使用 |
trader/alerts.json | 规则(此文件夹中的 alerts.example.json) |
trader/state/alerts.json | 哪些规则何时响起,以确保每条规则只响起一次 |
trader/prices.json | 合并后的最新报价,供 trader-budget 和 trader-risk 使用 |
trader/portfolio.json | 持有的股票代码,供 quote --holdings 使用 |
规则类型
| 类型 | 触发条件 | 再次触发条件 |
|---|---|---|
above / target | 价格达到或高于 price | 重置后;或者当 "rearm": true 且价格回落时自动重新启用 |
below / stop | 价格达到或低于 price | 同上 |
pct_move | 相对前一收盘价(或 ref)变动了 pct 个百分点;direction 可选,表示上涨或下跌 | 每天最多一次 |
time | 纽约时间超过交易日的 at("15:55") | 每个交易日一次 |
opening_bell | NYSE 开市 | 每个交易日一次 |
带有 "date" 的规则仅在对应的纽约日期监控;--from-plan 规则会沿用计划中的日期,因此昨天的止损今天不会触发。带有 "before_close": true 的 time 规则会在下午 1:00 提前收市时提前 3 小时;因此,在这些日期,"15:55 前平仓" 会在 12:55 触发。
报价
yahoo(默认):query2.finance.yahoo.com/v8/finance/chart/<TICKER>,非官方免费 JSON 端点,每个股票代码请求一次,间隔半秒。遇到 429 时会等待并重试一次;如果再次遇到 429 或 5xx,则改用query1。其标识为day-trader-skill/2.0。stooq:stooq.com/q/l/?s=tsla.us&f=sd2t2ohlcv&h&e=csv,Stooq 的免费 CSV。该服务在 2026-10-13 返回了 404;解析器会保留,以备服务恢复。- 免费报价是非官方且有延迟的,也可能滞后。它们适合用于提醒和核对持仓规模,不适合用于确定下单时机。成交时采用的是经纪商的价格。
trader/prices.json中的每个价格都会保留报价时间,且 trader-risk 只使用 15 分钟以内的报价。 - 如果两者都不可用,请从经纪商连接器读取价格(Alpaca
get_stock_snapshot、IBKRget_price_snapshot),并将其写入trader/prices.json,格式为{"as_of": "...Z", "prices": {"TSLA": 366.48}}。
NYSE 时钟
常规交易时段为纽约时间上午 9:30 至下午 4:00,周末及以下节假日休市;节假日信息来自 nyse.com/markets/hours-calendars(读取于 2026-10-13):
- 2026:1 月 1 日、1 月 19 日、2 月 16 日、4 月 3 日(耶稣受难日)、5 月 25 日、6 月 19 日、7 月 3 日(独立日补休)、9 月 7 日、11 月 26 日、12 月 25 日。11 月 27 日和 12 月 24 日下午 1:00 提前收市。
- 2027:1 月 1 日、1 月 18 日、2 月 15 日、3 月 26 日(耶稣受难日)、5 月 31 日、6 月 18 日(六月节补休)、7 月 5 日(独立日补休)、9 月 6 日、11 月 25 日、12 月 24 日(圣诞节补休)。11 月 26 日下午 1:00 提前收市。
此工具会处理夏令时,因此无需时区文件,并且会忽略计算机自身的时区。对于其他年份,工具会提示节假日列表未知。
步骤
- trader-exit 写入计划后,立即运行
add --from-plan。 向用户确认这三项提醒:止损、目标价和平仓截止时间。 - 交易仍在进行时运行
check:通过 Claude 定时任务或/loop每隔几分钟运行一次。每次运行只获取今日规则中的股票代码,并为每项提醒响铃一次。检查会读取最新的延迟报价;这不是实时行情,价格可能在两次检查之间越过某个价位。 - 每条提醒响铃后,用一句话告诉用户具体内容。止损或目标价提醒意味着括号订单可能已成交:检查
get_open_position,并使用 trader-broker 记录成交。“收盘前平仓”意味着平掉仍未平仓的所有仓位:先使用 trader-brokerflatten,再使用 trader-risk,然后等待用户确认。绝不要代替用户采取行动。
示例:卷轴
周一 2026-10-19 的 TSLA:上午 10:15 入场价为 364.18,止损价为 358.32,目标价为 370.04,平仓截止时间为 15:55。add --from-plan 会为当天写入 tsla-plan-stop、tsla-plan-target 和 tsla-flat-by。在 10:53 运行 check 时,会读取 10:52 的实际报价 366.48,该价格介于止损价和目标价之间:
NYSE OPEN (2026-10-19 10:53 New York, regular session).
Nothing hit. 3 rule(s) watched today, TSLA $366.48.
下午 3:55:
ALERT Flat by close: it is 15:55 New York (set for 15:55), the market closes at 16:00. If TSLA is still
open, close it: trader-broker flatten --symbol TSLA builds the sell ticket, then trader-risk and your yes.
提醒只会响铃一次。第二天早上,计划中的三项提醒将不再监控;使用 add --opening-bell 后,提醒会在 9:30 响铃。
规则
- 提醒是关于价格或时间的事实。应如实陈述。
- 绝不要把报价说成实时行情。免费报价存在延迟,且未经官方确认。
- 每条新规则都要向用户确认:股票代码、类型、价位、日期。
它绝不会做什么
它绝不会下单、取消订单或修改订单,绝不会声称报价是实时行情,也绝不会预测价格走势。
安全
- 用于教育和工具支持,不构成财务建议。PASS 仅表示规则检查通过,并非推荐。
- 默认使用模拟交易(
"paper": true)。是否进行实盘交易由用户自行决定,并由用户在自己的配置中设置。 - 除 trader-broker 外,此工具包中的任何内容都不会下单;而且必须同时满足以下三项条件:trader-risk 当天已批准该笔确切订单;用户已在聊天中明确输入该笔订单的确认;用户已在 Claude 自有卡片上点击一次 Allow,因为订单工具设置为“Needs approval”(Customize > Connectors > tool permissions)。绝不要将订单工具设为“Always allow”。
- 除非配置允许且用户确认,否则不得进行期权交易、保证金交易、卖空或杠杆交易。
- 券商密钥应保存在环境变量或 Claude Desktop 配置中,绝不能放在聊天中。