Skip to main content

Parkinson Vol

Quick Reference

PropertyValue
Dimensionsignal
Categoryvolatility
Versionv0.9.0 (Beta)
Output Columnparkinson_vol

Parkinson volatility estimator: sqrt(1/(4*ln2) * ln(H/L)^2) from bar OHLC

Formula

sqrt(clip((log((high / low)) * log((high / low))), 0.0))

CDM Inputs

ColumnCDM TableDescription
highcdm_*CDM source table
lowcdm_*CDM source table

Parameters

This FeatureType has no configurable parameters.

Output

Column: parkinson_vol

Parkinson volatility estimate

Market Intuition & Trading Rationale

Parkinson volatility uses the high-low range to estimate volatility: sqrt(ln(H/L)² / (4·ln2)). It's approximately 5.2× more efficient than close-to-close volatility — the high-low range captures intra-bar price excursions that close-to-close misses. Parkinson only requires high and low prices (no open/close needed), making it usable when OHLC data is incomplete. The clip ensures the argument to sqrt is non-negative.

Usage Cases

  • Bar-level volatility with minimal data: Use when only high/low prices are available. More efficient than close-to-close vol for the same number of observations.
  • Intra-bar excursion measurement: Parkinson vol captures the maximum price range within each bar. Compare with realized_vol — when Parkinson >> realized, the bar contained large intra-bar swings that reversed.
  • Volatility estimator ensemble: Combine Parkinson with Garman-Klass and realized_vol for a robust multi-estimator vol measure. Each estimator captures different aspects of the price process.

YAML Definition

name: parkinson_vol
description: 'Parkinson volatility estimator: sqrt(1/(4*ln2) * ln(H/L)^2) from bar
OHLC'
category: volatility
version: v0.9.0 (Beta)
dimension: signal
status: Pre-release
required_inputs:
- high
- low
output_column: parkinson_vol
output_description: Parkinson volatility estimate
parameters: {}
formula: sqrt(clip((log((high / low)) * log((high / low))), 0.0))