Volatility Modeling logo

Volatility Modeling

Community
agiprolabs
volatility-modeling

Volatility estimation, forecasting, and regime classification using GARCH, EWMA, realized volatility, and volatility cones

Overview

Publisheragiprolabs
Repositoryclaude-trading-skills
Skill namevolatility-modeling
Stars
434
Forks
85
Bundled files
4
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 4 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by agiprolabs on GitHub. Read the source before you install it.

Installation

Install the Volatility Modeling AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/agiprolabs/claude-trading-skills/tree/main/skills/volatility-modeling
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/agiprolabs/claude-trading-skills.git /tmp/claude-trading-skills
mkdir -p .claude/skills
cp -r /tmp/claude-trading-skills/skills/volatility-modeling .claude/skills/volatility-modeling
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Volatility Modeling in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Volatility Modeling on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Volatility Modeling is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Volatility Modeling

Volatility — the magnitude of price fluctuations — is arguably the single most important quantity in trading. It drives position sizing, stop placement, option pricing, and regime detection. This skill covers estimation, forecasting, and practical application of volatility in crypto markets.

Why Volatility Matters

Use CaseHow Volatility Is Used
Position sizingScale position inversely with vol so each trade risks a consistent dollar amount
Stop placementATR-based stops widen in high-vol regimes, tighten in low-vol
Strategy selectionMean-reversion works in low vol; momentum works in high vol
Risk budgetingVol-target portfolios maintain constant portfolio-level risk
Regime detectionVol regime shifts signal changing market dynamics
Option pricingImplied vs realized vol gap creates trading opportunities

Types of Volatility

Historical (Realized) Volatility

Computed from observed past returns. The most common and directly measurable form. Multiple estimators exist with different statistical efficiency.

Implied Volatility

Derived from option prices via Black-Scholes or similar models. Limited in crypto DeFi where liquid options markets are sparse, but available on Deribit for BTC/ETH.

Forecast Volatility

Predicted future volatility from models like EWMA or GARCH. Used for forward-looking position sizing and risk budgets.


Estimation Methods

1. Close-to-Close (Standard Deviation of Log Returns)

The simplest estimator. Compute the standard deviation of log returns and annualize.

python
import numpy as np

log_returns = np.log(closes[1:] / closes[:-1])
vol_daily = np.std(log_returns, ddof=1)
vol_annual = vol_daily * np.sqrt(365)  # crypto trades 365 days
  • Pros: Simple, widely understood.
  • Cons: Uses only close prices — ignores intraday range.

2. Parkinson (High-Low Range)

Uses the daily high-low range, which is ~5x more statistically efficient than close-to-close.

python
hl_ratio = np.log(highs / lows)
vol_parkinson = np.sqrt(np.mean(hl_ratio**2) / (4 * np.log(2))) * np.sqrt(365)
  • Pros: More efficient, captures intraday moves.
  • Cons: Downward bias with discrete sampling; ignores close-to-close jumps.

3. Garman-Klass (OHLC)

The most efficient single-day OHLC estimator.

python
hl = np.log(highs / lows)
co = np.log(closes / opens)
gk = np.mean(0.5 * hl**2 - (2 * np.log(2) - 1) * co**2)
vol_gk = np.sqrt(gk) * np.sqrt(365)
  • Pros: Best efficiency among OHLC estimators.
  • Cons: Assumes no drift; sensitive to opening gaps.

4. Yang-Zhang

Combines overnight (close-to-open) and open-to-close components. Handles gaps properly. Less relevant for 24/7 crypto but useful for tokens with sporadic trading.

5. EWMA (Exponentially Weighted Moving Average)

RiskMetrics approach — no parameters to estimate beyond λ.

python
lam = 0.94  # RiskMetrics default for daily
ewma_var = np.zeros(len(returns))
ewma_var[0] = returns[0] ** 2
for t in range(1, len(returns)):
    ewma_var[t] = lam * ewma_var[t - 1] + (1 - lam) * returns[t - 1] ** 2
vol_ewma = np.sqrt(ewma_var) * np.sqrt(365)
  • λ = 0.94 for daily data (RiskMetrics).
  • λ = 0.97 for weekly data.
  • Higher λ → smoother, slower reaction to new information.

6. GARCH(1,1)

The workhorse autoregressive volatility model. Captures volatility clustering.

σ²_t = ω + α · r²_{t-1} + β · σ²_{t-1}
  • ω: long-run variance weight.
  • α: reaction to recent shock (typically 0.05–0.15 for crypto).
  • β: persistence (typically 0.80–0.90 for crypto).
  • α + β < 1: stationarity constraint.
  • Long-run variance: ω / (1 − α − β).

Estimated via maximum likelihood. See references/estimators.md for details.


Volatility Cones

Volatility cones show the percentile distribution of realized volatility at different lookback windows, revealing whether current vol is historically high or low.

Construction

  1. Get 1+ years of daily data.
  2. For each lookback window (5, 10, 20, 60, 120 days):
    • Compute rolling realized volatility.
    • Extract percentiles: 5th, 25th, 50th, 75th, 95th.
  3. Plot percentiles vs window length — the "cone" shape.
  4. Overlay current realized vol at each window.

Interpretation

  • Current vol > 75th percentile: historically elevated — expect mean reversion.
  • Current vol < 25th percentile: historically compressed — expect expansion.
  • Cone narrowing at longer windows: vol mean-reverts over longer horizons.

See references/volatility_cones.md for full methodology and worked examples.


Crypto Volatility Characteristics

Crypto vol differs from traditional assets in important ways:

CharacteristicDetail
Level50–150% annualized is typical; TradFi equities are 15–25%
ClusteringStrong — high-vol days cluster together
Weekday patternsWeekend vol often lower but weekend gaps can be large
Volume correlationVol and volume are positively correlated
Regime dependenceBull market vol ≠ bear market vol; ranges are different
Mean reversionVol mean-reverts more reliably than price
Tail riskFat tails — more extreme moves than normal distribution predicts

Regime Classification by Volatility

RegimeAnnualized Vol RangeCharacteristics
Low vol< 40%Range-bound, mean reversion works
Normal vol40–80%Trending possible, balanced strategies
High vol80–120%Strong trends or sharp reversals
Crisis vol> 120%Liquidation cascades, reduced position size

Volatility Forecasting

EWMA Forecast

Simple and effective. The current EWMA variance estimate is the 1-step forecast. Multi-step forecasts are flat (same as 1-step).

GARCH Forecast

GARCH produces a term structure of variance forecasts:

σ²_{t+h} = V_L + (α + β)^h · (σ²_t − V_L)

Where V_L = ω / (1 − α − β) is the long-run variance.

  • Short-horizon forecasts reflect current conditions.
  • Long-horizon forecasts converge to long-run variance.
  • The speed of convergence depends on α + β (persistence).

See scripts/vol_forecast.py for a working implementation.


Practical Applications

Position Sizing with Volatility

python
# Vol-target position sizing
target_vol = 0.02  # 2% daily portfolio vol target
current_vol = 0.05  # 5% daily asset vol (annualized ~95%)
weight = target_vol / current_vol  # = 0.40 → 40% allocation

See the position-sizing skill for complete integration.

ATR-Based Stop Placement

python
atr_14 = talib.ATR(highs, lows, closes, timeperiod=14)
stop_distance = 2.0 * atr_14[-1]  # 2x ATR stop
stop_price = entry_price - stop_distance  # for longs

Vol-Regime Strategy Selection

python
vol_percentile = current_vol_percentile(token, window=30)
if vol_percentile < 25:
    strategy = "mean_reversion"
elif vol_percentile > 75:
    strategy = "momentum_breakout"
else:
    strategy = "balanced"

Files

References

FileDescription
references/estimators.mdFull derivations and details for all volatility estimators
references/volatility_cones.mdCone construction methodology and interpretation guide

Scripts

FileDescription
scripts/estimate_volatility.pyMulti-estimator volatility computation with cone analysis
scripts/vol_forecast.pyEWMA and GARCH forecasting with term structure output

Related Skills

  • regime-detection — Classify market regimes using volatility as a key input.
  • position-sizing — Scale positions inversely with volatility.
  • risk-management — Portfolio-level vol targeting and risk budgets.
  • pandas-ta — ATR and Bollinger Bands are volatility-based indicators.
  • custom-indicators — Build crypto-specific volatility indicators.

Dependencies

bash
uv pip install pandas numpy scipy

Optional for live data:

bash
uv pip install httpx

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Volatility Modeling AI skill do?

Volatility estimation, forecasting, and regime classification using GARCH, EWMA, realized volatility, and volatility cones

Why use Volatility Modeling on TypingMind?

Because you install it once and use it with any model. Volatility Modeling is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Volatility Modeling in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/agiprolabs/claude-trading-skills/tree/main/skills/volatility-modeling. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Volatility Modeling?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Volatility Modeling?

As many as you like. As long as a model supports skills, you can use Volatility Modeling with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Volatility Modeling AI skill free?

Yes. It is published on GitHub by agiprolabs under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇