Position_sizing.KellyContinuous-return Kelly fraction: f* = mean / variance.
Assumes log-normal returns; for normal returns the approximation is reasonable when |mean| is small compared to the standard deviation. Returns 0 if variance <= 0.
Fractional Kelly: fraction times full. Recommended default fraction = 0.25 — reduces variance ~93% while sacrificing only ~25% of geometric growth.
Discrete-bet Kelly: f* = p − q/b where p = win_prob, q = 1 − p, b = win_loss_ratio. Returns 0 if win_loss_ratio <= 0.