TradingView indicator guide

Synthetic VIX indicator: price proxy vs options VIX

A synthetic VIX indicator usually refers to a price-based proxy such as Williams VIX Fix (WVF). WVF measures the percentage distance from the highest closing price in a chosen window to the current bar's low. Cboe VIX instead derives expected S&P 500 volatility from SPX option prices. Similar-looking spikes do not make these interchangeable: a WVF reading is neither implied volatility nor a forecast of the next move.

Draft a synthetic VIX indicator

Calculate Williams VIX Fix from prices

Define H as the highest close across the latest N bars, including the current bar, and L as the current low. Then WVF = 100 × (H − L) / H. Larry Williams used N = 22 in his published formula. Replacing the highest close with the highest high, or replacing the current low with the close, produces a different indicator.

  • These are hypothetical prices for checking arithmetic, not market observations or performance results.
  • Require a positive H and enough valid bars for the selected window. Treat missing data or a zero denominator as unavailable, rather than forcing a zero reading.
  • On a five-minute chart, N = 22 covers 22 five-minute bars. Specify a daily calculation separately if that is the intended horizon.
Illustrative inputValueCalculation
Highest close over 22 bars, H100Use closes, not intrabar highs.
Current bar low, L92The low of this bar, not the lowest low across 22 bars.
WVF8%100 × (100 − 92) / 100 = 8.
Same prices scaled by 10H = 1,000; L = 920WVF remains 8%.

Why a price proxy is not Cboe VIX

Cboe describes VIX as a measure of market expectations conveyed by SPX option prices. WVF contains no option prices, maturities or implied-volatility calculation. A symbol with OHLC history can support the price formula even when it has no traded options, but that does not create an options-based volatility index for that symbol.

  • Do not use a WVF value as an implied-volatility input to an option-pricing model.
  • A price-distance measure can rise during a selloff. It need not capture an expensive option market before an event, or large upward moves with little distance below recent highs.
PropertyWilliams VIX FixCboe VIX
InputsHighest closing price and current lowSPX option quotes across strikes and selected expirations
Time horizonUser-selected historical bar windowConstant 30-day expected volatility
Meaning of a readingPercentage price distance below a recent closing highAnnualized expected volatility implied by the options calculation
Changing the chart symbolChanges the price series used in WVFDoes not turn the S&P 500 VIX into that symbol's volatility index

Separate percentage scaling from range normalization

Dividing by H removes the price unit; multiplying by 100 expresses a percentage. It does not annualize WVF or calibrate it to VIX. Additional normalization answers a different question: how unusual is this reading relative to this instrument's own history?

  • Hypothetical example: raw WVF = 8 with a window minimum of 2 and maximum of 10 has a range-normalized value of 75. The raw reading is still 8%, not 75% implied volatility.
  • A fixed fraction of the highest WVF, such as 0.85 × the rolling maximum, is a fraction-of-maximum threshold. It is not the 85th percentile.
  • Keep raw values visible beside normalized values. A short or unusually calm reference window can make a modest price move appear extreme.
DisplayExplicit definitionInterpretation
Raw WVF100 × (H − L) / HDistance from a recent closing high in percent.
Range-normalized WVF100 × (WVF − minimum WVF) / (maximum WVF − minimum WVF), using the latest M observations including the current onePosition within the selected observed range, not a probability. Return unavailable when maximum equals minimum.
Percentile rank example100 × count of the preceding M WVF observations less than or equal to the current WVF / MRelative rank under this stated tie convention. Other scripts may define ties or the window differently.

An extreme reading is not a reversal signal

The formula has no entry or exit rule. A high WVF can persist as prices continue falling, while a low reading can persist as prices keep rising. Crossing a chosen band or percentile identifies a condition under that rule; it does not establish a profitable trade.

  • The 100/90 and 95/90 values are hypothetical and isolate the rolling-window effect.
  • If testing a reversal idea, define the confirmation event, next executable entry, exit, position size and costs separately. Evaluate new data that was not used to choose the thresholds.
SituationFormula behaviorPossible misreading
Repeated new lows during a declineL falls while the recent closing high remains in the window.Calling each new spike the final bottom.
The old highest close leaves the windowWith L unchanged at 90, H dropping from 100 to 95 reduces WVF from 10 to about 5.26.Treating a falling WVF as proof that price recovered.
A strong upward move near a new closing highThe distance from H to L may remain small.Treating low WVF as proof of low volatility in both directions.
A single exceptional lowRaw WVF spikes; normalization windows can remain affected after that bar.Assuming the same normalized threshold means the same absolute move later.

Where the proxy can fail across markets

Removing the price unit does not remove differences in trading hours, price behavior or data construction. Use a threshold only with a specified symbol, feed, timeframe and history. Applying the same number everywhere is an assumption that needs testing.

  • Equities: a split or an inconsistent adjustment across the lookback can create an artificial distance. Keep the adjustment policy consistent when checking historical readings.
  • Crypto: 22 daily bars cover 22 calendar days on a continuous feed; they are not the same calendar span as 22 equity trading sessions. A large upside move can be poorly represented by this downside-distance formula.
  • Forex: the measure follows the selected quote direction. Reversing a currency pair changes which moves appear as declines, so it is not a symmetric measure of currency volatility.
  • Futures: contract rolls, back-adjustment and zero or negative prices can undermine the percentage interpretation. A nonpositive H is outside the stated formula assumptions.
  • Illiquid instruments: a stale close or isolated low can dominate the output. Inspect the underlying bars before interpreting an extreme.
  • Heikin Ashi and other nonstandard charts: synthetic OHLC can change the input meaning. Start validation on standard candlesticks, or explicitly request standard market data.

Check the chart values and confirmation time

In TradingView, choose a script whose formula and source can be inspected. Set the symbol, session and timeframe, then select several completed bars in the Data Window. Compare the published output with a manual highest-close/current-low calculation before enabling any alert.

  • Check a bar near a recent high, a selloff bar and the bar where an old closing high leaves the window. These cases test different parts of the calculation.
  • The current low and close can change before the bar closes, so a developing WVF and its thresholds can change too. For completed-bar decisions, require confirmation at that calculation timeframe's close.
  • An intraday bar close does not confirm an unfinished daily calculation. A higher-timeframe version needs an explicit policy for developing versus previously completed daily data.
  • If comparing WVF with Cboe VIX, align dates and sessions and label separate scales. Similar visual shapes are not a calibration test or evidence of forecasting accuracy.

Draft a proxy you can inspect with Pineify

Ask Pineify's AI Coding Agent for a separate-pane indicator using the formula above, with an adjustable lookback, positive-denominator and history checks, raw WVF output and an optional clearly named normalization. Request the H and L inputs in the Data Window so each value can be checked against the chart.

  • State whether decisions use the chart timeframe or completed daily data. Define a threshold crossing separately from a condition that remains true on every bar.
  • Ask the agent to explain the formula and run a syntax check. Review the generated source and compare values in TradingView; successful compilation does not validate a volatility forecast or trading rule.
Where Pineify fits

Pine Script AI Coding Agent

Draft and explain a price-based volatility proxy with explicit inputs, normalization and confirmation rules, then compare its output against your TradingView chart.

Draft a synthetic VIX indicator

Frequently asked questions

Educational information, not investment advice. Numerical examples are hypothetical. A price-based proxy is not an options-implied volatility index and does not guarantee reversal signals or trading returns.

Sources and verification

Published by Pineify. Pineify is an independent product and is not affiliated with TradingView. Sources support the technical explanations; examples do not establish trading performance.