@omdr/volatility-tools
v0.0.1
Published
A lightweight collection of volatility indicators designed for real-time stock market analysis and algorithmic trading. This package includes core volatility tools like ATR, Bollinger Bands, Keltner Channels, Donchian Channels, Chaikin Volatility, and mor
Maintainers
Readme
@omdr/volatility-tools
A lightweight collection of volatility indicators designed for real-time stock market analysis and algorithmic trading. This package includes core volatility tools like ATR, Bollinger Bands, Keltner Channels, Donchian Channels, Chaikin Volatility, and more.
Perfect for integrating into trading bots, dashboards, or analytical pipelines.
Features
- 10 Popular Volatility Indicators
- Minimal Dependencies
- Bundled & Minified with esbuild
- TypeScript types supported
- CommonJS & ESModule compatible
Installation
npm install @omdr/volatility-toolsIncluded Indicators
| Indicator Name | Description |
|---------------------------|-------------------------------------------------------------------------|
| atr | Average True Range (7/14/21) – Measures market volatility |
| bollingerBands | Upper, Middle, Lower bands based on standard deviation |
| keltnerChannels | Uses ATR instead of std deviation for channel construction |
| donchianChannels | Tracks highest high and lowest low over a period |
| chaikinVolatility | Measures volatility based on EMA of price ranges |
| historicalVolatility | Calculates annualized historical volatility using log returns |
| ulcerIndex | Measures downside risk or "ulcer" caused by deep drawdowns |
| relativeVolatilityIndex| RSI-like metric using absolute volatility instead of price |
| annualizedVolatility | Converts standard deviation of returns to annual scale |
| fractalChaosBands | Bands based on highest highs and lowest lows in a fractal window |
Usage
After installing the package:
npm install @omdr/volatility-toolsYou can import and use any of the included volatility tools like so:
// index.js or your main file
const {
atr,
bollingerBands,
keltnerChannels,
donchianChannels,
chaikinVolatility,
historicalVolatility,
ulcerIndex,
relativeVolatilityIndex,
annualizedVolatility,
fractalChaosBands
} = require('@omdr/volatility-tools');
// Example: Calculate 14-period ATR
const priceData = [
{ high: 120, low: 115, close: 118 },
{ high: 122, low: 117, close: 121 },
{ high: 123, low: 119, close: 122 },
// ... more bars
];
const atr14 = atr(priceData, 14);
console.log('ATR(14):', atr14);
// Example: Calculate Bollinger Bands
const closingPrices = [120, 121, 122, 124, 125, 123, 122, 121, 120, 122];
const bb = bollingerBands(closingPrices, 20, 2);
console.log('Bollinger Bands:', bb);You can use the rest of the tools in a similar manner. Each function is pure and expects an array of price data with the relevant fields (close, high, low), depending on the indicator.
Designed For
- Node.js scripts
- Web apps (React, Angular, Vue, etc.)
- VS Code extensions
- Trading dashboards
- Custom strategy engines
🙌 Support This Project
If you find this useful, you can buy me a ☕:
Author & Website
Built with love by Offline Pixel
Follow me for more trading tech magic.
License
MIT — Free to use and extend, commercial or personal.
