// tp solver
Exit math
Fixed TP search that does not let one 100x dictate the answer. Primary score is median payoff on winsorized peaks. n=822
// TP* (all lanes)
S* = 1.00x · EV' 1.04x · hit 15% (124/ 822) · W=5.00x
S(1.25x) = median(min(M', 1.25x)) = 1.00x EV'(1.25x) = 15% * 1.25x + 85% * 1.00x = 1.04x
// S(t) surface
Median payoff vs t. Bright bar = TP*. Dim rows fail the min-hit gate.
// full grid (all lanes)
S = median payoff (winsorized). mean_raw = fragile mean on uncapped peaks.
| t | hits | p_hat' | m_miss' | S | EV' | mean_raw | gate |
|---|---|---|---|---|---|---|---|
| 1.25x * | 124/822 | 15% | 1.00x | 1.00x | 1.04x | 1.06x | ok |
| 1.50x | 68/822 | 8% | 1.00x | 1.00x | 1.04x | 1.09x | fail |
| 1.75x | 34/822 | 4% | 1.00x | 1.00x | 1.03x | 1.11x | fail |
| 2.00x | 25/822 | 3% | 1.00x | 1.00x | 1.03x | 1.11x | fail |
| 2.50x | 18/822 | 2% | 1.00x | 1.00x | 1.03x | 1.13x | fail |
| 3.00x | 15/822 | 2% | 1.00x | 1.00x | 1.04x | 1.14x | fail |
| 4.00x | 11/822 | 1% | 1.00x | 1.00x | 1.04x | 1.15x | fail |
| 5.00x | 7/822 | 1% | 1.00x | 1.00x | 1.03x | 1.17x | fail |
| 6.00x | 0/822 | 0% | 1.00x | 1.00x | 1.00x | 1.17x | fail |
| 8.00x | 0/822 | 0% | 1.00x | 1.00x | 1.00x | 1.19x | fail |
| 10.0x | 0/822 | 0% | 1.00x | 1.00x | 1.00x | 1.19x | fail |
// lane split
Same robust solver, Selective vs Velocity.
n=590 · W=5.00x · min hits=89
S* 1.00x · hit 10%
n=232 · W=5.00x · min hits=35
S* 1.04x · hit 27%
// why raw EV gets owned by outliers
If you use raw hit rate, one moonshot makes p_hat(20x)=1/n. With n=10 that is a 10% "chance" of 20x from a single fluke, and EV(20x) can beat sane TPs. So we do not crown TP* off raw means or raw high-t hit rates.
// fragile (do not optimize this) EV_raw(t) = p_hat_raw(t) * t + (1 - p_hat_raw(t)) * median(miss) // one 100x => p_hat_raw(20x) = 1/n => nonsense TP*
// robust model
Winsorize peaks, then score median payoff:
W = clamp(P90(M), 5x, 10x) // current W = 5.00x M'_i = min(M_i, W) // 100x becomes W, not gospel payoff_i(t) = min(M'_i, t) // hit => t, miss => capped peak S(t) = median_i(payoff_i(t)) // PRIMARY (outlier-proof) EV'(t) = p_hat'(t)*t + (1-p_hat'(t))*median(M' | miss) // secondary eligible(t) <=> hits(t) >= max(1, ceil(0.15*n)) // need 124 hit(s) here TP* = argmax S(t) over eligible t
Mean payoff on raw peaks is shown only as a caution column. Miss credit is still an upper-bound style mark (observed peak), not a forced zero. Not trade advice.
Descriptive optimizer on the recorded sample. Not trade advice. Memecoins can still go to zero after any TP rule.