Skip to main content

cones

Calculate the realized volatility quantiles over rolling windows of time.

The cones indicator is designed to map out the ebb and flow of price movements through a detailed analysis of volatility quantiles. By examining the range of volatility within specific time frames, it offers a nuanced view of market behavior, highlighting periods of stability and turbulence.

The model for calculating volatility is selectable and can be one of the following:

  • Standard deviation
  • Parkinson
  • Garman-Klass
  • Hodges-Tompkins
  • Rogers-Satchell
  • Yang-Zhang

Read more about it in the model parameter description.

Examples

from openbb import obb
# Realized Volatility Cones.
stock_data = obb.equity.price.historical(symbol='TSLA', start_date='2023-01-01', provider='yfinance')
cones_data = obb.technical.cones(data=stock_data.results, lower_q=0.25, upper_q=0.75, model='std')
obb.technical.cones(data='[{'date': '2023-01-02', 'open': 110.0, 'high': 120.0, 'low': 100.0, 'close': 115.0, 'volume': 10000.0}, {'date': '2023-01-03', 'open': 165.0, 'high': 180.0, 'low': 150.0, 'close': 172.5, 'volume': 15000.0}, {'date': '2023-01-04', 'open': 146.67, 'high': 160.0, 'low': 133.33, 'close': 153.33, 'volume': 13333.33}, {'date': '2023-01-05', 'open': 137.5, 'high': 150.0, 'low': 125.0, 'close': 143.75, 'volume': 12500.0}, {'date': '2023-01-06', 'open': 132.0, 'high': 144.0, 'low': 120.0, 'close': 138.0, 'volume': 12000.0}]')

Parameters

data: list[openbb_core.provider.abstract.data.Data]
The data to use for the calculation.

index: str
Default: date
Index column name to use with data, by default 'date'

lower_q: float
Default: 0.25
The lower quantile value for calculations

upper_q: float
Default: 0.75
The upper quantile value for calculations

model: Literal['std', 'parkinson', 'garman_klass', 'hodges_tompkins', 'rogers_satchell', 'yang_zhang']
Default: std
The model used to calculate realized volatility

is_crypto: bool
Whether the data is crypto or not. If True, volatility is calculated for 365 days instead of 252

trading_periods: int
Number of trading periods in a year.


Returns

results: list[Data]

Serializable results.

provider: None

Provider name.

warnings: Optional[list[Warning_]]

list of warnings.

chart: Optional[Chart]

Chart object.

extra: dict[str, Any]

Extra info.