mcpField
T
trader-alerts

trader-alerts

github.com/jakeschincariol其他2.6k108 次安装1 周前更新
代码仓库

关于 trader-alerts

trader-alerts 是面向交易者的价格与时间提醒技能,可追踪价格阈值、交易时段和计划中的退出时间。提醒只报告事件,不会下单、取消或修改订单。

主要功能

  1. 01监测止损、目标价和百分比变动
  2. 02按纽约时间触发提醒
  3. 03从交易计划创建提醒
  4. 04从报价文件读取或离线检查
  5. 05每条规则仅响一次并记录状态

适用场景

  1. 01为计划中的交易设置止损和目标提醒
  2. 02在交易日结束前提醒检查未平仓头寸
  3. 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_bellNYSE 开市每个交易日一次

带有 "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、IBKR get_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 提前收市。

此工具会处理夏令时,因此无需时区文件,并且会忽略计算机自身的时区。对于其他年份,工具会提示节假日列表未知。

步骤

  1. trader-exit 写入计划后,立即运行 add --from-plan。 向用户确认这三项提醒:止损、目标价和平仓截止时间。
  2. 交易仍在进行时运行 check:通过 Claude 定时任务或 /loop 每隔几分钟运行一次。每次运行只获取今日规则中的股票代码,并为每项提醒响铃一次。检查会读取最新的延迟报价;这不是实时行情,价格可能在两次检查之间越过某个价位。
  3. 每条提醒响铃后,用一句话告诉用户具体内容。止损或目标价提醒意味着括号订单可能已成交:检查 get_open_position,并使用 trader-broker 记录成交。“收盘前平仓”意味着平掉仍未平仓的所有仓位:先使用 trader-broker flatten,再使用 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 配置中,绝不能放在聊天中。

评论

支持 Markdown