Sahil Karawade

Options Strategy Recognition

Problem Statement

Options traders and financial educators frequently work with payoff diagrams to visualize strategy outcomes and analyze risk-reward profiles. However, manual identification and parameter extraction from these diagrams is time-consuming, error-prone, and difficult to scale. This project solves this challenge through automated computer vision using deep learning.

By automatically recognizing strategy types and extracting strike prices from visual payoff diagrams, this system enables rapid analysis and documentation of trading strategies, supporting both educational purposes and algorithmic trading applications.

Overview

This project implements a multi-task deep learning system that analyzes options strategy payoff diagrams and automatically identifies:

  • Strategy type (long call, long put, bull call spread, straddle)
  • Strike price ranges and their exact values
  • Strategy structure (number of legs, strike ordering)
  • Premium information encoded in the diagram

Performance Achieved:

100% accuracy in strategy classification • 88.3% accuracy in strike price prediction

Technical Stack

Python
PyTorch
Vision Transformers
EfficientNet
scikit-learn
Lightning AI
Docker
Pandas

Model Architecture

Backbone: EfficientNet-B0

Lightweight yet powerful architecture with only 5M parameters optimized for efficient feature extraction on resource-constrained environments.

  • • Pretrained on ImageNet for transfer learning
  • • Efficient parameter usage without sacrificing accuracy
  • • Suitable for deployment in production systems

Multi-Task Learning Heads

The model uses specialized prediction heads for different but related tasks, enabling better generalization through shared representations:

  • • Strategy Classifier: 4-class classification for strategy type identification
  • • Strike Bin Predictor: 12-class classification using quantile-based binning
  • • Auxiliary Tasks: Number of legs and relative strike positioning

Weighted Loss Function

L_total = 0.3 × L_strategy + 0.35 × L_strikes + 0.25 × L_auxiliary

Carefully tuned loss weights balance the importance of strategy classification, strike price prediction, and auxiliary tasks to optimize overall performance.

Key Features

Perfect Strategy Classification

Achieved 100% accuracy across all four strategy types (long call, long put, bull call spread, straddle) with zero misclassifications on 14,202 validation samples.

Robust Strike Price Prediction

Successfully predicts strike price ranges with 88.3% accuracy. Uses quantile-based binning to handle extreme value ranges ($50 - $50,000) without regression instability.

Comprehensive Data Validation

Extensive error analysis with confusion matrices, per-task metrics, and auxiliary signal validation provides confidence in model predictions and enables interpretability.

Production-Ready Pipeline

Complete ML pipeline with data preprocessing, systematic backtesting, Docker containerization, and reproducible experiments for reliable deployment.

Results & Performance

Performance Metrics

Strategy Classification100.0%
Strike Bin Classification88.3%
Number of Legs Prediction100.0%
Relative Position Accuracy99.8%

Dataset Statistics

Training Samples

42,860

Validation Samples

14,202

Strike Price Range

$50 - $50,000

Input Resolution

224 × 224 px

Technical Challenges & Solutions

Extreme Value Ranges

Challenge: Strike prices span from $50 to $50,000, causing gradient instability in direct regression.
Solution: Implemented quantile-based binning with 12 classes, converting the regression problem into a balanced classification task with bounded outputs.

Visual Precision Limitations

Challenge: Static payoff diagrams lack sufficient visual precision for exact value prediction.
Solution: Designed binning strategy to predict strike price ranges rather than exact values, aligning model capabilities with visual information available in diagrams.

Class Imbalance

Challenge: Strike price bins inherently imbalanced in natural distribution.
Solution: Used quantile-based discretization to ensure balanced bin distribution, combined with weighted sampling during training.

Implementation Details

Training Configuration

  • • Learning rate: 3e-5 with cosine annealing schedule
  • • Batch size: 16 (effective 32 with gradient accumulation)
  • • Number of epochs: 12 with early stopping (patience: 3)
  • • Regularization: Dropout (0.45), Weight decay (0.15)

Data Augmentation

Applied standard ImageNet preprocessing including random cropping, color jittering, and normalization to improve model robustness.

Inference Performance

  • • Single image: ~50ms on GPU, ~200ms on CPU
  • • Batch processing: 20 images/second on GPU
  • • Model size: 22MB (compressed)

Key Learnings

Multi-Task Learning

Deep understanding of how shared representations across related tasks improve generalization and prevent overfitting.

Computer Vision Fundamentals

Practical expertise with vision transformers, transfer learning, and designing effective data preprocessing pipelines.

Problem Formulation

Importance of converting ill-posed regression problems into well-constrained classification tasks for improved stability.

ML Operations

Experience building production ML pipelines with containerization, systematic evaluation, and reproducible experiments.

Limitations & Future Work

Current Limitations

  • •Strike predictions are binned ranges, not exact values
  • •Premium prediction not included (market-dependent)
  • •Limited to four basic strategy types
  • •Performance degrades with low-resolution images

Future Enhancements

  • •Support for complex strategies (iron condors, butterflies)
  • •Multi-format diagram recognition
  • •Uncertainty quantification with confidence scores
  • •Active learning with user feedback integration

Explore the Code

View the complete implementation, training scripts, and evaluation notebooks on GitHub.

View on GitHub