Enhanced version of the original Option-Positioning-Ratios repository with Databento integration, universe-wide processing, and advanced alpha generation capabilities.
- Databento OPRA.PILLAR vs yfinance (institutional vs retail)
- Nanosecond timestamps vs daily data
- Complete order book depth vs limited quotes
- Real-time Greeks calculation vs simplified estimates
- 3,500+ equity options vs single ticker analysis
- Parallel processing for institutional scale
- Cross-asset correlation analysis
- Relative ranking within universe
- Institutional flow detection algorithms
- Volatility surface anomaly identification
- Gamma concentration analysis for pinning risk
- Geopolitical sensitivity scoring
- Snowflake integration with incremental loading
- Real-time alerting system
- API-first design for integration
- Error handling and data quality validation
- Put/Call Volume Ratio - Sentiment analysis with liquidity filtering
- Open Interest Ratio - Structural positioning with notional weighting
- Skew Shift Ratio - Fear premium detection with moneyness filtering
- Delta Exposure Ratio - Directional positioning with volume weighting
- Gamma Exposure Ratio - Market maker inventory with GEX calculation
- Institutional Flow Score - Large trade detection and flow acceleration
- Volatility Surface Anomaly - Cross-expiration IV dispersion analysis
- Gamma Concentration Score - Key strike identification for pinning risk
- Market Maker Inventory Bias - Dealer positioning estimation
- Unusual Activity Detector - Comprehensive anomaly detection framework
- Percentile Rankings - Compare any metric across 3,500+ equities
- Relative Strength Score - Cross-asset performance analysis
- Geopolitical Sensitivity - Defense tech and event exposure scoring
- Liquidity Quality Score - Multi-dimensional liquidity assessment
- Short-term (1-5 days) - Flow and momentum-based signals
- Medium-term (1-4 weeks) - Setup and positioning-based signals
- Long-term (1-3 months) - Volatility regime and structural signals
- Geopolitical Event Signals - Taiwan scenario and defense tech analysis
- Liquidity Score - Tradeability assessment
- Concentration Risk - Strike and expiration concentration
- Regime Detection - Market regime identification
- Data Quality Score - Confidence assessment
# Clone the enhanced repository
git clone https://github.com/theoddden/Option-Positioning-Ratios.git
cd Option-Positioning-Ratios
# Install dependencies
pip install databento pandas numpy scipy snowflake-connector-python asyncio
# Set up Databento API key
export DATABENTO_API_KEY="your_api_key_here"from databento_enhanced_options_ratios import DatabentoOptionsEngine, OptionsConfig, AlphaGenerator
# Configure for institutional use
config = OptionsConfig(
databento_api_key="your_api_key",
snowflake_config={
'user': 'your_username',
'password': 'your_password',
'account': 'your_account',
'warehouse': 'your_warehouse',
'database': 'your_database',
'schema': 'your_schema'
},
universe_symbols=['SPY', 'QQQ', 'PLTR', 'RKLB'], # Optional - auto-discovery available
volume_threshold=1000, # $1M notional trades
notional_threshold=1000000
)
# Initialize engine
engine = DatabentoOptionsEngine(config)
# Process single symbol
ratios = engine.calculate_enhanced_ratios('PLTR', '2026-04-20', '2026-04-22')
print(f"Put/Call Volume Ratio: {ratios['put_call_volume_ratio']:.3f}")
print(f"Skew Shift Ratio: {ratios['skew_shift_ratio']:.3f}")
print(f"Alpha Signal: {ratios['short_term_alpha_signal']}")
# Process entire universe (3,500+ symbols)
import asyncio
universe_results = await engine.process_universe('2026-04-20', '2026-04-22')
# Generate alpha signals
alpha_gen = AlphaGenerator(engine)
alpha_signals = alpha_gen.generate_universe_alpha_signals(universe_results)
print(f"Top bullish signals: {len(alpha_signals['top_bullish_signals'])}")
print(f"Unusual activity alerts: {len(alpha_signals['unusual_activity_alerts'])}")# Get complete options universe
universe = engine.get_universe_symbols()
print(f"Found {len(universe)} equity option symbols")
# Process with parallel execution
results = await engine.process_universe('2026-04-20', '2026-04-22')
# Store to Snowflake for historical analysis
engine.store_to_snowflake(results)Databento OPRA.PILLAR
-> Real-time Options Data
-> Enhanced Greeks Calculation
-> Positioning Ratios Engine
-> Alpha Generation Framework
-> Snowflake Storage
-> API Endpoints
- Data Ingestion: Databento API with nanosecond timestamps
- Symbol Parsing: OCC symbol format with strike/expiry extraction
- Greeks Calculation: Real-time Black-Scholes with dividend adjustments
- Ratio Calculation: Enhanced algorithms with liquidity filtering
- Universe Analysis: Cross-asset relative ranking and correlation
- Alpha Generation: Multi-timeframe signal generation
- Risk Assessment: Liquidity, concentration, and regime analysis
- Storage: Snowflake with incremental materialization
# Real-time portfolio integration
class PortfolioManager:
def __init__(self, options_engine):
self.engine = options_engine
self.positions = {}
def update_portfolio_signals(self):
# Get current portfolio symbols
symbols = list(self.positions.keys())
# Calculate ratios for all positions
for symbol in symbols:
ratios = self.engine.calculate_enhanced_ratios(
symbol,
datetime.now().strftime('%Y-%m-%d'),
datetime.now().strftime('%Y-%m-%d')
)
# Update position based on signals
if ratios['short_term_alpha_signal'] == 'STRONG_BULLISH':
self.adjust_position(symbol, 'increase')
elif ratios['short_term_alpha_signal'] == 'BEARISH':
self.adjust_position(symbol, 'decrease')# Real-time alerting
class AlertSystem:
def __init__(self, options_engine):
self.engine = options_engine
def monitor_alerts(self):
while True:
# Get latest universe data
universe_data = await self.engine.process_universe(
datetime.now().strftime('%Y-%m-%d'),
datetime.now().strftime('%Y-%m-%d')
)
# Generate alpha signals
alpha_gen = AlphaGenerator(self.engine)
signals = alpha_gen.generate_universe_alpha_signals(universe_data)
# Send alerts for critical signals
if signals['top_bullish_signals']:
self.send_alert('BULLISH_SIGNALS', signals['top_bullish_signals'])
if signals['unusual_activity_alerts']:
self.send_alert('UNUSUAL_ACTIVITY', signals['unusual_activity_alerts'])
# Wait for next update
await asyncio.sleep(60) # 1-minute updatesexport DATABENTO_API_KEY="your_api_key"
export SNOWFLAKE_USER="your_username"
export SNOWFLAKE_PASSWORD="your_password"
export SNOWFLAKE_ACCOUNT="your_account"
export SNOWFLAKE_WAREHOUSE="your_warehouse"
export SNOWFLAKE_DATABASE="your_database"
export SNOWFLAKE_SCHEMA="your_schema"# config.py
DATABENTO_CONFIG = {
'api_key': os.getenv('DATABENTO_API_KEY'),
'dataset': 'OPRA.PILLAR',
'schema': 'mbbo-1',
'universe_size': 3500,
'batch_size': 50,
'parallel_workers': 10
}
SNOWFLAKE_CONFIG = {
'user': os.getenv('SNOWFLAKE_USER'),
'password': os.getenv('SNOWFLAKE_PASSWORD'),
'account': os.getenv('SNOWFLAKE_ACCOUNT'),
'warehouse': os.getenv('SNOWFLAKE_WAREHOUSE'),
'database': os.getenv('SNOWFLAKE_DATABASE'),
'schema': os.getenv('SNOWFLAKE_SCHEMA')
}
ALPHA_CONFIG = {
'volume_threshold': 1000,
'notional_threshold': 1000000,
'iv_expansion_threshold': 0.25,
'gamma_concentration_threshold': 50.0,
'flow_acceleration_threshold': 5.0,
'skew_shift_threshold': 0.15
}- Data Quality: Completeness, accuracy, latency
- Processing Performance: Universe processing time, memory usage
- Alpha Performance: Signal generation rate, success rates
- System Health: API response times, error rates
- Data Quality Alerts: Missing data, unusual spreads
- Performance Alerts: Slow processing, high memory usage
- Alpha Alerts: High-confidence signals, unusual activity
- System Alerts: API failures, storage issues
We welcome contributions from institutional quantitative researchers and developers. Please see CONTRIBUTING.md for guidelines.
- Additional Greeks: Charm, Vanna, Speed
- Volatility Surface Modeling: Parametric surface fitting
- Machine Learning: Pattern recognition in flow data
- Cross-Asset: Equity-options-futures integration
- International Markets: European and Asian options
This project is licensed under the MIT License - see the LICENSE file for details.
- Added Databento integration for institutional data quality
- Implemented universe-wide processing (3,500+ symbols)
- Added advanced alpha generation framework
- Enhanced all core ratios with institutional features
- Added geopolitical sensitivity analysis
- Implemented Snowflake integration
- Added real-time alerting system
- Enhanced risk management capabilities
- Added comprehensive backtesting framework
- Added delta and gamma exposure ratios
- Enhanced skew calculation methodology
- Improved volume and open interest filtering
- Added support for multiple expirations
- Initial release with core positioning ratios
- Basic put/call volume and open interest analysis
- Simple skew shift calculation
- Support for single ticker analysis
Built for serious capital management. Designed for institutional trading desks.