This repository contains algorithmic trading strategies for the Rotman 2025 Trading Competition.
Competition ranking: 2nd/75 teams; Best Sharpe Ratio Award
Strategy Overview: Mixed Integer Programming (MIP) approach for optimal vega edge harvesting under strict trading constraints.
Key Innovation: The core differentiator is the use of mixed integer programming to optimally harvest nominal vega edge while operating under strict trade and position controls. This optimization approach ensures maximum profitability while respecting risk constraints.
Technical Implementation:
- Black-Scholes Pricing Engine: Real-time option valuation with dynamic volatility sourced from news feed parsing
- Advanced ILP Solver: Custom PuLP-based optimization with:
- Delta regularization with hinge penalties
- Time-dependent volatility penalties during slow market periods
- Gross/net position limits and per-instrument caps
- Automatic Delta Hedging: Real-time portfolio delta neutralization using underlying ETF
- News Processing: Regex-based volatility extraction from market news with special handling for different announcement formats
- Risk Management: Multi-layered position limits with inventory-aware penalty functions
Performance Metrics:
- Final Ranking: 1/75 teams
Strategy Overview: High-frequency market making strategy capturing arbitrage opportunities between ETF and underlying basket while maintaining delta-neutral exposure.
Key Innovation: Running fast, sticky orders as a market maker to capture arbitrage opportunities between RITC ETF and its underlying basket (BULL + BEAR), with rapid portfolio rebalancing to maintain zero underlying exposure.
Technical Implementation:
- Cross-Book Market Making: Simultaneous quoting across ETF and component securities with inventory skew
- Persistent Limit Orders: Sticky quote management with minimal refresh frequency to reduce latency and API calls
- Multi-Currency Handling: Automatic USD/CAD conversion with real-time FX rate integration
- Inventory Management:
- U-exposure (basket exposure):
q_E + 0.5*(q_A + q_B) - D-exposure (dispersion exposure):
0.5*(q_A - q_B) - Dynamic pricing adjustments based on inventory positions
- U-exposure (basket exposure):
- Opportunistic Crossing: Fast execution when arbitrage opportunities exceed conversion fees plus cushion
Performance Metrics:
- Final Ranking: 13/75 teams
