Skip to content
Finance
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. Use when the user provides a ticker or asks for GF-DMA

BOOST
From plugin
haskaomni-serenity-skill
6336 skills
Install
$ npx -y skills add haskaomni/serenity-skill --skill gf-dma-health-index --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/gf-dma-health-index

Context preview

The summary Claude sees to decide when to auto-load this skill.

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. Use when the user provides a ticker or asks for GF-DMA

SKILL.md

gf-dma-health-index.SKILL.md
name: gf-dma-health-index
description: 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. Use when the user provides a ticker or asks for GF-DMA scoring, valuation health, trend health, healthy momentum, overheated/escape risk, or whether a rising/falling stock is fundamentally supported.

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:

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:

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:

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:

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:

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:

R_x = G_DMAx / G_f

Interpret `R_50` and `R_100` first:

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

Core DMA emphasis:

| Stock type | Key DMA | | --- | --- | | Mega-cap growth leaders like NVDA, AVGO, MSFT | 50DMA | | Memory/cyclical semis like MU, SNDK | 100DMA | | High-elasticity optical names like LITE, AAOI | 20DMA + 50DMA | | Industrial AI/power names like ETN, VRT, TEL | 100DMA + 200DMA | | Small-cap hard-manufacturing names like SIVE, CPSH | 20DMA + ATR divergence | | Semiconductor ETFs like SOXX, SMH | 50DMA + 100DMA |

4. Price-DMA Divergence

Calculate:

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

Interpretation:

| Signal | Status | | --- | --- | | 0%-5% above 20DMA | Healthy close-to-line trend | | 5%-12% above 20DMA | Strong trend, mild valuation stretch | | 12%-20% above 20DMA | Hot; divergence score should fall | | >20% above 20DMA | Short-term escape; divergence score should fall sharply | | >30% above 50DMA | Medium-term overheat | | >50% above 100DMA | Major repricing | | >100% above 200DMA | Extreme long-cycle repricing | | 0%-5% below 20/50DMA with stable fundamentals | Healthy pullback; divergence score can rise | | 5%-15% below 50DMA with stable/improving fundamentals | Better valuation entry, but verify trend damage separately | | Below 100/200DMA with deteriorating fundamentals | Trend damage; do not treat as cheap automatically |

ATR divergence is asymmetric:

| Z_x | Status | | ---: | --- | | 0 to 2 | Healthy | | 2 to 3 | Hot | | 3 to 4 | Very hot | | >4 | Escape; reduce divergence score sharply | | -1 to 0 with stab

Read more
Ships withhaskaomni-serenity-skill

Codex skills for translating market information into testable investment research frameworks.

Get the whole plugin
Stats
633
Stars
97
Forks
Maintained
Maintenance
MIT
License
3mo ago
Last commit
4mo ago
Created
4h ago
Added

Repo: haskaomni/serenity-skill

Other skills on haskaomni-serenity-skill.