Quantitative trading project for the COMS 4232 Advanced Algorithms final project, extended with a second research track for systematic trading experiments.
This repo has two tracks.
Course-project benchmark track:
Exponentiated Gradient (EG)Online Newton Step (ONS)Approximate Universal PortfolioEqual Weight (1/n)MomentumMean ReversionBCRPas the offline oracle benchmark
All methods share the same:
- historical market data
- long-only simplex constraints
- turnover-aware transaction-cost model
- evaluation pipeline
The primary metric is transaction-cost-aware cumulative log-wealth, with Sharpe, drawdown, and turnover as supporting diagnostics.
Extended research track:
Rolling Ridge AlphaAttention Sequence AlphaBlended Alpha Portfolio- deterministic transaction-cost-aware optimization
This track follows the standard quant pipeline:
- predictive signal model
- portfolio optimization
- cost / risk control
- deterministic execution path
The agent layer is for research support, not autonomous execution:
- a feature / experiment agent proposes new ideas
- a validation agent checks leakage and overfit
- a risk agent reviews concentration, turnover, and guardrails
- a report agent writes the research memo
The execution path should stay deterministic even if the research loop becomes more agent-assisted.
This version was shaped using:
- the final project proposal and algorithm supplement
- Open-Finance-Lab/AgenticTrading
- TauricResearch/TradingAgents
- himself65/finance-skills
This repo stays narrower than those references. The focus here is reproducible research, proposal compliance, and an implementation path that another engineer can continue.
frontend dashboard (React / Vite)
|
v
public/project-snapshot.json
|
v
Python research harness
|- proposal_core algorithms
|- ml_extension models
|- deterministic optimizer
|- reporting + agent briefs
Install frontend dependencies:
npm installInstall Python research dependencies:
python -m pip install -r requirements-research.txtRun the research pipeline:
npm run research:runRun only one track if you want:
python -m research_harness.run --track proposal
python -m research_harness.run --track mlStart the site locally:
npm run devBuild the static site:
npm run buildRunning the harness writes:
artifacts/research/summary.jsonartifacts/research/research_report.mdartifacts/research/proposal_core_metrics.csvartifacts/research/ml_extension_metrics.csvartifacts/research/daily_performance.csvartifacts/research/agent_feature_brief.mdartifacts/research/agent_validation_brief.mdartifacts/research/agent_risk_brief.mdartifacts/research/agent_report_brief.mdpublic/project-snapshot.json
The frontend reads public/project-snapshot.json, so the GitHub page reflects the latest generated run.
The Vite config uses a relative base path so the static build can be deployed cleanly to GitHub Pages. A sample Pages workflow is included in .github/workflows/deploy-pages.yml.
Recommended publishing flow:
- Run
npm run research:run - Verify
public/project-snapshot.jsonupdated - Run
npm run build - Push to GitHub
- Enable GitHub Pages with the included workflow
If another engineer is continuing implementation, start with:
This project is for research and educational purposes. Backtests can be misleading, paper trading differs from live execution, and nothing here is investment advice.