haskaomni/serenity-skill

gf-dma-health-index

Score a stock's current valuation/trend health using the GF-DMA Health Index, combining fundamental growth speed, 20/50/100/200DMA trend speed, price-to-DMA divergence, ATR divergence, escape ratio, and estimate revisions.

ソースを見る

使い方

  1. インストールコマンドをコピーし、自分の環境へ導入する前にソースを確認します。
  2. 必要なツール、認証情報、対応環境を原文で確認します。
  3. 入力と成果物を指定し、出力を資料と照合します。
npx skills add https://github.com/haskaomni/serenity-skill --skill gf-dma-health-index

開始前の確認

  • 導入にはモデル契約、API枠、ファイルへのアクセス許可は含まれません。
  • スター数や導入数は活動の指標であり、独立した品質・安全性試験ではありません。
リポジトリの原文

見出し、例、コード、表、リンク、参照画像を含む原文を表示しています。

GF-DMA Health Index

Core Idea

Evaluate whether a stock's current price trend is supported by fundamental speed and moving-average structure.

Use the index to answer:

text
Is the current price trend supported by revenue growth, profit growth, estimate revisions, and the 20/50/100/200DMA system?

Treat results as research analysis, not investment advice. For latest/current scoring, verify data from current sources before calculating.

Required Inputs

Collect the newest available data before scoring:

  • Price/technical data: latest price, 20DMA, 50DMA, 100DMA, 200DMA, ATR20, 5-day price change, and 20/50/100/200-day price changes or historical prices.
  • Fundamental data: latest quarterly revenue, EPS, gross margin or gross profit, next-quarter company guidance, consensus revenue/EPS estimates, and 30-day estimate revisions.
  • Preferred sources: company IR releases/presentations, earnings calls, Yahoo Finance historical prices/analysis, TradingView technicals/estimates, Barchart technical analysis, Seeking Alpha estimates, Koyfin, FactSet, Bloomberg, TIKR, or Visible Alpha.

For U.S.-listed companies, SEC filings can improve the fundamental side of the score. edgartools is an optional helper for retrieving the latest 10-K, 10-Q, 8-K, XBRL financial statements, filing text, insider transactions, and ownership filings.

If the environment does not already have it, install with pip install edgartools or uv pip install edgartools. The import package is edgar, not edgartools. SEC access requires an identity; set EDGAR_IDENTITY="Name email@example.com" in the environment or call from edgar import set_identity; set_identity("name@example.com") before requests.

Minimal usage pattern:

python
from edgar import Company

company = Company("AAPL")
financials = company.get_financials()
income = financials.income_statement()
filings = company.get_filings(form="8-K")

Use SEC data for:

  • reported quarterly revenue, gross profit, EPS, cash flow, balance sheet, share count, and historical trend baselines
  • management language on demand, backlog, pricing, capacity, inventory, customer concentration, and risks
  • 8-K earnings releases or guidance disclosures when they contain the newest company-provided numbers

Do not use SEC data for the technical module or revision module. Price, 20/50/100/200DMA, ATR20, 5-day price slope, consensus estimates, and 30-day estimate revisions still require market-data and estimate sources. When SEC data is used, state the filing form and filing date so the user can judge freshness.

If a required field is unavailable, say which field is missing and use the simplified formula only when appropriate.

Calculation Workflow

1. Fundamental Speed

Calculate:

text
G_f = 0.35G_Revenue + 0.25G_GrossProfit + 0.30G_EPS + 0.10G_Revision

Where:

  • G_Revenue = next-quarter revenue guidance / latest-quarter revenue - 1
  • G_GrossProfit = next-quarter gross profit / latest-quarter gross profit - 1
  • G_EPS = next-quarter EPS guidance / latest-quarter EPS - 1
  • G_Revision = 30-day consensus estimate revision

Fallbacks:

  • If gross profit or EPS is missing: G_f = 0.5G_Revenue + 0.5G_EPS
  • If only revenue guidance is available: G_f = G_Revenue

2. DMA Speed

Calculate quarterly annualized-equivalent moving-average speed for each DMA:

text
G_DMAx = ((SMA_x(t) - SMA_x(t-k)) / SMA_x(t-k)) * (63 / k)

Use k = 5 or 10 trading days by default. If only price-change data is available, approximate:

text
DailySlope_x ~= (P_t - P_t-x) / x
G_DMAx ~= DailySlope_x * 63 / P_t

Compute G_DMA20, G_DMA50, G_DMA100, and G_DMA200.

3. Fundamental-DMA Match

Calculate:

text
R_x = G_DMAx / G_f

Interpret R_50 and R_100 first:

R_xStatus
< 0.5Trend clearly below fundamental speed
0.5-0.8Under-reflected or cheap versus trend
0.8-1.3Healthy match
1.3-2.0Hot but potentially explainable
> 2.0Overheated / FOMO escape risk

Core DMA emphasis:

Stock typeKey DMA
Mega-cap growth leaders like NVDA, AVGO, MSFT50DMA
Memory/cyclical semis like MU, SNDK100DMA
High-elasticity optical names like LITE, AAOI20DMA + 50DMA
Industrial AI/power names like ETN, VRT, TEL100DMA + 200DMA
Small-cap hard-manufacturing names like SIVE, CPSH20DMA + ATR divergence
Semiconductor ETFs like SOXX, SMH50DMA + 100DMA

4. Price-DMA Divergence

Calculate:

text
D_x = P_t / SMA_x(t) - 1
Z_x = (P_t - SMA_x) / ATR20

Interpretation:

SignalStatus
0%-5% above 20DMAHealthy close-to-line trend
5%-12% above 20DMAStrong trend, mild valuation stretch
12%-20% above 20DMAHot; divergence score should fall
>20% above 20DMAShort-term escape; divergence score should fall sharply
>30% above 50DMAMedium-term overheat
>50% above 100DMAMajor repricing
>100% above 200DMAExtreme long-cycle repricing
0%-5% below 20/50DMA with stable fundamentalsHealthy pullback; divergence score can rise
5%-15% below 50DMA with stable/improving fundamentalsBetter valuation entry, but verify trend damage separately
Below 100/200DMA with deteriorating fundamentalsTrend damage; do not treat as cheap automatically

ATR divergence is asymmetric:

Z_xStatus
0 to 2Healthy
2 to 3Hot
3 to 4Very hot
>4Escape; reduce divergence score sharply
-1 to 0 with stable fundamentalsMild pullback; can improve valuation-health score
-3 to -1 with stable/improving fundamentalsDiscounted pullback; score can be high, but check trend parallelism
< -3 or below key long DMA with estimate cutsPossible breakdown; score should fall

Important: S_Divergence is a valuation-health score, not a pure momentum score. Upward price-DMA divergence lowers the score because the stock is more stretched. Downward divergence raises the score only when fundamental speed and revision confirmation are stable or improving; if fundamentals are deteriorating, downward divergence is trend damage rather than an opportunity.

5. Trend Parallelism / Escape Ratio

Calculate:

text
EscapeRatio = 5-day price slope / 50DMA daily slope

Interpretation:

EscapeRatioStatus
0.8-1.2Price and 50DMA are parallel; healthy
1.2-1.8Short-term acceleration; acceptable
1.8-2.5Clearly hot
>2.5FOMO escape
0-0.5Momentum decay
<0Short-term reversal; trend damage

6. Revision Confirmation

Score estimate revisions:

Revision stateScore
Revenue and EPS estimates rising; company guide above consensus85-100
Mild upward revisions; guide slightly above consensus70-85
Stable expectations; limited upward revision55-70
Revisions starting to fall35-55
Guide below consensus; analysts cutting estimates<35

Divergence Module Scoring

Use asymmetric scoring for S_Divergence:

StateScore
Price close to 20/50DMA, above 100/200DMA80-95
Stable/improving fundamentals; price below 20DMA but near 50DMA85-100
Stable/improving fundamentals; price 5%-15% below 50DMA while long DMAs remain healthy75-95
Price 5%-12% above 20DMA65-80
Price 12%-20% above 20DMA50-70
Price >20% above 20DMA or >30% above 50DMA25-55
Price below 50DMA with weakening fundamentals or estimate cuts35-60
Price below 100DMA with estimate cuts15-45
Price below 200DMA with fundamental deterioration0-30

When price is below key DMAs, explicitly state whether the lower price is a healthy pullback or a breakdown. The deciding gate is fundamental speed plus revision confirmation.

Final Scoring

Calculate total score out of 100:

text
HealthScore = 40S_GrowthMatch + 25S_Divergence + 20S_Parallel + 15S_Revision

Module scoring:

ModuleWeight
Fundamental speed match40%
Price-DMA divergence / pullback opportunity25%
Trend parallelism20%
Revision confirmation15%

Final interpretation:

ScoreStateMeaning
85-100Healthy MomentumHealthy main uptrend
75-85Strong but WatchStrong trend; continue monitoring
65-75Hot but SupportedHot, but fundamentals can still support it
55-65Damaged / OverheatedTrend damage or local overheat
40-55High RiskRisk clearly rising
<40Broken / EscapingBroken trend or post-escape pullback

Mermaid Visualizations

For a full report, include 2-4 Mermaid diagrams when they materially improve comprehension. A short answer or data-limited analysis may use fewer. Do not create a diagram merely to meet a quota.

Prioritize these views:

  1. An xychart-beta comparing latest price with 20/50/100/200DMA values, with the source values preserved in the adjacent table.
  2. An xychart-beta of the four 0-100 module scores, clearly separated from their percentage weights.
  3. A compact flowchart explaining why a below-DMA state is a healthy pullback or a breakdown, using fundamental speed and revision confirmation as the gate.

Apply these rules to every diagram:

  • Use fenced mermaid blocks, match the report language, keep node IDs in simple ASCII, and keep labels short.
  • Prefer broadly supported flowchart, pie, and stateDiagram syntax. Use xychart-beta, quadrantChart, or timeline only as progressive enhancement and retain the adjacent Markdown table as the fallback.
  • Use only evidence and values already stated in the report. Keep price currency, periods, scores, weights, and units consistent with the surrounding tables; never fill missing data for visual completeness.
  • Place each diagram beside the analysis it explains and follow it with a one-sentence takeaway. Keep citations, URLs, dates, and detailed caveats outside the diagram.
  • Keep a diagram focused: normally no more than 12 nodes or 8 plotted values. Diagrams supplement rather than replace calculations, score tables, caveats, and source trails.

Output Format

Use this structure for every ticker:

markdown
# TICKER: GF-DMA Health Index 评分

最终评分:XX / 100
状态:Healthy Momentum / Strong but Watch / Hot but Supported / Damaged / High Risk / Broken

一句话判断:
...

1. 基本面速度
- 最新季度营收:
- 下一季度营收指引:
- 营收 QoQ:
- EPS QoQ:
- 毛利润 QoQ:
- Fundamental Speed:

2. 均线速度匹配
| 均线 | 季度化斜率 | 相对基本面速度 | 判断 |
|---|---:|---:|---|
| 20DMA | | | |
| 50DMA | | | |
| 100DMA | | | |
| 200DMA | | | |

若价格和四条均线数据完整,在表后加入 Mermaid xychart;表格继续作为数值和兼容性回退。

3. 股价-均线背离
| 指标 | 当前背离 | 判断 |
|---|---:|---|
| P / 20DMA - 1 | | |
| P / 50DMA - 1 | | |
| P / 100DMA - 1 | | |
| P / 200DMA - 1 | | |

4. 趋势平行度
- Escape Ratio:
- 判断:

5. 预期上修确认
- 公司指引 vs 市场预期:
- 过去 30 天预期变化:
- 判断:

6. 综合评分
| 模块 | 权重 | 分数 |
|---|---:|---:|
| 基本面速度匹配 | 40% | |
| 股价-均线背离 | 25% | |
| 趋势平行度 | 20% | |
| 预期上修确认 | 15% | |

在表后加入四个模块分数的 Mermaid xychart,不要把模块分数与模块权重混画在同一坐标轴。

结论:
...

当价格位于关键均线下方时,可加入 Mermaid flowchart,展示健康回撤与趋势破坏的判断门槛。

Detailed Reference

Read references/original-framework.md when a task needs the full Chinese framework text, examples, source priority list, or scoring tables in their original form.

When the reference format differs, preserve its analytical intent but follow this SKILL.md's current output and visualization rules.

同じリポジトリから

関連する Skills

すべての Skills
haskaomni
コミュニティ

bayesian-intrinsic-growth-valuation

Use a Bayesian intrinsic-growth valuation model to evaluate whether a company's market value sufficiently, excessively, or insufficiently prices its real 3-5 year growth. Use when the user asks for Bayesian valuation, intrinsic growth rate, implied growth, growth-hypothesis probabilities, FOMO versus fundamentals, or company analysis based on fundamentals, industry cycle, TAM, market share, margin, valuation multiples, and new information.

1時間の導入数
1
GitHub Stars
633
更新日
7月15日
haskaomni
コミュニティ

buy-side-equity-research-memo

Generate source-backed buy-side equity research memos from a ticker, starting with investment view, target-price scenarios, SEC and IR-backed financial statement analysis, industry chain, competition, valuation, catalysts, variant perception, risks, and monitoring dashboard. Use when the user asks to analyze a stock or ticker, create a buy-side memo, investment committee note, deep equity research report, SOTP or scenario-driven stock analysis, or fund-manager-style company analysis.

1時間の導入数
1
GitHub Stars
633
更新日
7月15日
haskaomni
コミュニティ

juglar-cycle-stock-stage

Classify a listed company and its core industry into Juglar fixed-asset investment cycle stages with probabilities, evidence, counter-evidence, migration signals, and investment implications. Use when the user provides a ticker/company or asks about 朱格拉周期, Juglar cycle, capex cycle, fixed-asset investment cycle, industry cycle phase, recovery, expansion, overheating, downturn, clearing, inventory cycle, capacity cycle, ASP, or supply-demand cycle positioning.

1時間の導入数
1
GitHub Stars
633
更新日
7月15日
haskaomni
コミュニティ

serenity-alpha

Translate market-moving news into investable alpha hypotheses by mapping observed demand changes to revenue lines, supply chains, small-cap financial elasticity, market misclassification, validation metrics, downside risks, and position-sizing conditions. Use when the user shares news, product launches, technology breakthroughs, procurement signals, supply-chain changes, earnings-call clues, or asks for Serenity-style alpha analysis, small-cap beneficiaries, or "news to financial statement" tran

1時間の導入数
1
GitHub Stars
633
更新日
7月15日