1use deadeye_optimizer::{NormalOptimizationInput, optimize_normal_trade};
10
11fn main() {
12 let cases: &[(&str, f64, f64, f64, f64, f64, f64)] = &[
13 ("live-CPI-2026-05-14", 4.3274, 0.2143, 4.2900, 0.3500, 75.07, 50.0),
15 ("μ-only arb HUGE budget", 4.5000, 0.3500, 4.2900, 0.3500, 75.07, 1e9),
16 ("σ-only HUGE budget", 4.2900, 0.2143, 4.2900, 0.3500, 75.07, 1e9),
17 ("classic README scenario", 2.4700, 0.1581, 2.1000, 0.2000, 50.00, 50.0),
18 ("scenario w/ low k", 4.5000, 0.3500, 4.2900, 0.3500, 1.00, 50.0),
19 ("CPI shape unequal-σ", 4.3274, 0.2143, 2.1000, 0.3500, 75.07, 50.0),
20 ("CPI σ + low-μ market", 4.3274, 0.2143, 0.1000, 0.3500, 75.07, 50.0),
21 ("README+CPI-μ μ-only", 2.4700, 0.2000, 2.1000, 0.2000, 50.00, 50.0),
22 ];
23
24 println!(
25 "{:<26} {:>9} {:>9} {:>9} {:>9} {:>11} {:>10} {:>9} {:>9} {:>9} {:>9}",
26 "case", "μ_b", "σ_b", "μ_m", "σ_m", "k_eff", "budget", "μ_g*", "σ_g*", "coll", "EV"
27 );
28 println!("{}", "─".repeat(132));
29
30 for (label, mu_b, sigma_b, mu_m, sigma_m, k, budget) in cases.iter().copied() {
31 let r = optimize_normal_trade(NormalOptimizationInput::new(
32 budget, mu_b, sigma_b, mu_m, sigma_m, k,
33 ));
34 println!(
35 "{label:<26} {mu_b:>9.4} {sigma_b:>9.4} {mu_m:>9.4} {sigma_m:>9.4} {k:>11.4} \
36 {budget:>10.2} {:>9.4} {:>9.4} {:>9.4} {:>9.4}",
37 r.optimized_mean,
38 r.optimized_sigma,
39 r.collateral_required,
40 r.expected_value,
41 );
42 }
43}