Make a real quant decision: evaluate a trading strategy using expected value, break-even analysis, Monte Carlo simulation, and stress testing. Determine whether to trade or not trade—and justify your verdict.
probability · expected-value · monte-carlo · trading · risk-management · quant
Learners placed at Morgan Stanley NYC · Optiver AMS
A statistical testing framework for strategies, built section by section - hands-on, but never alone. Theory first, then you implement it, and checkpoints confirm each section clicked before the next one opens.
Section 0
The Task and the Rule for Decision-Making
strategy.py
Section 1
Build the Edge Calculator (Expected Value)
edge.py
Section 2
Break-Even and Sensitivity
breakeven.py
Section 3
Build a Trade Simulator
simulator.py
Section 4
Stress Testing
stress.py
Section 5
Final Decision
decision.py
Never stuck
Reveal a hint when you want a nudge - or the full worked solution when you want the answer. Every exercise ships one.
Theory before code
Each formula is explained step by step before you implement it. Nothing is assumed mid-build.
Yours to keep
Finish with the complete research notebook - keep extending it with your own data.
Section 0The Task and the Rule for Decision-Making
4 tasks · 2 questions
Section 1Build the Edge Calculator (Expected Value)
3 tasks · 2 questions
Section 2Break-Even and Sensitivity
3 tasks · 2 questions
Section 3Build a Trade Simulator
3 tasks · 2 questions
Section 4Stress Testing
3 tasks · 1 question
Section 5Final Decision
2 tasks · 2 questions
FinishProject Complete
Your rewards
Real code from inside the project. Press Run to t-test a strategy that genuinely has an edge - and watch one year of data fail to prove it. Open this page on desktop to run it live in your browser.
import numpy as np
rng = np.random.default_rng(11)
# A strategy with a real but small edge: 3 bps a day under 1% daily noise.
daily = rng.normal(0.0003, 0.01, 252)
mean, std = daily.mean(), daily.std(ddof=1)
sharpe = mean / std * np.sqrt(252)
t_stat = mean / (std / np.sqrt(len(daily)))
print(f"annualised Sharpe : {sharpe:.2f}")
print(f"t-statistic : {t_stat:.2f} (need about 2 to call it real)")
print(f"verdict : {'edge is real' if t_stat > 2 else 'could still be pure luck'}")The full build covers Sharpe inference, sample size, and the traps that fake an edge.
Resume bullets
Copy-paste ready - with the build behind you to back every line.
3 more resume bullets inside the project
Interview ammo
“Explain why win rate alone is insufficient to judge strategy profitability: you also need payoff sizes and costs”
You answer this with a system you built, not a definition you memorized.
4 more talking points inside the project
Full access to this build and the rest of the pipeline - every project in the vault, plus the lessons, exams and certificates behind them. Guided from the first line to the last.
~8h build · +250 XP · 4 resume bullets · 5 interview answers