Three people. One framework.
The framework is a MAIF project. Work is split across three areas — the backtester and data layer; the event-driven execution engine and strategies; and the synthetic-data generators that stress-test everything. Attribution below reflects actual commit authorship, not aspirational roles.
- RWMAIF contributor
Robbie
Framework & data layerShipped the initial framework: the bar backtester, the four-page scorecard, the synthetic-data baseline, and every one of the ten data-provider integrations (Yahoo, Alpaca, Polygon, Tiingo, Finnhub, Alpha Vantage, Twelve Data, MarketStack, Stooq, FMP). Everything the later pull requests plugged into.
- Backtester engine
- Scorecard generator
- Synthetic module
- Optimize (Optuna)
- 10 data providers
- STMAIF contributor
Sachit
Event engine & strategiesAdded the event-driven execution path — event_engine.py, order events, intrabar fills, and OCO brackets — plus the Strategy base class every member subclasses and the first two built-in strategies (SMA crossover, mean reversion).
- Event-driven backtester
- OCO brackets
- Strategy base class
- SMA crossover
- Mean reversion
- CMMAIF contributor
Connor
Synthetic data generatorsBuilt every non-historical data source the framework uses for stress testing: the conditional Wasserstein GAN (data / main / models / train / utils / generator), the Heston stochastic-volatility Monte Carlo (MonteCarloSim.py), and the regime-labeled training datasets — bullish, bearish, sideways, crash — that make both possible.
- cGAN architecture
- cGAN training
- Heston stochastic vol
- Regime data (4 SPY regimes)
- Generator visualization
Minutemen Alternative Investment Fund.
MAIF is UMass Amherst's student-run investment fund. The framework is a shared, semester-persistent piece of infrastructure: any member can plug their strategy in, get a standardized scorecard back, and hand the code off to the next cohort without losing the institutional knowledge. If you're a MAIF member and want to test and compare your strategy, start from the Get started page.