Relative Volume
Relative Volume - current volume compared to 20-day average.Calculation:Example:
2.50 (current volume is 2.5x the 20-day average)Source: Calculated from OHLCV dataLocation: advanced_metrics_processor.py:65-66, 82Precision: Rounded to 2 decimal placesInterpretation:- RVOL < 0.5: Very low volume (illiquid day)
- RVOL 0.8-1.2: Normal volume
- RVOL 1.5-2.5: Above average interest
- RVOL > 3.0: Exceptional volume (investigate catalyst)
- Breakout confirmation (high RVOL + price move = stronger signal)
- Liquidity screening (avoid stocks with consistently low RVOL)
- Event detection (spikes indicate news/results/corporate actions)
Volume Moving Averages
200-day Exponential Moving Average of daily volume.Calculation:Example:
5234567 (shares)Source: Calculated from OHLCV dataLocation: advanced_metrics_processor.py:68-69, 86Precision: Rounded to 0 decimal places (integer shares)Use Cases:- Long-term volume trend assessment
- Compare current volume against long-term baseline
- Identify structural changes in trading activity
Distance from 52-week high of 200-day EMA Volume.Calculation:Example:
-25.30 (volume trend is 25.3% below its 52-week peak)Source: Calculated from OHLCV dataLocation: advanced_metrics_processor.py:71-73, 87Precision: Rounded to 2 decimal placesInterpretation:- Negative: Volume trend declining (possible loss of interest)
- Near 0%: Volume at peak levels (high participation)
- Positive: Volume expanding beyond historical norms
Rupee Turnover Metrics
Average daily rupee turnover over the past 30 days.Unit: Crores (Cr.)Calculation:Example:
450.80Source: Calculated from OHLCV dataLocation: advanced_metrics_processor.py:62-63, 81Precision: Rounded to 2 decimal placesUse Cases:- Institutional liquidity threshold screening
- Position sizing (ensure turnover supports your trade size)
- Market impact estimation
20-day moving average of daily rupee turnover.Unit: Crores (Cr.)Calculation:Example:
425.60Source: Calculated from OHLCV dataLocation: advanced_metrics_processor.py:76, 83Precision: Rounded to 2 decimal places50-day moving average of daily rupee turnover.Unit: Crores (Cr.)Calculation:Example:
410.30Source: Calculated from OHLCV dataLocation: advanced_metrics_processor.py:77, 84Precision: Rounded to 2 decimal places100-day moving average of daily rupee turnover.Unit: Crores (Cr.)Calculation:Example:
395.20Source: Calculated from OHLCV dataLocation: advanced_metrics_processor.py:78, 85Precision: Rounded to 2 decimal placesUse Case: Long-term liquidity trend analysisTurnover Analysis
Comparing the three turnover moving averages reveals liquidity trends:- 20 > 50 > 100: Increasing liquidity (bullish for tradability)
- 100 > 50 > 20: Decreasing liquidity (caution for large positions)
- All similar: Stable liquidity environment
Liquidity Screening Guidelines
For different trading strategies:Intraday Trading
- Minimum RVOL: > 1.0
- Minimum Daily Rupee Turnover 20: > 50 Cr.
- Day Range(%): > 2% (sufficient volatility)
Swing Trading (1-2 weeks)
- Minimum Daily Rupee Turnover 20: > 20 Cr.
- Minimum 30 Days Average Rupee Volume: > 15 Cr.
Positional Trading (1-3 months)
- Minimum Daily Rupee Turnover 50: > 10 Cr.
- Consistent volume (avoid stocks with erratic RVOL)
Institutional/Large Orders
- Minimum Daily Rupee Turnover 100: > 100 Cr.
- 200 Days EMA Volume: High and stable
- Market Cap: > 5,000 Cr. (cross-reference with valuation fields)
Data Sources
- OHLCV CSV Data (
ohlcv_data/*.csv): All volume and turnover calculations - Calculation Engine:
advanced_metrics_processor.pywith pandas operations
Processing Notes
- EMA Calculation: Uses pandas
ewm(span=periods, adjust=False).mean() - Turnover Formula:
(Close Price × Volume) / 10,000,000for Crore conversion - Default Values: All fields default to
0.0if OHLCV data unavailable - Thread Pool Execution: Volume calculations run in parallel (10 workers) for performance
- Minimum Data Requirement: At least 5 rows of OHLCV data needed per symbol
Source Code Reference
- Volume calculations:
advanced_metrics_processor.py:62-78, 81-87 - EMA helper function:
advanced_metrics_processor.py:14-15 - Parallel processing:
advanced_metrics_processor.py:125-130 - Field merging:
advanced_metrics_processor.py:132-166 - Output schema:
all_stocks_fundamental_analysis.json