Based on Lingbo (εζ³’), Probability Game Upgraded Edition (ζ¦ηζΈΈζεηΊ§η)
Lingbo's Probability Game reframes trading from an activity of prediction to one of probability management. The central argument is that no individual trade outcome can be predicted with certainty, but over a large number of trades, a system with a genuine statistical edge will produce reliable profits β just as a casino cannot predict the outcome of any single hand of blackjack but can reliably predict its monthly revenue.
This paradigm shift is fundamental. Most retail traders in the A-share market approach each trade as an isolated event, seeking certainty about whether "this stock will go up." Lingbo's framework instead asks: "Does this setup, traded consistently over 100 instances, produce a positive expected value?"
The book's central metaphor is the casino. The casino is the model for the probability-based trader:
| Casino Principle | Trading Application |
|---|---|
| The house has a small but consistent edge | The trader's system has a positive expected value |
| Individual bets are unpredictable | Individual trades are unpredictable |
| The edge manifests over many bets | The edge manifests over many trades |
| Betting limits control risk | Position sizing controls risk |
| The casino never chases losses | The trader follows the system regardless of recent results |
| The casino is open every day | The trader takes every valid signal |
Lingbo identifies the root cause of retail failure: treating trading as a game of certainty rather than probability. This manifests as:
Truth 1: Any individual trade can lose money regardless of how perfect the setup appears. Even a system with 70% win rate loses 30% of the time. Three consecutive losses in a 70% system are not unusual β they occur roughly 2.7% of the time, meaning they happen about once every 37 trades.
Truth 2: The edge exists only in the aggregate, not in any single trade. A trader who deviates from the system "just this once" is destroying the statistical foundation that makes the system profitable.
Truth 3: The trader's job is not to be right on each trade but to ensure that winning trades collectively generate more profit than losing trades collectively generate losses. This is a mathematical problem, not a prediction problem.
| Certainty Mindset | Probability Mindset |
|---|---|
| "This stock WILL go up" | "This setup has a 60% chance of profit" |
| Loss = failure, proof of bad analysis | Loss = cost of doing business |
| Seeks confirmation | Seeks disconfirmation |
| Adjusts position after loss (revenge trading) | Follows system mechanically |
| Evaluates single trades | Evaluates trade series |
| Emotional response to outcomes | Neutral response to outcomes |
Lingbo teaches traders to think in terms of conditional probabilities. Not simply "what is the probability of profit" but "what is the probability of profit given this specific set of conditions":
Before looking at any specific setup, the trader should know base rates:
Any trading system must demonstrably improve upon the base rate. If buying randomly has a 50% win rate, a system with a 52% win rate is barely better than chance and not worth the transaction costs.
As new information arrives during a trade, update the probability assessment:
PSEUDOCODE: Bayesian Trade Assessment
ββββββββββββββββββββββββββββββββββββββ
initial_probability = 0.60 // Based on entry setup
// Day 2: Stock breaks above entry but on low volume
volume_factor = 0.90 // Slightly negative β low volume breakout
updated_probability = initial_probability * volume_factor // 0.54
// Day 5: Stock pulls back to entry level and holds
support_factor = 1.10 // Positive β support holding
updated_probability = updated_probability * support_factor // 0.594
// Day 8: Stock breaks to new high with expanding volume
breakout_factor = 1.15 // Strong positive
updated_probability = updated_probability * breakout_factor // 0.683
// Use updated probability to adjust position management
if updated_probability > 0.65:
consider_adding_to_position()
elif updated_probability < 0.45:
consider_reducing_position()
An edge is a statistical advantage that, applied consistently over many trades, produces a positive expected value. Lingbo identifies several potential edge sources in A-shares:
Pattern-based edges: Specific technical patterns (breakouts, divergences, support/resistance plays) that have historically produced win rates above 55% with acceptable payoff ratios.
Timing-based edges: Time-of-day, day-of-week, or seasonal patterns that create predictable biases. For example, the "January effect" in small caps, pre-holiday rallies, or the tendency for A-shares to rally in the afternoon session during bull markets.
Structural edges: Market structure features like the price limit system (which creates predictable behavior the day after limit events), IPO underpricing, or index rebalancing effects.
Behavioral edges: Exploiting predictable behavioral biases of the predominantly retail A-share market β overreaction to news, herding into themes, disposition effect (holding losers, selling winners).
Every proposed edge must be quantified through backtesting:
PSEUDOCODE: Edge Quantification
ββββββββββββββββββββββββββββββββ
function quantify_edge(setup, historical_data, lookback_years=5):
trades = identify_all_instances(setup, historical_data)
wins = [t for t in trades if t.profit > 0]
losses = [t for t in trades if t.profit <= 0]
win_rate = len(wins) / len(trades)
avg_win = mean([t.profit_pct for t in wins])
avg_loss = mean([abs(t.profit_pct) for t in losses])
payoff_ratio = avg_win / avg_loss
expected_value = (win_rate * avg_win) - ((1 - win_rate) * avg_loss)
// Edge exists only if EV is positive AND statistically significant
trades_needed_for_significance = calculate_min_sample_size(win_rate, avg_win, avg_loss)
return {
win_rate: win_rate,
payoff_ratio: payoff_ratio,
expected_value: expected_value,
sample_size: len(trades),
is_significant: len(trades) >= trades_needed_for_significance,
edge_per_trade: expected_value
}
All edges decay over time as more participants discover and exploit them. Lingbo warns that an edge identified through backtesting may already be weaker in live trading. He recommends:
The fundamental equation of probabilistic trading:
Expected Value (EV) = (Win Rate Γ Average Win) - (Loss Rate Γ Average Loss)
A trade is worth taking if and only if EV > 0 after accounting for transaction costs (commissions, slippage, stamp duty in A-shares).
| System | Win Rate | Avg Win | Avg Loss | EV per Trade |
|---|---|---|---|---|
| System A | 70% | 3% | 5% | (0.70 Γ 3%) - (0.30 Γ 5%) = 0.60% |
| System B | 40% | 10% | 3% | (0.40 Γ 10%) - (0.60 Γ 3%) = 2.20% |
| System C | 55% | 4% | 4% | (0.55 Γ 4%) - (0.45 Γ 4%) = 0.40% |
| System D | 60% | 2% | 3% | (0.60 Γ 2%) - (0.40 Γ 3%) = 0.00% |
System B has the highest EV despite the lowest win rate. System D has zero edge despite a 60% win rate. This illustrates that win rate alone is meaningless β only EV matters.
In A-shares, transaction costs include:
Total friction: approximately 0.2-0.3% per round trip. A system with 0.3% EV per trade is barely profitable after costs. Lingbo recommends targeting systems with at least 0.5% EV per trade to ensure viability after friction.
A probability-based trading system requires five components:
Every rule must be 100% objective and unambiguous. If two traders cannot look at the same chart and independently reach the same conclusion about whether a signal is present, the rule is too subjective.
Bad rule: "Buy when the stock looks like it's bottoming" Good rule: "Buy when price closes above the 20-day high with volume > 1.5x the 20-day average volume"
Lingbo strongly argues for simplicity. A system with 3-4 clear rules will outperform one with 15 rules because:
Backtesting is necessary but insufficient. The system must be validated through walk-forward analysis:
The most recommended approach: risk a fixed percentage of current capital on each trade.
PSEUDOCODE: Fixed Fractional Position Sizing
ββββββββββββββββββββββββββββββββββββββββββββββ
risk_per_trade = 0.02 // 2% of capital
capital = current_portfolio_value
max_loss_per_trade = capital * risk_per_trade
shares = max_loss_per_trade / (entry_price - stop_price)
shares = floor(shares / 100) * 100 // A-share lot size
position_value = shares * entry_price
position_pct = position_value / capital
For advanced position sizing, Lingbo introduces the Kelly Criterion:
Kelly % = W - (1-W)/R
Where:
W = win rate (e.g., 0.60)
R = payoff ratio (avg win / avg loss, e.g., 1.5)
Kelly % = 0.60 - (0.40 / 1.5) = 0.60 - 0.267 = 0.333 (33.3%)
However, Lingbo strongly recommends using half-Kelly or quarter-Kelly in practice:
Adjust position size based on the quality of the setup:
| Setup Quality | Position Size (as % of Kelly) |
|---|---|
| A-grade (all conditions met, strong confirmation) | 50% Kelly |
| B-grade (most conditions met) | 25% Kelly |
| C-grade (minimum conditions met) | 12.5% Kelly |
Trade-level risk: Maximum loss on any single trade, controlled by stop-losses and position sizing. Recommended: 1-2% of capital maximum.
Portfolio-level risk: Maximum drawdown from peak equity, controlled by aggregate exposure and correlation management. Recommended: if portfolio drawdown exceeds 10%, reduce all positions by 50%.
System-level risk: The risk that the trading edge has disappeared. Controlled by ongoing monitoring and a "circuit breaker" rule: if the system underperforms its expected performance by 2 standard deviations over 50+ trades, stop trading and re-evaluate.
PSEUDOCODE: Risk Budget
ββββββββββββββββββββββββ
total_risk_budget = 0.06 // 6% maximum total risk at any time
risk_per_trade = 0.02 // 2% per trade
max_simultaneous_trades = total_risk_budget / risk_per_trade // = 3
// If current open risk < risk_budget, can add new trades
current_open_risk = sum(position_size * (entry - stop) / entry for each position)
available_risk = total_risk_budget - current_open_risk
if available_risk >= risk_per_trade:
can_add_new_trade = True
else:
can_add_new_trade = False
Holding three stocks in the same sector that all respond to the same catalyst is not diversification β it is concentrated risk disguised as three separate trades. Lingbo recommends limiting sector exposure to 2 simultaneous positions maximum.
There is an inherent tension between win rate and payoff ratio:
Lingbo argues that payoff ratio is more important than win rate for most traders:
The optimal balance depends on the trader's psychology:
One of Lingbo's most important teachings: traders abandon systems far too quickly. The minimum number of trades to evaluate a system statistically:
PSEUDOCODE: Minimum Sample Size
ββββββββββββββββββββββββββββββββ
function min_trades_for_confidence(win_rate, confidence_level=0.95):
// Using the approximation for binomial confidence interval
z = 1.96 // for 95% confidence
p = win_rate
margin_of_error = 0.05 // Want to know win rate within +/- 5%
n = (z^2 * p * (1-p)) / margin_of_error^2
return ceiling(n)
// Examples:
// For 60% win rate: n = (1.96^2 Γ 0.6 Γ 0.4) / 0.05^2 = 369 trades
// For 55% win rate: n = (1.96^2 Γ 0.55 Γ 0.45) / 0.05^2 = 380 trades
This means you need approximately 300-400 trades before you can be statistically confident about your system's true win rate. A trader who abandons a system after 20 losing trades has learned nothing statistically valid.
For practical purposes, Lingbo suggests:
If you test 100 different parameter combinations and pick the one that worked best, you have not found an edge β you have found a statistical artifact. Lingbo recommends:
Every system experiences drawdowns. The question is not whether but how deep and how long. Lingbo provides expected drawdown metrics:
| Win Rate | Payoff Ratio | Expected Max DD (100 trades) | Recovery Trades |
|---|---|---|---|
| 60% | 1.5:1 | 12-18% | 15-25 |
| 55% | 2.0:1 | 15-22% | 20-30 |
| 50% | 2.5:1 | 18-28% | 25-40 |
| 45% | 3.0:1 | 22-35% | 30-50 |
Drawdowns are asymmetric: a 20% loss requires a 25% gain to recover. A 50% loss requires a 100% gain. This is why drawdown prevention is far more important than return maximization.
A-shares have T+1 settlement (buy today, can sell tomorrow at earliest). This creates specific probability patterns:
Lingbo provides backtested probabilities for limit-up follow-through:
Specific to the A-share market:
When stocks are added to or removed from major indices (CSI 300, CSI 500), there are predictable buying/selling pressures from index funds. The announcement-to- implementation gap creates a tradeable probability edge.
The hardest psychological challenge: accepting that losses are a normal and necessary part of a profitable system. Lingbo suggests reframing losses:
| Outcome-Oriented | Process-Oriented |
|---|---|
| Judges each trade by P&L | Judges each trade by adherence to rules |
| Feels good after a winning trade | Feels good after a well-executed trade (win or lose) |
| Changes system after losses | Changes system only after statistically significant evidence |
| Result: emotional rollercoaster | Result: consistent execution |
A system with 55% win rate will, with certainty, eventually experience 8+ consecutive losses. When this happens:
"The market is not a puzzle to be solved. It is a probability game to be played. The sooner you accept this, the sooner you will become profitable."
"A 60% win rate means you will lose 4 out of every 10 trades. If losing 4 times out of 10 upsets you, you are in the wrong business."
"Expected value is the only metric that matters. A system with 30% win rate can be wildly profitable. A system with 80% win rate can be a slow bleed to zero."
"Position sizing is the only part of trading that is entirely within your control. You cannot control whether the trade wins or loses. You can control how much you bet."
"The edge is fragile. It exists in the aggregate, over hundreds of trades. Deviate from the system once, and you have broken the statistical contract that makes the edge real."
"Drawdown is the price you pay for future gains. A system that never draws down is a system that never takes risk, and a system that never takes risk will never produce returns."
"In the A-share market, the biggest edge available to the individual trader is behavioral: the ability to think in probabilities while 200 million retail accounts think in certainties."
"Do not ask 'Will this trade work?' Ask 'If I take this trade 100 times, will I make money?' The first question is unanswerable. The second is testable."