mcpField
B
breadth-chart-analyst

breadth-chart-analyst

github.com/tradermonty其他3.4k3.4k 次安装2 天前更新
代码仓库

关于 breadth-chart-analyst

用于分析美国市场广度图表和 CSV 数据的技能,可生成有关市场状况、交易信号和仓位建议的英文报告。它结合 S&P 500 中长期广度指标与短期上升趋势股票比例。

主要功能

  1. 01基于 CSV 获取广度读数
  2. 02分析两类市场广度指标
  3. 03解读回测策略信号
  4. 04生成情景与仓位报告

适用场景

  1. 01根据广度数据评估市场状况
  2. 02寻找波段交易时机信号
  3. 03结合中长期与短期市场视角

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/tradermonty/claude-trading-skills --skill breadth-chart-analyst

安装后在 Claude Code 中输入/breadth-chart-analyst确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

requirements.txt
assets/
breadth_analysis_template.md
references/
breadth_chart_methodology.md
scripts/
detect_breadth_values.py
detect_uptrend_ratio.py
extract_chart_right_edge.py
fetch_breadth_csv.py
scripts/tests/
__init__.py
conftest.py
test_detect_breadth_values.py
test_detect_uptrend_ratio_synthetic.py
test_detect_uptrend_ratio.py
test_extract_chart_right_edge.py
test_fetch_breadth_csv_io.py
test_fetch_breadth_csv.py

详细介绍

Breadth Chart Analyst

概述

此技能可对两类互补的市场宽度图表进行专业分析,分别提供战略性(中长期)和战术性(短期)的市场视角。分析市场宽度图表图像,评估市场健康状况,根据经过回测的策略识别交易信号,并制定仓位建议。所有思考和输出均仅使用英语。

适用场景

在以下情况下使用此技能:

  • 用户提供 S&P 500 Breadth Index(基于 200-Day MA)图表图像并要求分析
  • 用户提供 US Stock Market Uptrend Stock Ratio 图表图像并要求分析
  • 用户要求评估市场宽度或市场健康状况
  • 用户询问基于市场宽度指标的中期战略性仓位安排
  • 用户需要短线波段交易的战术性择时信号
  • 用户希望获得结合战略与战术的市场展望
  • 用户要求进行市场宽度分析,但未提供图表图像(CSV 数据模式)

以下情况请勿使用此技能:

  • 用户要求分析个股(改用 us-stock-analysis 技能)
  • 用户需要在没有市场宽度图表的情况下分析行业轮动(改用 sector-analyst 技能)
  • 用户希望基于新闻进行市场分析(改用 market-news-analyst 技能)

前提条件

  • 图表图像可选:公开来源的 CSV 数据是主要数据来源;图表图像提供补充性的视觉背景
  • 无需 API 密钥:CSV 数据从公开的 GitHub Pages 获取;无需订阅外部 API
  • 语言:所有分析和输出均使用英语

输出

此技能会生成 Markdown 分析报告,并保存到 reports/ 目录:

  • 仅图表 1:breadth_200ma_analysis_[YYYY-MM-DD].md
  • 仅图表 2:uptrend_ratio_analysis_[YYYY-MM-DD].md
  • 两张图表:breadth_combined_analysis_[YYYY-MM-DD].md

报告包含执行摘要、当前读数、信号识别、包含概率的情景分析,以及针对不同交易者类型的可执行仓位建议。

核心原则

  1. 双时间框架分析:结合战略性(图表 1:200MA Breadth)和战术性(图表 2:Uptrend Ratio)视角
  2. 侧重经过回测的策略:应用基于历史模式、经过验证的系统化策略
  3. 客观识别信号:聚焦明确定义的阈值、转折和标记
  4. 英语沟通:所有分析和报告均使用英语
  5. 提供可执行建议:为不同类型的投资者提供具体的仓位指导

图表类型与用途

图表 1:S&P 500 Breadth Index(基于 200-Day MA)

用途:中长期战略性市场仓位安排

关键元素:

  • 8-Day MA(橙线):短期市场宽度趋势,主要入场信号生成器
  • 200-Day MA(绿线):长期市场宽度趋势,主要离场信号生成器
  • 红色虚线(73%):平均峰值水平——市场过热阈值
  • 蓝色虚线(23%):8MA 平均谷值水平——极度超卖,是绝佳买入机会
  • 三角形:
    • 紫色 ▼ = 8MA 谷值(反转时为买入信号)
    • 蓝色 ▼ = 200MA 谷值(主要周期低点)
    • 红色 ▲ = 200MA 峰值(卖出信号)
  • 粉色背景:下跌趋势期间

经过回测的策略:

  • 买入:8MA 从谷值反转时(尤其是在 23% 以下)
  • 卖出:200MA 形成峰值时(通常接近或高于 73%)
  • 结果:历史表现优异,可避开熊市
图表 2:美国股市——上升趋势股票占比

用途:短期战术择时和波段交易

关键要素:

  • 上升趋势股票的定义:股价高于 200MA/50MA/20MA,且 1 个月表现为正的股票
  • 绿色区域:市场处于上升趋势阶段
  • 红色区域:市场处于下降趋势阶段
  • 约 10% 水平(下方橙色虚线):短期底部,极度超卖
  • 约 40% 水平(上方橙色虚线):短期顶部,市场过热

波段交易策略:

  • 做多入场:颜色由红转绿时(尤其是从低于 10–15% 的水平开始转变)
  • 做多离场:颜色由绿转红时(尤其是从高于 35–40% 的水平开始转变)
  • 时间范围:数天至数周

分析工作流

步骤 0:获取 CSV 数据(主要数据源——必须执行)

重要:CSV 数据是所有广度指标值的主要数据源。必须在分析任何图像之前执行此步骤。

python3 skills/breadth-chart-analyst/scripts/fetch_breadth_csv.py

CSV 为主要数据源的原因:

  • OpenCV 图像检测容易出错——图表格式变化会导致灾难性故障(Issue #7)
  • CSV 可直接从数据源提供精确数值
  • 图像分析仅为辅助用途(用于了解趋势的视觉背景)

数据源:

  1. 市场广度:tradermonty.github.io/market-breadth-analysis/market_breadth_data.csv
    • 提供:200-Day MA、8-Day MA、趋势、死叉状态
  2. 上升趋势占比:tradermonty/uptrend-dashboard/data/uptrend_ratio_timeseries.csv
    • 提供:当前占比、10MA、斜率、趋势(UP/DOWN)、颜色(GREEN/RED)
  3. 板块汇总:tradermonty/uptrend-dashboard/data/sector_summary.csv
    • 提供:各板块占比、趋势、状态(超买/超卖)

数据源优先级:

优先级来源用途可靠性
1(主要)CSV 数据所有数值、死叉状态、颜色高
2(辅助)图表图像趋势的视觉背景、形态确认中
3(已弃用)OpenCV detect_breadth_values.py广度指标检测不可靠
4(最后手段)LLM 视觉读取仅用于紧急情况低

预期输出:

============================================================
Breadth Data (CSV) - 2026-02-13
============================================================
--- Market Breadth (S&P 500) ---
200-Day MA: 62.26% (healthy (>=60%))
8-Day MA:   67.56% (healthy_bullish (60-73%))
8MA vs 200MA: +5.30pt (8MA ABOVE -- NO dead cross)
Trend: UPTREND
--- Uptrend Ratio (All Markets) ---
Current: 33.03% GREEN (neutral_bullish)
10MA: 32.65%, Slope: +0.0055, Trend: UP
--- Sector Summary ---
...
============================================================

验证:运行 CSV 获取后,确认:

  • 已成功获取 CSV 数据
  • 已记录 200-Day MA 值
  • 已记录 8-Day MA 值
  • 已确定死叉状态(8MA < 200MA = 死叉)
  • 已记录上升趋势占比值、颜色和趋势
  • 后续所有分析均以这些 CSV 值作为权威数据源

步骤 1:接收图表图像并准备分析

用户提供广度图表图像进行分析时:

  1. 确认已收到图表图像
  2. 确认提供了哪些图表:
    • 仅图表 1(200MA 广度)
    • 仅图表 2(上升趋势占比)
    • 两张图表
  3. 记录用户特别关注的内容或提出的问题
  4. 重要:分析前提取图表图像的右侧区域(步骤 1.5)

如果未提供图表图像:跳过步骤 1、1.5 和基于图像的分析。仅使用步骤 0 中的 CSV 数据作为数据源,并直接进入分析和报告生成步骤。

语言说明:后续所有思考、分析和输出均使用英文。

步骤 1.5:两阶段图表分析(提供图表时必须执行)

重要:采用两阶段分析方法,避免将历史数据误读为当前值。

阶段 1:完整图表分析(历史背景)

首先,分析完整图表图像,以了解:

  • 整体历史趋势和周期
  • 重要的历史事件(低谷、峰值、复苏)
  • 长期形态和背景
阶段 2:聚焦右侧区域的分析(当前值)

随后,提取并分析图表最右侧的 25%,以准确确定当前值。

执行 Python 脚本以提取右侧区域:

python3 skills/breadth-chart-analyst/scripts/extract_chart_right_edge.py <image_path> --percent 25
为什么必须进行两阶段分析
阶段目的提取内容
阶段 1(完整图表)历史背景、趋势周期整体模式、过去的低谷/峰值
阶段 2(右侧边缘)当前数值(至关重要)8MA 数值、200MA 数值、当前颜色、当前斜率

此流程可避免的常见错误:

  • 大模型读取了 2025 年年中低点(8MA 约为 25-30%),而非当前数值(8MA 约为 60-65%)
  • 单独查看右侧边缘后,“当前”数据便一目了然
分析流程
  1. 读取完整图表 → 记录历史背景
  2. 运行提取脚本 → 生成右侧边缘图像
  3. 读取右侧边缘图像 → 以高置信度记录当前数值
  4. 交叉核对:如果阶段 1 和阶段 2 的数值差异显著,以阶段 2(右侧边缘)为准
  5. 同时报告两者:在分析中纳入阶段 1 的背景信息和阶段 2 的当前数值
步骤 2:加载市场宽度图表方法论

开始分析前,请阅读全面的市场宽度图表方法论:

Read: references/breadth_chart_methodology.md

此参考资料包含以下详细指南:

  • 图表 1:基于 200MA 的市场宽度指数解读与策略
  • 图表 2:上升趋势股票比例的解读与策略
  • 信号识别与阈值的重要性
  • 策略规则与风险管理
  • 综合两张图表以实现最佳决策
  • 需要避免的常见陷阱
步骤 3:查看示例图表(首次使用或作为参考)

要了解图表格式和视觉元素,请查看此技能附带的示例图表:

View: assets/SP500_Breadth_Index_200MA_8MA.jpeg
View: assets/US_Stock_Market_Uptrend_Ratio.jpeg

这些示例展示了:

  • 各类图表的外观和结构
  • 信号和阈值的显示方式
  • 颜色编码和标记系统
  • 历史模式和周期
步骤 4:分析图表 1(基于 200MA 的市场宽度指数)

如果提供了图表 1,请进行系统分析:

4.1 提取当前读数

从图表图像中识别:

  • 当前 8MA 水平(橙线):具体百分比
  • 当前 200MA 水平(绿线):具体百分比
  • 8MA 斜率:上升、下降或持平
  • 200MA 斜率:上升、下降或持平
  • 与 73% 阈值的距离:距离过热还有多远
  • 与 23% 阈值的距离:距离极度超卖还有多远
  • 图表中可见的最近日期
4.1.5 关键:最新数据点的详细趋势分析

此步骤为必做项,可避免误读近期趋势变化。

关键警告:图表可能会造成误导。大多数分析错误都是因为分析者:

  1. 把 8MA(橙色)与 200MA(绿色)混淆
  2. 查看历史趋势,而不是当前最右侧的数据点
  3. 误判哪条线正在上升、哪条线正在下降

分析趋势方向前,先确认线条颜色:

  • ✓ 8MA = 橙色线(移动较快,波动性较大)
  • ✓ 200MA = 绿色线(移动较慢,走势较平滑)
  • 如果不确定哪条线对应哪项指标,请停止分析并重新查看图例和颜色

重点查看图表最右侧的 3-5 个数据点(最近几周):

对于 8MA(橙色线)——分析最新走势:

  1. 确定最新位置:图表最右侧的 8MA 在哪里?
  2. 向前追溯 3-5 个数据点(约 3-5 周):
    • 1 周前的 8MA 水平是多少?
    • 2 周前的 8MA 水平是多少?
    • 3 周前的 8MA 水平是多少?
  3. 判断方向变化:
    • 最新值比 1 周前高还是低?
    • 最新值比 2 周前高还是低?
    • 趋势是持续上升、持续下降,还是不规律?
  4. 判断当前斜率(而非历史斜率):
    • 上升:最新数据点高于前 2-3 个数据点,且走势呈向上弯曲
    • 下降:最新数据点低于前 2-3 个数据点,且走势呈向下弯曲
    • 持平:最新数据点与前几个数据点大致相同(相差在 2-3% 以内)

需要回答的关键问题:

  • 8MA 当前在最右侧是向上还是向下移动?
  • 如果近期出现过低谷,8MA 是否持续上行,还是已经掉头向下?
  • 统计连续上升的周期数:8MA 已连续上升几个周期?(需要 2-3 个周期才能确认)
  • 统计连续下降的周期数:8MA 已连续下降几个周期?(如果低谷后开始下降,则表明反转失败)

对于 200MA(绿色线)——分析最新走势:

  1. 确定最新位置:200MA 在最右侧的位置在哪里?
  2. 向前追溯 4-6 周:
    • 2 周前的 200MA 水平是多少?
    • 4 周前的 200MA 水平是多少?
  3. 判断当前斜率:
    • 最近一段时间是上升、下降还是持平?

识别失败反转(关键): 如果近期已识别出 8MA 低谷(紫色 ▼):

  • 8MA 是否只上升了 1-2 个周期,随后又转为下降?
  • 8MA 是否在下跌前未能达到 60%?
  • 反弹后,8MA 是否又开始下降?
  • 如果任一项的答案为是:这是失败反转——请勿进场,信号无效

分析示例格式:

Latest 8MA Data Points (rightmost to left):
- Current (Week 0): 48%
- 1 week ago: 52%
- 2 weeks ago: 55%
- 3 weeks ago: 50%

Analysis: 8MA is FALLING. It rose from 50% to 55% (weeks 3-2), but has since declined to 48%.
This shows a failed reversal pattern - bounce was temporary, downtrend has resumed.
SLOPE: Falling (not rising!)

必须进行交叉核验(避免误读): 确定趋势后,请自问:

  • “如果我判断 8MA 正在上升,但它实际上已经连续下跌数周,这会是什么样子?”
    • 答案:最右侧的数据点会低于前面的数据点(确认其正在下降)
  • “我的分析是否与最右侧橙色线的视觉斜率一致?”
    • 如果橙色线在最右侧视觉上向下倾斜 → 正在下降
    • 如果橙色线在最右侧视觉上向上倾斜 → 正在上升
  • “最右侧附近是否有粉色背景阴影(下降趋势)?”
    • 如果有 → 这确认了下降趋势,8MA 很可能正在下降
  • “8MA 和 200MA 是正在汇聚(距离缩小)还是正在发散?”
    • 从下方汇聚 → 可能形成死亡交叉 → 看跌
    • 从上方汇聚 → 可能形成黄金交叉 → 看涨
4.2 识别信号标记

查找并记录:

  • 最近的 8MA 谷值(紫色 ▼):日期和数值
  • 最近的 200MA 谷值(蓝色 ▼):日期和数值(如果在时间范围内可见)
  • 最近的 200MA 峰值(红色 ▲):日期和数值
  • 距离最近信号的天数/周数
  • 任何粉色背景阴影(下跌趋势期间)
4.3 评估市场状态

根据读数和形态,将当前市场分类为:

  • 健康的牛市
  • 过热的牛市
  • 市场顶部/派发阶段
  • 熊市/回调
  • 绝望性抛售/极度超卖
  • 早期复苏

提供图表中的具体证据来支持分类。

4.4 确定策略仓位

应用回测策略规则,并严格遵守确认要求:

检查买入信号(必须满足所有条件):

  1. ✓ 形成谷值:8MA 是否形成了清晰的谷值(紫色 ▼)?
  2. ✓ 开始反转:8MA 是否已从谷值开始向上移动?
  3. ✓ 达到确认条件:谷值之后,8MA 是否连续 2-3 个周期上涨?
  4. ✓ 近期未反转:根据步骤 4.1.5 的分析,8MA 当前是否正在上涨(而非下跌)?
  5. ✓ 走势持续:8MA 是否持续向上,没有掉头回落?
  6. ⭐ 可选但有力:谷值处的 8MA 是否低于或接近 23%(极度超卖)?

买入信号状态:

  • 已确认:满足全部 5 项必需条件 → 做多
  • 形成中:已形成谷值,但连续上涨不足 2-3 个周期 → 等待并监控
  • 失效:已形成谷值,但 8MA 已掉头并开始下跌 → 不要入场,等待下一个谷值
  • 无信号:尚未形成谷值 → 等待

检查卖出信号:

  • 200MA 是否已形成峰值(红色 ▲)?
  • 200MA 是否接近或高于 73%?
  • 这是需要退出仓位的有效卖出信号吗?

确定当前仓位:

  • 做多:买入信号已确认,已入场并持有
  • 准备入场:买入信号正在形成(已形成谷值,等待确认)
  • 等待/空仓:没有有效信号,或检测到反转失败
  • 准备退出:卖出信号正在形成(200MA 接近峰值)
4.5 制定情景

制定 2-3 种情景并估算概率:

  • 基准情景(概率最高)
  • 其他情景
  • 每种情景均包含:描述、支持因素、策略影响、关键价位
步骤 5:分析图表 2(上升趋势股票占比)

如果提供了图表 2,请进行系统分析:

5.0 必须执行 已弃用:上升趋势占比检测脚本(已由步骤 0 的 CSV 获取取代)

注意(Issue #7):此 OpenCV 检测步骤已弃用。请将步骤 0 中的 CSV 数据作为首要数据来源。OpenCV 脚本仅可用于辅助验证,但在所有情况下均以 CSV 数值为准。

python3 skills/breadth-chart-analyst/scripts/detect_uptrend_ratio.py <image_path> [--debug]
5.1 提取当前读数

从图表图像中识别:

  • 当前上升趋势股票占比:具体百分比
  • 当前颜色:绿色(上升趋势)或红色(下降趋势)
  • 占比斜率:上升、下降或持平
  • 与 10% 阈值的距离:距离极度超卖有多近
  • 与 40% 阈值的距离:距离超买有多近
  • 图表上可见的最近日期
5.2 识别趋势转换

查找并记录:

  • 最近一次由红转绿:转换日期及转换时的占比
  • 最近一次由绿转红:转换日期及转换时的占比
  • 当前颜色阶段的持续时间:当前趋势已持续多久
  • 距离最近一次转换的天数/周数
5.3 评估市场状况

根据当前占比和颜色,将市场分类为:

  • 极度超卖(<10%)
  • 温和看跌(10-20%,红色)
  • 中性/过渡(20-30%)
  • 温和看涨(30-37%,绿色)
  • 极度超买(>37-40%)

提供图表中的具体证据来支持分类。

5.4 确定交易持仓

应用波段交易策略规则:

检查是否出现做多信号:

  • 颜色是否已从红色变为绿色?
  • 转换是否始于超卖水平(<15%)?
  • 转换是否已确认(连续 2-3 天为绿色)?

检查是否出现平多信号:

  • 颜色是否已从绿色变为红色?
  • 转换是否始于超买水平(>35%)?
  • 动能是否正在减弱?

当前持仓:做多、空仓、准备入场或准备退出

5.5 制定情景

创建 2-3 种情景并估算概率:

  • 基准情景(概率最高)
  • 备选情景
  • 每种情景均包括:描述、支持因素、交易影响、关键水平
第 6 步:综合分析(提供两张图表时)

如果提供了两张图表,则整合战略和战术视角:

6.1 一致性评估

创建持仓矩阵:

  • 图表 1(战略):看涨 / 看跌 / 中性 + 信号状态
  • 图表 2(战术):看涨 / 看跌 / 中性 + 信号状态
  • 综合影响:两者是否一致,或存在冲突?
6.2 情景分类

确定适用的四种情景之一:

情景 1:两者均看涨

  • 图表 1:8MA 上升,200MA 尚未见顶
  • 图表 2:绿色(上升趋势),比率从超卖水平回升
  • 影响:采取最积极的看涨立场,积极建仓

情景 2:战略看涨,战术看跌

  • 图表 1:8MA 上升,200MA 尚未见顶
  • 图表 2:红色(下降趋势),比率下跌或处于高位
  • 影响:持有核心多头仓位,等待战术入场时机

情景 3:战略看跌,战术看涨

  • 图表 1:200MA 已见顶或正在下跌
  • 图表 2:绿色(上升趋势),比率上升
  • 影响:仅进行短期战术交易,设置紧密止损

情景 4:两者均看跌

  • 图表 1:两条 MA 均下跌
  • 图表 2:红色(下降趋势),比率下跌
  • 影响:采取防御性持仓,持有现金或做空
6.3 统一建议

提供整合后的持仓指导,分别针对:

  • 长期投资者(主要依据图表 1)
  • 波段交易者(主要依据图表 2)
  • 活跃战术交易者(依据两者的组合)

说明图表之间的任何冲突,并解释如何化解。

第 7 步:用英语生成分析报告

使用模板结构创建一份完整的 Markdown 报告:

Read and use as template: assets/breadth_analysis_template.md

重要:所有分析和输出都必须使用英语。

报告结构会根据分析的图表而有所不同:

仅分析图表 1:

  • 执行摘要
  • 图表 1 的完整分析章节
  • 总结与结论
  • 省略图表 2 和综合分析章节

仅分析图表 2:

  • 执行摘要
  • 图表 2 的完整分析章节
  • 总结与结论
  • 省略图表 1 和综合分析章节

分析两张图表:

  • 执行摘要
  • 图表 1 的完整分析章节
  • 图表 2 的完整分析章节
  • 综合分析章节(必需)
  • 总结与结论

文件命名约定:将每份分析保存为:

  • 仅分析图表 1:breadth_200ma_analysis_[YYYY-MM-DD].md
  • 仅分析图表 2:uptrend_ratio_analysis_[YYYY-MM-DD].md
  • 分析两张图表:breadth_combined_analysis_[YYYY-MM-DD].md
第 8 步:质量保证

定稿前,请核实:

  1. ✓ 语言:所有内容均为英文(思考和输出)
  2. ✓ 线条颜色核实:趋势分析前已明确确认 8MA = 橙色、200MA = 绿色
  3. ✓ 最新数据趋势分析:已彻底完成第 4.1.5 步——分析最近的 3–5 个数据点,以确定当前趋势方向
  4. ✓ 趋势方向准确性:所述的 8MA 斜率(上升/下降/持平)准确反映最右侧的数据点,而非历史走势
  5. ✓ 已完成交叉核对:已回答强制性交叉核对问题,确认趋势方向与目测斜率一致
  6. ✓ 死亡交叉/黄金交叉检查:如果 8MA 和 200MA 正在汇合,已明确指出正在形成死亡交叉还是黄金交叉
  7. ✓ 反转失败检查:如果识别出谷底,已通过分析最新走势明确核实反转是持续还是失败
  8. ✓ 具体数值:所有读数均包含具体百分比/水平,而非模糊描述
  9. ✓ 信号状态:明确标识有效信号(已确认买入 / 形成中 / 失败 / 卖出 / 等待)
  10. ✓ 策略一致性:建议与回测策略及确认要求一致
  11. ✓ 概率:各种情景的概率总和为 100%
  12. ✓ 可执行性:针对不同类型交易者给出明确的仓位建议
  13. ✓ 背景信息:与历史走势对比,并参考过去类似情况
  14. ✓ 风险管理:明确说明失效水平和风险因素

最终合理性检查:

  • 如果报告声称有“买入信号”或“8MA 上升”,请确认这与用户图表显示的死亡交叉或下跌趋势不矛盾
  • 如果报告声称“看涨”,请确认图表中没有粉色背景阴影或死亡交叉
  • 如果对任何趋势方向不确定,请明确说明不确定性,而不是猜测

质量标准

客观性要求
  • 严格依据图表中可观察到的数据进行所有分析
  • 除非与分析特别相关,否则不要纳入外部信息(新闻、基本面)
  • 始终使用准确的技术术语
  • 明确区分事实观察与概率预测
  • 信号含义模糊时,承认存在不确定性
完整性要求
  • 涵盖分析模板中的所有相关部分
  • 为所有关键指标提供具体数值
  • 根据技术因素说明概率估计的依据
  • 为每种情景提供失效水平
  • 将当前读数与图表中可见的历史形态进行比较
清晰度要求
  • 使用专业、分析性的英文撰写
  • 使用清晰的章节标题和结构
  • 适当时以表格呈现信息
  • 提供具体、可执行的建议
  • 避免使用未加解释的术语
策略遵循要求
  • 正确应用经过回测的策略规则
  • 区分策略性(图表 1)和战术性(图表 2)信号
  • 清晰说明仓位状态(做多/空仓/建仓中/平仓中)
  • 适用时提供具体的入场/离场水平
  • 说明风险管理措施(止损、仓位规模)

常见分析错误及避免方法

错误 1:混淆 8MA 和 200MA

表现:报告声称 8MA 正在上升,实际上上升的是 200MA

预防措施:

  • 务必核实:8MA = 橙色,200MA = 绿色
  • 检查线条波动性:8MA 变化更快,波动更大
  • 如果不确定,请说明:“根据线条颜色,我将[橙色/绿色]线识别为[8MA/200MA]”
错误 2:把历史趋势误读为当前方向

表现:报告描述的是 1–2 个月前的情况,而非当前走势

预防措施:

  • 只关注最右侧的 3–5 个数据点
  • 明确写出:“在当前最右侧,8MA 位于 X%,并且正在[上升/下降]”
  • 如果我们正在分析 11 月,就忽略 9 月发生的情况
错误 3:未识别死亡交叉或黄金交叉形态

症状:当 8MA 和 200MA 即将形成死亡交叉(看跌)时,报告却看涨

预防措施:

  • 始终检查:“8MA 和 200MA 是越来越接近(收敛)还是越来越远(发散)?”
  • 如果正在收敛,且 8MA 高于 200MA → 可能形成死亡交叉 → 看跌
  • 如果正在收敛,且 8MA 低于 200MA → 可能形成黄金交叉 → 看涨
  • 明确说明:“8MA 目前[高于/低于] 200MA,且两者正在[收敛/发散]”
错误 4:忽略粉色背景阴影

症状:图表显示粉色下跌趋势背景,报告却声称形势看涨

预防措施:

  • 检查最右侧边缘是否有粉色阴影
  • 粉色背景 = 下跌趋势时期 = 看跌状况
  • 如果存在粉色阴影,报告必须提及看跌状况
错误 5:过早宣称反转

症状:8MA 仅上涨 1 周,报告就称“买入信号已确认”

预防措施:

  • 必须有 2-3 周连续上涨的 8MA 才能确认
  • 如果只有 1 周:信号处于“形成中”阶段,而非“已确认”
  • 如果 8MA 上涨后再次下跌:信号为“失败”,不具有效性

使用场景示例

示例 1:仅使用 CSV 分析(无图表)
User: "breadth分析して" (Analyze breadth)
[No chart images provided]

Breadth Analyst:
1. Executes fetch_breadth_csv.py to get latest CSV data
2. Reads breadth_chart_methodology.md
3. Analyzes CSV data:
   - 200MA: 62.26% (healthy)
   - 8MA: 67.56% (healthy_bullish)
   - 8MA vs 200MA: +5.30pt (NO dead cross)
   - Uptrend Ratio: 33.03% GREEN (neutral_bullish)
   - Sector summary with overbought/oversold sectors
4. Assesses market regime based on CSV values
5. Generates report: breadth_combined_analysis_2026-03-16.md
示例 2:战略广度分析(仅图表 1)
User: "Please analyze this S&P 500 breadth chart and tell me where we are in the market cycle."
[Provides Chart 1 image: 200MA Breadth Index]

Breadth Analyst (thinking in English):
1. Executes CSV fetch for authoritative numerical values
2. Confirms receipt of Chart 1 (200MA-based breadth index)
3. Reads breadth_chart_methodology.md for Chart 1 guidance
4. Two-stage analysis: full chart → right edge extraction
5. Cross-checks CSV values with chart readings
6. Generates comprehensive report in English
示例 3:战略 + 战术综合分析(两张图表)
User: "Analyze both of these breadth charts and give me your overall market view."
[Provides both Chart 1 and Chart 2 images]

Breadth Analyst (thinking in English):
1. Executes CSV fetch as PRIMARY source
2. Confirms receipt of both charts
3. Reads full breadth_chart_methodology.md
4. Two-stage analysis for each chart
5. Cross-checks all values against CSV data
6. Combined assessment and unified recommendation
7. Generates comprehensive combined report

资源

此技能包含以下捆绑资源:

references/breadth_chart_methodology.md

涵盖以下内容的完整方法论:

  • 图表 1(200MA 广度):组成部分、解读方法、市场状态、回测策略、分析检查清单
  • 图表 2(上升趋势比率):组成部分、解读方法、市场状况、波段交易策略、分析检查清单
  • 综合分析:一致性情景、综合决策
  • 常见陷阱:各类图表应避免的错误

用法:在进行任何广度图表分析之前,请先阅读此文件,以确保解读系统且准确。

assets/breadth_analysis_template.md

用于广度分析报告的结构化英文模板。

用法:每次撰写分析报告时都使用此模板结构。

assets/SP500_Breadth_Index_200MA_8MA.jpeg

用于参考格式的图表 1 示例图片。

assets/US_Stock_Market_Uptrend_Ratio.jpeg

用于参考格式的图表 2 示例图片。

scripts/fetch_breadth_csv.py

主要数据源。从公开 CSV 数据源获取市场广度、上升趋势比率和行业摘要数据。仅使用标准库(urllib + csv),无外部依赖。

python3 skills/breadth-chart-analyst/scripts/fetch_breadth_csv.py        # Human-readable
python3 skills/breadth-chart-analyst/scripts/fetch_breadth_csv.py --json  # JSON output
scripts/extract_chart_right_edge.py

提取图表图片最右侧的部分,以便聚焦于最新数据点。需要 PIL/Pillow。

python3 skills/breadth-chart-analyst/scripts/extract_chart_right_edge.py <image_path> --percent 25
scripts/detect_uptrend_ratio.py (已弃用)

基于 OpenCV 的上升趋势比率检测。现已由 CSV 获取方式取代。需要 opencv-python + numpy。

scripts/detect_breadth_values.py (已弃用)

基于 OpenCV 的广度值检测。现已由 CSV 获取方式取代。需要 opencv-python + numpy。

特别说明

语言要求

重要:所有分析、思考和输出都必须使用英文。包括:

  • 内部分析和推理
  • 报告生成
  • 表格和数据展示
  • 情景描述
  • 建议

请勿翻译或使用任何其他语言。用户只希望收到英文输出。

策略重点

此技能侧重于经过回测的系统化策略,而非主观解读。始终:

  • 按照文档所述应用策略规则
  • 参考历史表现模式
  • 提供具体的入场/离场标准
  • 提供风险管理指导
实际应用

目标是提供可执行的情报。每项分析都应回答:

  • 战略层面:中期来看,我应该做多、观望还是做空市场?
  • 战术层面:短期内,我应该开仓还是平仓?
  • 时机:我应该何时行动,在哪些价位行动?
  • 风险:什么情况会使这一观点失效,止损位应该设在哪里?

评论

支持 Markdown