Skip to main content

Official template · advanced · Volatility

Compare vendor HV with calculated RV20.

Catch the trap of treating vendor HV as realized vol before you compare IV to “realized.”

Open this recipe Eligible trial or subscription required
HV vs. RV Divergence Watch · 21-second walkthroughMarket session Sep 25, 2026

The report UI is recreated from the test app's Sep 25, 2026 session, not a live screen. A historical example with music; no narration.

HV vs. RV Divergence Watch · real test-app reportMarket session Sep 22, 2026Swipe to inspect →
Real HV vs. RV Divergence Watch report in the TradingFlow test app, showing HV vs RV20, ranked by absolute gap for the September 22, 2026 market session.

Captured Sep 23, 2026 on testapp.tradingflow.com. This is a historical example; results on this page do not refresh. Swipe across the image to inspect its columns.

HV vs. RV Divergence Watch · how the report is assembledConceptual map
  1. 01Vendor HV + returns
  2. 02Compare with RV20
  3. 03Signed vol-point gap

Vendor HV has an unspecified window; RV20 is calculated separately.

Read the output

  1. 01Vendor HV from SymbolMetaData.historical_volatility (window unspecified).
  2. 02RV20 = sample standard deviation of the last 20 valid ln(close/prior close) returns, annualized √252.
  3. 03Signed HV − RV20 in volatility points, ranked by absolute gap. IV30 is context only.

Keep in mind

Vendor HV is not RV20. This recipe exists so those labels stay apart.

How to read it

From report to evidence
  1. 01

    Run the divergence watch

    Open HV vs. RV Divergence Watch in Cookbooks.

  2. 02

    Read the HV column as vendor, the RV20 column as governed

    If a name is missing, it lacked 20 valid close/pre-close pairs. That is unavailable, not a zero realized vol.

  3. 03

    Use Rank for IV30 − RV20

    Selling premium because “IV is rich to HV” is a different job. Rank Symbols holds the governed IV30 versus RV20 spread.

Method and limitations

A paid Cookbook that ranks names where vendor historical volatility disagrees with RV20 computed from 20 complete session log-returns × √252. Names with fewer than 20 valid returns are omitted, not padded. Vendor HV is never called RV20. Official app template: HV vs. RV Divergence Watch.

What the report computes

  • Vendor HV from SymbolMetaData.historical_volatility (window unspecified).
  • RV20 = sample standard deviation of the last 20 valid ln(close/prior close) returns, annualized √252.
  • Signed HV − RV20 in volatility points, ranked by absolute gap. IV30 is context only.

What it does not claim

  • Vendor HV is not RV20. This recipe exists so those labels stay apart.
  • It is not the Rank Symbols IV30 − RV20 comparison (forward IV vs trailing RV).
  • A large gap is not a mispricing, VRP edge, or trade signal.

RV20 here is stddevSamp of exactly 20 valid close/pre-close log returns × √252; vendor historical_volatility stays labeled Vendor HV and is never used as that series.

Frequently asked questions

Is the HV column RV20?
No. HV is the vendor historical_volatility field. RV20 is computed here from 20 complete session log-returns × √252. The two must not be substituted.
Should I sell premium when HV is above RV20?
This recipe does not say so. IV30 − RV20 on Rank is the implied-versus-realized comparison; even that is descriptive, not a published edge.
More learning resources

The public page explains the report. Run the official template in TradingFlow for a selected completed market session.

Open HV vs RV
← All recipes