This repository provides a full pipeline for the Hull Tactical systematic trading competition:
- Model to predict daily forward excess returns.
- Allocation sizing, backtesting, and final submission generation.
The Hull Tactical competition evaluates daily allocation strategies on the U.S. equity market.
Participants submit a daily allocation in the range [0, 2]:
| Allocation | Meaning |
|---|---|
| 0.0 | Fully underweight |
| 1.0 | Market neutral |
| 2.0 | Maximum overweight |
The strategy’s annualized volatility must remain at or below 1.2× the volatility of the benchmark index.
Evaluation occurs in two phases:
- Historical backtest scoring
- Live forward scoring after submissions close
The objective is to produce stable, interpretable allocation signals.
Developed by Alvaro Balbin and Aung Kaung.
Focus:
- Deterministic ML pipeline
- Volatility-normalized signal sizing
- Smooth allocation transitions to reduce turnover
- Direct submission-ready output
The project was built quickly and intentionally with minimal unnecessary complexity.
The system works as intended. A demonstration video is available here:
pip install -r requirements.txt
Expected input data: data/train.csv data/test.csv
Train the model:
python -m src.train
Generate predictions:
python -m src.predict
This produces:
outputs/predictions.parquet
Run backtest:
python -m src.backtest \
--train data/train.csv \
--preds outputs/predictions.parquet \
--out outputs
Outputs:
outputs/backtest_daily.csv
outputs/metrics.json
outputs/plots/
Generate final submission file:
python -m src.submit_cli \
--train data/train.csv \
--test data/test.csv \
--preds_test outputs/predictions.parquet \
--out outputs/submission.csv
Final output format:
date_id,allocation
8980,1.250000
8981,1.500000
...
Allocations are continuous values in [0, 2] due to the volatility-normalized sigmoid sizing rule.
-
Allocation values must remain in
[0, 2]. -
Strategy volatility must be ≤
1.2×benchmark volatility. -
Final submission file must be:
outputs/submission.csv
| Component | Contributor |
|---|---|
| Backtesting & Allocation Strategy | Alvaro Balbin |
| Model Development & Feature Engineering | Aung Kaung |
| README Assembly | Generated by GenAI |
