explaingit

mykola-quant/turtle-soup-smt-falsification

Analysis updated 2026-05-18

1PythonAudience · researcherComplexity · 4/5Setup · moderate

TLDR

A pre-registered backtesting study that rigorously tests whether an SMT divergence filter improves a Turtle Soup trading pattern across forex, metals, and crypto, finding no surviving edge after transaction costs.

Mindmap

mindmap
  root((turtle-soup-smt falsification))
    Strategy Tested
      CRT range
      Turtle Soup sweep
      SMT divergence filter
    Results
      4 tests all fail
      Net negative after costs
      No stable edge found
    Methodology
      Pre-registered thresholds
      Permutation test 10000
      Bootstrap confidence
      Split-half OOS test
    Data
      HistData FX metals
      Binance crypto
    Tools
      Python pandas numpy
Click or tap to explore — scroll the page freely

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

Study the methodology as a template for pre-registered, out-of-sample strategy testing that resists data snooping.

USE CASE 2

Reproduce the backtest on your own HistData exports to verify the results or test a variation of the entry rules.

USE CASE 3

Use the permutation test and bootstrap code as a starting point for testing a different trading setup with the same statistical discipline.

What is it built with?

Pythonpandasnumpymatplotlibpyarrow

How does it compare?

mykola-quant/turtle-soup-smt-falsificationa-bissell/unleash-liteabhiinnovates/whatsapp-hr-assistant
Stars111
LanguagePythonPythonPython
Setup difficultymoderatehardhard
Complexity4/54/53/5
Audienceresearcherresearcherdeveloper

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

How do you get it running?

Difficulty · moderate Time to first run · 1h+

Requires downloading HistData or Binance 1-minute bar exports manually before running the conversion and backtest scripts.

No license information was found in the README.

In plain English

Turtle Soup and CRT (Canon Range Trading) are names for a popular discretionary trading pattern used by retail traders in forex, metals, and crypto. SMT divergence (Smart Money Technique) refers to a confirmation signal where a correlated instrument, such as gold and the US dollar, fails to move in the expected direction alongside the primary asset. This repository tests whether adding the SMT divergence filter to a Turtle Soup strategy actually improves profitability. The answer, based on four pre-registered tests across gold/silver, gold/dollar, and Bitcoin/Solana pairs, is no. Every version of the strategy produces negative expected returns after realistic transaction costs. Where the SMT filter showed statistical significance in full-sample data (gold versus dollar proxies in 2025), the effect turned out to be concentrated in a specific period and failed to hold across earlier years or a different asset class. The authors call this a regime fingerprint, not a stable edge. What makes this repository notable is the methodology rather than the result. Most retail strategy testing fixes thresholds after seeing the data, charges no transaction costs, and cherry-picks favorable time windows. This project does the opposite: it pre-registers every threshold before running any tests, uses 10,000-shuffle permutation tests for statistical significance, charges realistic costs (0.5 pip round-trip on forex, 0.13% round-trip on crypto), and applies a strict out-of-sample rule where a result survives only if both halves of the data independently show positive returns below a fixed p-value. Three apparent signals that passed full-sample tests were rejected by this out-of-sample requirement. To reproduce the tests, you download 1-minute bar data from HistData (free), run a conversion script to clean it into parquet files, optionally build a synthetic dollar index from six currency pairs, and run the main backtest script. It prints the full result including the permutation test, bootstrap confidence interval, and out-of-sample verdict. Data comes from HistData for forex and metals, Binance for crypto. Built with Python, pandas, numpy, and matplotlib.

Copy-paste prompts

Prompt 1
Walk me through reproducing Test 1 (XAU vs XAG) from turtle-soup-smt-falsification. What data do I need to download and what commands do I run?
Prompt 2
Explain the pre-registration methodology used in this backtest repository. What was fixed before the tests ran, and why does it matter for validity?
Prompt 3
I want to adapt the turtle-soup-smt-falsification engine to test a different entry signal on Bitcoin using Binance data. What files do I change and what parameters can I configure?
Prompt 4
The README says the SMT signal is a regime fingerprint not a stable edge. Explain what that means using the test results in the table.

Frequently asked questions

What is turtle-soup-smt-falsification?

A pre-registered backtesting study that rigorously tests whether an SMT divergence filter improves a Turtle Soup trading pattern across forex, metals, and crypto, finding no surviving edge after transaction costs.

What language is turtle-soup-smt-falsification written in?

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

What license does turtle-soup-smt-falsification use?

No license information was found in the README.

How hard is turtle-soup-smt-falsification to set up?

Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.

Who is turtle-soup-smt-falsification for?

Mainly researcher.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub mykola-quant on gitmyhub

Verify against the repo before relying on details.