|
| 1 | +# ✅ Derivatives Pricing Library — Roadmap Checklist (Updated) |
1 | 2 |
|
2 |
| -# ✅ Derivatives Pricing Library – Roadmap Checklist (Updated) |
| 3 | +--- |
3 | 4 |
|
4 | 5 | ## PHASE 1 — Core Pricing Engine [✅ Completed]
|
5 | 6 |
|
|
11 | 12 | - [x] Pricer structure with method, marketinputs, payoff
|
12 | 13 | - [x] Test suite with unit tests and basic price agreements
|
13 | 14 |
|
| 15 | +--- |
| 16 | + |
14 | 17 | ## PHASE 2 — Market Inputs & Calibration Basics [✅ Completed]
|
15 | 18 |
|
16 | 19 | - [x] `BSVolSurface` with rectangular grid + interpolation and `get_vol(t)` accessor
|
17 | 20 | - [x] Implied vol inversion for vanilla options
|
18 | 21 | - [x] `calibrate_vol_surface(quotes)` from market prices
|
19 | 22 | - [x] `DiscountCurve` (flat, piecewise) and `df(t)` accessor
|
20 | 23 | - [x] Unit tests: vol/curve access, interpolation, smoke pricing
|
21 |
| -- [x] Rate Curves: Usage instead of constant rates, convenience constructors. |
| 24 | +- [x] Rate Curves: Usage instead of constant rates, convenience constructors |
| 25 | + |
| 26 | +--- |
22 | 27 |
|
23 |
| -## PHASE 3 — Greeks & Calibration Infrastructure (2–3 weeks) |
| 28 | +## PHASE 3 — Greeks & Calibration Infrastructure [✅ Completed] |
24 | 29 |
|
25 | 30 | - [x] Implement `GreekProblem` and `solve` with support for:
|
26 |
| -- [x] Finite differences (forward, backward, central) |
27 |
| -- [x] Forward AD |
28 |
| -- [x] Analytic Greeks for Black-Scholes |
29 |
| -- [x] Optional: AD for Monte Carlo methods |
| 31 | + - [x] Finite differences (forward, backward, central) |
| 32 | + - [x] Forward AD |
| 33 | + - [x] Analytic Greeks for Black-Scholes |
| 34 | + - [x] Optional: AD for Monte Carlo methods |
30 | 35 | - [x] Plug Greeks into pricing pipeline with consistent API
|
31 | 36 | - [x] Develop modular calibration system:
|
32 |
| -- [x] Residual-based calibration engine |
33 |
| -- [x] Objective functions from market quotes |
34 |
| -- [x] Support for different pricer-model combinations |
35 |
| -- [x] Heston calibration to implied volatility surface |
| 37 | + - [x] Residual-based calibration engine |
| 38 | + - [x] Objective functions from market quotes |
| 39 | + - [x] Support for different pricer-model combinations |
| 40 | + - [x] Heston calibration to implied volatility surface |
36 | 41 | - [x] Unit tests: Greeks accuracy vs known formulas, calibration residual shapes
|
37 | 42 |
|
38 |
| -## PHASE 3.5 — Monte Carlo Enhancements (1 week) |
| 43 | +--- |
39 | 44 |
|
40 |
| -- [x] Add antithetic variates toggle to `MonteCarlo` method (Discrete and Exact Black Scholes [x], Discrete and Exact Heston[x]) |
41 |
| -- [ ] Implement control variates with BS analytical formulas |
42 |
| -- [ ] Add reproducibility features: seeded RNG + control panel |
43 |
| -- [ ] Refactor MC framework to support pluggable variance reduction via `MCStrategy` |
44 |
| -- [ ] Optional: add stratified / quasi-random sampling hooks |
| 45 | +## PHASE 3.5 — Monte Carlo Enhancements (Light, 1 week) |
| 46 | + |
| 47 | +- [x] Add antithetic variates toggle to `MonteCarlo` method (Discrete and Exact Black-Scholes [x], Discrete and Exact Heston [x]) |
45 | 48 | - [x] Unit tests: check variance reduction and correctness vs analytic prices
|
| 49 | +- [x] Seed reproducibility: allow full control over RNG seeds (for all MC types) |
| 50 | +- [ ] Refactor MC framework to support seed injection and custom ensemble configs |
| 51 | +- [ ] Optional: design placeholder for `MCStrategy`, but defer advanced variance reduction |
| 52 | + |
| 53 | +--- |
| 54 | + |
| 55 | +## 🛠 PHASE 4 — Polishing & Pre-Release Prep (1–2 weeks) |
| 56 | + |
| 57 | +**🌟 Goal**: Registry submission with clean, reproducible functionality and docs |
| 58 | + |
| 59 | +- [ ] Public API audit and finalization |
| 60 | +- [ ] Add docstrings for all exported types/functions |
| 61 | +- [ ] Create `/docs/` folder with basic Documenter.jl setup |
| 62 | +- [ ] Include example scripts: pricing, Greeks, calibration |
| 63 | +- [ ] Add Project.toml metadata (UUID, compat) |
| 64 | +- [ ] Ensure full test suite runs via `Pkg.test()` |
| 65 | +- [ ] CI: GitHub Actions with coverage and doc build |
| 66 | +- [ ] Tag `v0.1.0` and submit to Julia registry |
| 67 | +- [ ] Soft launch: share with trusted peers, hold off on broad announcement |
| 68 | + |
| 69 | +--- |
46 | 70 |
|
47 |
| -## PHASE 4 — Structured Payoffs (2–3 weeks) |
| 71 | +## PHASE 5 — Structured Payoffs (2–3 weeks) |
48 | 72 |
|
49 |
| -- [ ] Extend `Payoff` system to support path-dependent and monitored options |
50 | 73 | - [ ] Arithmetic Asian pricing via Monte Carlo
|
51 |
| -- [ ] Geometric Asian pricing via closed-form solution |
52 |
| -- [ ] Cash-or-nothing and asset-or-nothing digital options |
| 74 | +- [ ] Geometric Asian pricing via closed-form |
| 75 | +- [ ] Digital options (cash-or-nothing, asset-or-nothing) |
53 | 76 | - [ ] Barrier options (up/down, knock-in/out, discrete monitoring)
|
54 |
| -- [ ] Add `Monitoring` and `Averaging` traits or modifiers |
| 77 | +- [ ] Extend `Payoff` with `Monitoring` / `Averaging` modifiers |
55 | 78 | - [ ] Unit tests: price agreement across methods, monitoring edge cases
|
56 | 79 |
|
57 |
| -## PHASE 5 — Interest Rate Products & Models (3–4 weeks) |
| 80 | +--- |
| 81 | + |
| 82 | +## PHASE 6 — Interest Rate Products & Models (3–4 weeks) |
58 | 83 |
|
59 | 84 | - [ ] Implement zero-coupon and fixed-coupon bond pricing
|
60 | 85 | - [ ] Build FRA and IRS support with schedule engine and stub logic
|
|
64 | 89 | - [ ] Basic CDS pricing with flat hazard rate model
|
65 | 90 | - [ ] Unit tests: replication of swaps via bond strips, curve usage, date handling
|
66 | 91 |
|
67 |
| -## PHASE 6 — Multi-Curve Support & Calibration (3 weeks) |
| 92 | +--- |
| 93 | + |
| 94 | +## PHASE 7 — Multi-Curve Support & Calibration (3 weeks) |
68 | 95 |
|
69 | 96 | - [ ] Introduce multi-curve framework (OIS + forwarding curves)
|
70 | 97 | - [ ] Curve bootstrapping: deposit, futures, swaps
|
71 | 98 | - [ ] Curve interpolation: ZC rates, discount factors, log-linear extrapolation
|
72 | 99 | - [ ] Integrate multi-curve into FRA, IRS, caps/floors pricing
|
73 | 100 | - [ ] Unit tests: bootstrapping accuracy, multi-curve vs single-curve comparisons
|
74 | 101 |
|
75 |
| -## PHASE 6.5 — PDE Framework (2–3 weeks) |
| 102 | +--- |
| 103 | + |
| 104 | +## PHASE 7.5 — PDE Framework (2–3 weeks) |
76 | 105 |
|
77 | 106 | - [ ] Implement Crank–Nicolson solver for Black-Scholes PDE
|
78 | 107 | - [ ] Define `PDEProblem` type with boundary conditions and solver settings
|
79 | 108 | - [ ] Generalize solver infrastructure for future PDE models
|
80 | 109 | - [ ] Unit tests: convergence checks, price agreement with analytic/MC methods
|
81 | 110 |
|
82 |
| -## PHASE 7 — SABR, Local Vol, Rough Vol (4–5 weeks) |
| 111 | +--- |
| 112 | + |
| 113 | +## PHASE 8 — SABR, Local Vol, Rough Vol (4–5 weeks) |
83 | 114 |
|
84 | 115 | - [ ] SABR model implementation (Hagan approximation)
|
85 | 116 | - [ ] Calibration to vanilla vol surface
|
|
88 | 119 | - [ ] Fourier or Monte Carlo pricing for rough volatility models
|
89 | 120 | - [ ] Unit tests: calibration error metrics, simulation path sanity checks
|
90 | 121 |
|
91 |
| -## PHASE 8 — Robustness & Performance (3–4 weeks) |
| 122 | +--- |
| 123 | + |
| 124 | +## PHASE 9 — Robustness & Performance (3–4 weeks) |
92 | 125 |
|
93 | 126 | - [ ] Edge case test suite: deep ITM/OTM, short maturity, extreme vol
|
94 | 127 | - [ ] Sensitivity exploration tools (Greeks wrt model parameters)
|
|
98 | 131 | - [ ] Optional: GPU backend for simulation
|
99 | 132 | - [ ] CI: Full unit test and regression test coverage, GitHub Actions setup
|
100 | 133 |
|
101 |
| -## PHASE 9 — Model-Free Pricing & Arbitrage Detection (2–3 weeks) |
| 134 | +--- |
| 135 | + |
| 136 | +## PHASE 10 — Model-Free Pricing & Arbitrage Detection (2–3 weeks) |
102 | 137 |
|
103 | 138 | - [ ] Risk-neutral density extraction from call spread surface
|
104 | 139 | - [ ] Variance swap pricing via replication
|
|
107 | 142 | - [ ] Super-replication bounds for exotic payoffs
|
108 | 143 | - [ ] Unit tests: convexity and arbitrage consistency, replication sanity
|
109 | 144 |
|
110 |
| -## PHASE 10 — Documentation & Launch Prep (2 weeks) |
| 145 | +--- |
| 146 | + |
| 147 | +## PHASE 11 — Documentation & Launch Prep (2 weeks) |
111 | 148 |
|
112 | 149 | - [ ] Full docstrings for all exported types and functions
|
113 | 150 | - [ ] Notebooks covering pricing, Greeks, calibration, and structured payoffs
|
|
117 | 154 | - [ ] Prepare for public release: package registry, landing README
|
118 | 155 | - [ ] Soft launch with trusted peers; optionally post to LinkedIn, Discourse
|
119 | 156 |
|
120 |
| -## PHASE 11 — Optional Extensions |
| 157 | +--- |
| 158 | + |
| 159 | +## PHASE 12 — Optional Extensions |
121 | 160 |
|
| 161 | +- [ ] Control variates using Black-Scholes |
| 162 | +- [ ] Stratified sampling / quasi-random generation |
122 | 163 | - [ ] REST API or service wrapper for pricing/calibration endpoints
|
123 | 164 | - [ ] Pluto.jl-based interactive pricing UI
|
124 | 165 | - [ ] Real-time batch pricing and risk engine prototype
|
|
0 commit comments