Three people. One framework.
The framework is a MAIF project. Work is split across three areas — the backtester, strategies and data layer; the event-driven execution engine; and the synthetic-data generators that stress-test everything. Attribution below reflects actual commit authorship, not aspirational roles.
- RWMAIF contributor
Robbie
Framework, strategies & data layerBuilt the framework in the initial commit: the bar backtester, the four-page scorecard, the Optuna optimizer, the Strategy base class and all five built-in strategies (SMA crossover, mean reversion, turtle, bracket breakout, covered call), and every one of the ten data-provider integrations (Yahoo, Alpaca, Polygon, Tiingo, Finnhub, Alpha Vantage, Twelve Data, MarketStack, Stooq, FMP).
- Bar backtester
- Scorecard generator
- Optimize (Optuna)
- Strategies + base class
- 10 data providers
- STMAIF contributor
Sachit
Event-driven engineAdded the event-driven execution path — event_engine.py, order events, intrabar fills, and OCO brackets — the second engine any strategy can run against, alongside Robbie's bar backtester.
- Event-driven backtester
- Order events
- Intrabar fills
- OCO brackets
- 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.