{"slug":"how-long-a-losing-streak-is-normal","qid":"single_window_vs_series","label":"One named window against somewhere in a 200 trade series, at a 70 percent win rate","post_title":"How Long a Losing Streak Is Normal","post_url":"/blog/how-long-a-losing-streak-is-normal#q-single_window_vs_series","columns":["losing_run","pct_in_one_named_window","pct_somewhere_in_200_trades","times_more_likely"],"rows":[{"losing_run":"5 in a row","pct_in_one_named_window":0.243,"pct_somewhere_in_200_trades":28.627,"times_more_likely":118},{"losing_run":"8 in a row","pct_in_one_named_window":0.0066,"pct_somewhere_in_200_trades":0.885,"times_more_likely":135},{"losing_run":"10 in a row","pct_in_one_named_window":0.0006,"pct_somewhere_in_200_trades":0.079,"times_more_likely":134}],"shape":"ranking","sql":"SELECT\n    concat(toString(streak_length), ' in a row') AS losing_run,\n    round(100 * pow(0.30, streak_length), 4) AS pct_in_one_named_window,\n    round(100 * series_chance, 3) AS pct_somewhere_in_200_trades,\n    round(series_chance / pow(0.30, streak_length)) AS times_more_likely\nFROM\n(\n    SELECT\n        streak_length,\n        1 - arraySum(arrayFold(\n            (run_mass, trade) -> arrayPushFront(\n                arrayMap(mass -> mass * 0.30, arrayPopBack(run_mass)),\n                0.70 * arraySum(run_mass)),\n            range(200),\n            arrayMap(slot -> if(slot = 0, 1.0, 0.0), range(streak_length)))) AS series_chance\n    FROM\n    (\n        SELECT arrayJoin([5, 8, 10]) AS streak_length\n    )\n)\nORDER BY streak_length","computed_at":"2026-08-17T15:25:34.224727+00:00","elapsed":0.016781905}