Cherry Picker
Algorithmic Trading System
Overview
Built complete end-to-end quantitative trading system in 2006-2007, before algorithmic trading platforms became accessible to retail traders. Implemented ensemble forecasting using 5 statistical models, processed 15-second interval tick data, and generated automated PDF reports with time-series visualizations.
Built as solo developer while algorithmic trading was still primarily institutional domain. System demonstrated early adoption of ensemble methods, adaptive learning, and systematic trading approaches that wouldn't become mainstream retail practices until the 2010s.
Architecture
Data Processing Pipeline:
- Microsoft SQL Server backend storing tick-by-tick price data
- 15-second intervals with millisecond precision timestamps
- Three-table schema optimized for time-series queries
Forecasting Engine (CpForecasting.java):
- Simple Exponential Smoothing (SES) with auto-parameter optimization
- Double Exponential Smoothing (DES) for trend detection
- Moving Average Models (MAM) for noise reduction
- Weighted Moving Averages (WMA) with custom weighting schemes
- Polynomial Regression (BRR) for nonlinear pattern detection
Report Generator (CpCharting.java):
- Automated PDF generation using JFreeChart and iText
- 4 charts per page, 100 pages per file
- Min/Max price markers for trading signals
- Bookmark navigation by symbol
- Database-driven batch processing
Technical Innovation
Ensemble Methodology - Ran 5 statistical models in parallel on same dataset. Allowed ex-post model selection based on performance. Reduced model-specific bias through diversity. Predated mainstream machine learning ensemble methods (Random Forests, Gradient Boosting) by several years.
Adaptive Learning - Rolling window mechanism automatically discarded stale observations while incorporating new data. Maintained fixed-size observation windows (10-200 periods) to adapt to changing market conditions. Early implementation of concept drift handling, years before it became standard practice in online learning.
Production-Grade Automation - Generated 100-page professional PDF reports automatically. Database-driven batch processing for historical backtesting. Real-time capable architecture with incremental updates. Complete end-to-end pipeline from raw data to actionable signals.
Historical Context
2006 Trading Landscape:
- Algorithmic trading primarily institutional
- Commission costs: $7-10/trade (vs $0 today)
- Real-time data just becoming accessible to retail
- Limited documentation for retail algo trading
- Stack Overflow didn't exist until 2008
What Was Novel:
- Ensemble forecasting in retail trading (mainstream by 2010s)
- Adaptive rolling windows (standard by 2012+)
- Automated end-to-end pipeline (common by 2015+)
- High-frequency data analysis at 15-sec granularity (ubiquitous by 2018+)
Built this infrastructure independently, before platforms like QuantConnect (2012) or Alpaca (2015) existed.
Current Status
Preserved as historical archive for educational purposes. Contains outdated libraries with known security vulnerabilities—not suitable for production use without modernization.
Repository includes comprehensive documentation on what I'd build differently today: Python 3.12+ stack, PostgreSQL/TimescaleDB, scikit-learn/PyTorch, microservices architecture, proper CI/CD pipeline, comprehensive backtesting framework.
The value is in demonstrating early technical sophistication and honest evolution of thinking across 20 years of building production systems.
Repository
GitHub: github.com/kbadinger/cherry-picker
Comprehensive documentation:
- Full technical overview (10,000+ words)
- Database schema design
- Configuration system guide
- Security considerations
- What I'd do differently in 2025
Historical Archive: Full source code, technical documentation, and "what I'd do differently in 2025" available on GitHub.