Licence
MIT
Version
4.1.0
Deps
0
Size
17 kB
Vulns
0
Weekly
0
Install scriptsThis package runs scripts during installation (preinstall/install/postinstall)
kelly-stake
Kelly criterion position sizing and bankroll risk management for betting and trading.
- Zero runtime dependencies — pure, deterministic math.
- No install scripts — nothing runs on
npm install. - TypeScript-first — ships type declarations.
- Guard rails built in: fractional Kelly, bankroll-fraction caps, min/max stake clamps, and never a negative stake.
Install
npm install kelly-stake
Quick start
import { kellyStake, kellyStakeFromReturns } from "kelly-stake";
// Size a bet from a known edge (60% win chance, even money), half-Kelly:
const stake = kellyStake(
{ winProbability: 0.6, payoffRatio: 1 },
{ bankroll: 1000, fraction: 0.5, maxFraction: 0.2 }
);
// -> 100 (raw f*=0.2, half-Kelly=0.1, 10% of 1000)
// Or estimate the edge from realised per-trade returns and size directly:
const returns = [1.0, 1.0, -0.5, -0.5]; // +100%, +100%, -50%, -50%
const next = kellyStakeFromReturns(returns, { bankroll: 1000, fraction: 0.5 });
The formula
f* = p - (1 - p) / b
p— win probability,0..1b— net payoff ratio (units won per unit staked on a win)
A negative f* means no edge → stake 0. Full Kelly maximises long-run growth
but is volatile and unforgiving of estimation error, so prefer fractional
Kelly (fraction: 0.5 is common) with a hard maxFraction cap.
API
| Function | Purpose |
|---|---|
kellyFraction(winProbability, payoffRatio) |
Raw Kelly fraction f*, clamped >= 0. |
kellyFractionFromDecimalOdds(winProbability, decimalOdds) |
Kelly from decimal odds (stake-inclusive payout). |
fractionalKelly(kelly, fraction) |
Apply a fractional-Kelly multiplier. |
kellyStake(bet, options) |
Concrete stake with fractional Kelly, caps and clamps. |
edgeFromReturns(returns) |
Estimate { winProbability, payoffRatio, sampleSize } from realised returns. |
kellyStakeFromReturns(returns, options) |
Estimate the edge, then size the stake. |
StakeOptions
| Option | Default | Meaning |
|---|---|---|
bankroll |
— | Total bankroll to size against (required). |
fraction |
1 |
Fractional-Kelly multiplier, 0..1. |
maxFraction |
1 |
Cap on the bankroll fraction per stake, 0..1. |
minStake |
0 |
Floor for any non-zero stake. |
maxStake |
Infinity |
Ceiling for any stake. |
Disclaimer
The Kelly criterion assumes accurate estimates of win probability and payoff. Real edges are uncertain — under-betting (fractional Kelly) is far safer than over-betting. This library is provided for educational purposes and is not financial advice.
License
MIT