explaingit

mykola-quant/volatility-breakout-falsification

Analysis updated 2026-05-18

0PythonAudience · researcherComplexity · 3/5Setup · moderate

TLDR

A rigorous statistical test showing a popular stock trading strategy that looked profitable does not actually beat random chance.

Mindmap

mindmap
  root((Volatility Breakout Falsification))
    What it does
      Tests a viral trading strategy
      Checks statistical significance
      Publishes an honest verdict
    Tech stack
      Python
      yfinance
      pandas
    Use cases
      Validate trading strategies
      Learn train test splitting
      Reuse statistical tests
    Audience
      Quant researchers
      Traders
      Data scientists

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Check whether a trading strategy's backtest results are statistically meaningful or just noise.

USE CASE 2

Learn how to properly split data into training and test halves to avoid fooling yourself with a strategy.

USE CASE 3

Reuse the permutation and bootstrap testing code to validate a different trading idea.

USE CASE 4

See a worked example of debunking a viral trading claim with real data.

What is it built with?

Pythonyfinancepandas

How does it compare?

mykola-quant/volatility-breakout-falsification0xhassaan/nn-from-scratch3ks/embedoc
Stars00
LanguagePythonPythonPython
Last pushed2023-06-08
MaintenanceDormant
Setup difficultymoderatemoderatehard
Complexity3/54/51/5
Audienceresearcherdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires installing yfinance and fetching market data before running the validation scripts.

In plain English

This project tests a popular stock trading idea called volatility breakout trading, where a trader buys or sells when the price moves a certain distance away from yesterday's closing price. The idea went viral online after someone claimed they had tested thousands of versions of this strategy and found a way to remove the risk of the results being a fluke, simply by changing how trades are exited rather than how they are entered. This repo checks that claim honestly on real market data, using a strict process: pick the best settings on one half of the data, then test those exact settings on the other half without changing anything. The conclusion is that the strategy does not hold up. On two different Nasdaq-100 data sources, the strategy looked profitable when tested on new data, but that apparent profit was not reliably different from random noise once the numbers were checked with statistical significance tests. In other words, a seller of a trading course might stop at the promising-looking result, but a more careful check shows the gain could easily have happened by chance. The project also separately tests the claim that avoiding trades over the weekend saves money. It finds that holding positions over the weekend actually made a small amount of money on average in this data, not lost money, but that result also was not statistically reliable. A third claim, that adjusting exits instead of entries removes the risk of accidentally overfitting a strategy to past data, is also rejected. The project shows that moving the tuning to exits does not remove the overfitting problem, it just moves it somewhere else. The code includes a strategy engine, a data loader for fetching Nasdaq futures and index prices, and a validation script that runs permutation tests, bootstrap confidence intervals, and a random-walk control test to confirm the testing method itself is not inventing effects that are not there. It is written in Python and depends on the yfinance library for downloading market data. The full README also lists honest trading cost assumptions used in the test.

Copy-paste prompts

Prompt 1
Explain how the train and test split works in this volatility breakout falsification project.
Prompt 2
Help me adapt this permutation and bootstrap testing method to check my own trading strategy.
Prompt 3
Walk me through how the weekend-carry test in this repo measures whether holding trades over weekends helps or hurts.
Prompt 4
Show me how to run the GBM no-edge control test in this repo and explain what it proves.

Frequently asked questions

What is volatility-breakout-falsification?

A rigorous statistical test showing a popular stock trading strategy that looked profitable does not actually beat random chance.

What language is volatility-breakout-falsification written in?

Mainly Python. The stack also includes Python, yfinance, pandas.

How hard is volatility-breakout-falsification to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is volatility-breakout-falsification for?

Mainly researcher.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.