← Mission ControlBenchmarkAlle BerichteGrundkurs

Red-Team: Strategie-Kandidaten und Prüfstand

Stand 13.11.2026, 00:55 UTC. Geprüft wurden alle 41 Module, die zu diesem Zeitpunkt da waren: 36 × scout_*, 7 × roentgen_* (eins davon wurde während der Prüfung gelöscht) und auf Wunsch des Projektleiters die drei Strategien, die schon im Papierhandel laufen (lit_donchian = Hauptbot, breakout, trend_slow). Maschinenlesbar: reports/strategie_suche/redteam.json (die Papier-Arena befördert „abgelehnt“ nie).

Das Wichtigste

  1. Freigegeben: 0. Vorbehalt: 24. Abgelehnt: 17.
  2. Betrug haben wir nicht gefunden. Kein Kandidat schaut in die Zukunft. Alle liefern mit den 700 Kerzen des Bots dasselbe wie mit der vollen Historie, und jede Prüfstand-Zahl ließ sich exakt nachrechnen (alle 20 Vergleichsfelder gleich).
  3. Das Problem ist fast immer: Ein Vorteil ist nicht belegt. Zufällig gelegte Ein- und Ausstiege oder einfach „immer gleich viel investiert bleiben“ sind meist genauso gut. Die wenigen Kandidaten, die den Zufall klar schlagen, reißen die Schutzgrenzen (größter Rückgang über 40 %, 2022 schlechter als −20 %) oder wurden nach dem Ergebnis ausgesucht.
  4. Der Prüfstand hat vier ernste Lücken (siehe unten): Die Look-ahead-Prüfung beginnt erst bei 30 % der Daten, Lecks über Dateien sieht sie nie, der Mehrfachtest zählt nur das eigene Raster, und ein Bericht merkt nicht, wenn sich das Modul danach ändert. Keine davon hat bei diesen Kandidaten ein falsches Urteil erzeugt – aber jede kann es.
  5. Für den Papierhandel: „vorbehalt“ heißt „darf als Vergleichs-Bot mitlaufen, ist aber kein Ersatz für den Hauptbot“. Bei 41 Kandidaten werden einige in den nächsten Wochen allein durch Zufall gut aussehen.

Urteile

Spalten: Prüfstand = bestandene Punkte von 11 · Calmar = Rendite pro Jahr geteilt durch größten Rückgang, Entwicklungszeitraum 2020-01..2025-06 bei 1,0 % Round-Trip · „mit Vorlauf“ = dasselbe, aber mit Kursgeschichte vor 2020 (siehe Prüfstand-Befund 5) · 1,6 % = Calmar bei Stress-Kosten · p Timing = Zufallsvergleich des Prüfstands (verschobene Signale), p Mischung = eigener Zufallsvergleich (gleiche Haltedauern, zufällige Reihenfolge); jeweils der kleinere Wert aus Rendite und Sharpe, klein = besser als Zufall · Sperr = Sperrzeitraum 07/2025..11/2026 (schon oft angesehen).

KandidatUrteilPrüfst.Calmarmit Vorlauf1,6 %p Timingp MischungSperrTrades
breakoutvorbehalt111,922,121,620,030,01−7 %50
trend_slowvorbehalt111,711,711,510,050,10−4 %36
scout_kl_turtle2vorbehalt101,461,501,340,070,06+16 %29
scout_kl_keltner_mittevorbehalt111,381,461,230,020,01−13 %48
scout_ki_moenchvorbehalt81,321,631,180,080,02+16 %49
scout_os_ema_crossvorbehalt91,261,341,040,010,00+26 %79
scout_kl_ichimokuvorbehalt81,231,291,140,080,03+24 %35
scout_kl_turtle1vorbehalt101,181,221,030,080,09+5 %47
lit_donchian (Hauptbot)vorbehalt101,161,180,980,080,15−2 %54
scout_x_sma200vorbehalt71,121,061,010,090,11+1 %35
scout_os_supertrendvorbehalt81,111,171,000,100,06+15 %44
scout_tv_ichimokuvorbehalt81,091,061,070,110,08+26 %25
scout_x_grok_sma200cdvorbehalt91,011,150,700,020,01+17 %135
scout_tv_gaussianvorbehalt80,940,990,770,080,04+15 %61
roentgen_backtest_donchianvorbehalt70,931,050,810,080,08−7 %62
scout_kl_fabervorbehalt60,911,030,890,350,21−29 %8
scout_kl_keltnervorbehalt60,870,910,820,180,14−24 %19
scout_x_grok47_ema170vorbehalt70,871,100,540,050,01+4 %179
scout_ki_geduldvorbehalt70,790,730,710,120,18+4 %41
scout_ki_risikovorbehalt50,650,870,470,080,09+10 %111
scout_kl_macd200vorbehalt60,640,820,370,100,09−10 %110
scout_kl_dualmomvorbehalt70,591,170,580,470,28−14 %2
scout_os_tsmomvorbehalt40,540,400,430,150,25+2 %82
scout_tv_btc_momentumvorbehalt50,320,350,080,190,22±0 %170
scout_fo_stablecoinabgelehnt70,990,970,780,050,05+19 %104
scout_os_golden_crossabgelehnt60,930,600,910,260,23−24 %9
scout_x_goldencrossabgelehnt60,930,600,910,260,23−24 %9
scout_fo_carryabgelehnt70,860,880,700,070,10−17 %71
roentgen_hl_0x67293d91abgelehnt70,800,900,490,020,01−26 %213
roentgen_hl_0x1b7a7d09abgelehnt60,620,700,340,050,05−24 %230
roentgen_hl_0x7a8fd8bbabgelehnt40,380,540,270,400,45+9 %109
scout_fo_wochenmomabgelehnt30,210,230,080,550,62−17 %149
scout_tv_3emaabgelehnt60,120,150,060,380,49−9 %31
scout_tv_rsi_trendabgelehnt40,120,180,100,990,97−35 %14
scout_x_cryptobotabgelehnt30,080,20−0,020,640,77−6 %125
scout_os_rsi2abgelehnt60,01−0,06−0,110,260,27±0 %94
scout_ki_exitplanabgelehnt3−0,15−0,14−0,210,920,96−16 %113
scout_fo_fundrevabgelehnt3−0,22−0,22−0,320,400,28−27 %259
roentgen_hl_0x56d652e6abgelehnt3−0,26−0,26−0,320,970,98−54 %240
roentgen_hl_0x59fa085dabgelehnt4−0,28−0,28−0,300,040,00−71 %692
roentgen_hl_0xc20ac4dcabgelehnt3−0,31−0,31−0,320,560,45−51 %388

Zum Vergleich Kaufen und Halten (BTC+ETH je 50 %): Calmar 0,86, größter Rückgang −75 %, Sperrzeitraum −21 %. Die Begründung je Kandidat in 2–3 Sätzen steht in redteam.json (Feld gruende), die langen Fassungen mit allen Befunden in lab/out/redteam_kandidaten/urteil_<modul>.json.

Die knappsten Fälle, kurz erklärt

diesem Zeitraum aus 228 bzw. 394 Varianten ausgesucht. Mit der echten Variantenzahl ist der Vorteil nicht belegt (Deflated Sharpe 0,68 bzw. 0,57, nötig 0,95). Im Sperrzeitraum beide schlechter als der Hauptbot.

Mittellinie ist aber nicht die Lehrbuch-Regel; dieselbe Familie wurde in lab/out/breakout schon mit 9 Varianten getestet, dazu zwei Ausstiegsregeln des Scouts. Mit diesen mindestens 11 Versuchen eingerechnet: p 0,11 bzw. 0,26. Modul und --params-Zusatzlauf liefern exakt dieselben Gewichte (EUR und USDT, alle Zeitpunkte).

Der Modul-DEFAULT hat ein Vola-Ziel von 0,5; damit weichen die Gewichte um bis zu 0,29 ab. Startet die Arena lab:lit_donchian ohne Parameter, handelt sie eine andere, ungeprüfte Strategie.

(größter Rückgang −52 % bzw. −51 %, 2022 −42 % bzw. −35 %). Beide sind die günstigere Tagesfassung einer 4h-Regel, deren Original mit unseren Kosten verliert; die Grok-Regel wurde zudem auf Daten aus unserem Entwicklungszeitraum gesucht.

p > 0,20). Bewusst „vorbehalt“, weil der fehlende Vorlauf diese Monatsregeln im Zufallsvergleich benachteiligt (ohne Anlaufphase Timing-p 0,12; mit Vorlauf Calmar 1,03 bzw. 1,17). Dual Momentum hat aber nur 2 Trades.

Dateiende (12.11.2026) handeln sie still mit alten Daten bzw. bleiben still in Bargeld – ohne Fehler, ohne Warnung. Ein Blick in die Zukunft über die Dateien wurde mit abgeschnittenen Dateien geprüft: 0 Abweichungen an 2.505 Zeitpunkten.

BTC/ETH-Tageskerzen die Käufe der Quelle nicht mehr. roentgen_datei_backtest_donchian (inzwischen gelöscht) war ein inhaltliches Duplikat von roentgen_backtest_donchian und hat deshalb keinen Eintrag.

Befunde am Prüfstand (lab/pruefstand.py)

Nicht repariert, nur beschrieben. Zeilen = Stand der Datei vom 13.11.2026, 00:05 UTC.

Nr.SchwereBefundOrtMinimalbeispiel / Beleg
P1hochDie Look-ahead-Prüfung beginnt erst bei 30 % der Daten (ab 22.01.2022). Leck in 2020–2021 – also in den Bullenjahren des Entwicklungszeitraums – bleibt unsichtbar. Der Bericht schreibt trotzdem „alle Zeitpunkte“.lab/validate.py:34 (lo = int(len(full) * 0.3)), Aufruf lab/pruefstand.py:287, Beschriftung :453lab/out/redteam_kandidaten/pruefstand_lecks.py: Strategie kennt bis 11/2021 den Schluss von morgen → Prüfstand „ok“ (1.754 Zeitpunkte), Entwicklung CAGR +548 %; Abschneide-Test über alle Zeitpunkte findet 448 Abweichungen. Ebenso bfill() im Vorlauf: „ok“, tatsächlich 131 Abweichungen. Echter Fall: lit_donchian.py:56 und bot/strategy.py:56 (Längenwächter) weichen an 60–89 Tagen 01–05/2020 ab – harmlos im Bot, aber unentdeckt.
P2hochLecks über Dateien oder eigene Datenzugriffe sind unsichtbar: Der Test kürzt nur die übergebenen Kerzen. Es gibt kein Kriterium „liest Dateien / läuft im Bot“; eine Datei-Strategie kann „Kandidat“ werden und ist über bot.strategy.get("lab:…") startbar.lab/pruefstand.py:287, lab/validate.py:41, bot/strategy.py:118pruefstand_lecks.py, leck_platte: liest die Kurse selbst von der Platte → Prüfstand „ok“, CAGR +4.509 %. Betrifft real scout_fo_carry, scout_fo_fundrev, scout_fo_stablecoin.
P3hochMehrfachtest unterschätzt: Deflated Sharpe zählt nur das aktuelle Raster. Frühere Labor-Läufe derselben Familie, --params-Zusatzläufe und die vielen parallelen Kandidaten zählen nicht. Bei 41 Kandidaten erwartet man rund 2 mit p ≤ 0,05 allein durch Zufall.lab/pruefstand.py:388, Warnung nur unter 0,95 :547trend_slow: Bericht zeigt Deflated Sharpe 0,97 (5 Raster-Varianten), mit den 394 angesehenen Varianten 0,57 – die Warnung fehlt deshalb. breakout 0,68 statt Labor-Wert 0,989.
P4mittelEin GRID im Modul ersetzt das automatische Plateau-Raster ohne Schutz – der Autor wählt seine Nachbarn selbst.lab/pruefstand.py:321Plateau mit Modul-GRID durchweg günstiger als mit Auto-Raster: Faber 80 % gegen 50 %, Dual Momentum 75 % gegen 42 %, Keltner 69 % gegen 58 %. Bei TSMOM sind die GRID-Werte (20 bis 200) gar keine Nachbarn.
P5mittelKein Vorlauf: Die EUR-Kerzen beginnen am 02.01.2020. Strategien mit langen Fenstern sind anfangs zwangsweise in Bargeld (z. B. im Corona-Crash 03/2020); der Timing-Test zählt diese erzwungene Phase als Entscheidung. Verzerrt in beide Richtungen.lab/pruefstand.py:274, :385vorlauf_alle.py (USDT-Historie davor, auf EUR skaliert; ab 2020 identische Kerzen): Golden Cross Calmar 0,93 → 0,60, TSMOM 0,54 → 0,40; Dual Momentum 0,59 → 1,17, Faber 0,91 → 1,03; Bot-Strategien praktisch gleich (Donchian 1,16 → 1,18).
P6mittelDer Bericht speichert keinen Stand (Prüfsumme) des Moduls und seiner Abhängigkeiten. Ändert sich das Modul danach, merkt es niemand. --params-Läufe tragen den Modulnamen der Basis.lab/pruefstand.py:560, :592scout_fo_stablecoin.py wurde 26 s nach seinem Bericht geändert (rechnet zufällig gleich). scout_kl_keltner_mitte.json nennt als Modul lab.strategies.scout_kl_keltner; scout_kl_keltner_mitte.py importiert seine Logik aus scout_kl_keltner.py – Änderungen dort ändern den Papier-Bot still.
P7mittelDer Sperrzeitraum wird bei jedem Lauf (Kennzahlen, Walk-forward, Rangliste) angezeigt und entscheidet mit über „Kandidat für Papierhandel“ ohne Zusatz. Er ist damit kein unvoreingenommener Test mehr; Auswahl danach ist Überanpassung.lab/pruefstand.py:489, :517Mehrere Scout-Berichte argumentieren mit Sperrzeitraum-Ergebnissen (z. B. Stablecoin +19 %, EMA 8/21 +26 %). Nur der Papierhandel ab jetzt ist noch neu.
P8niedrigNur Tagesgrenze 12:00 UTC; Ergebnis kann stark an der Uhrzeit hängen. USDT-Kerzen werden gar nicht auf Look-ahead geprüft.lab/pruefstand.py:274-287CryptoBot: Calmar 0,08 um 12 Uhr, 0,75 um 6 Uhr.
P9niedrigAuto-Raster: skaliert Quantile über 1 (q 0,9 → 1,125), kann Werte 0,0 nicht variieren, erkennt nach Rundung gleiche Nachbarn nicht (Grok-Cooldown 10/12/15 = alle 2 Tage), prüft die Wirkung nur an den Rändern.lab/pruefstand.py:102-150, :144scout_fo_stablecoin mit q = 1,125 bricht ab.
P10niedrigParameter-Grenze zählt nur Schlüssel in DEFAULT; feste Konstanten im Code (Fensterlängen, Einheiten, Warmup) umgehen sie. p-Werte ohne +1-Korrektur (p = 0 möglich), kleinerer von zwei p-Werten ohne Korrektur.lab/pruefstand.py:457, :445; lab/validate.py:134Turtle: N=20, 4 Einheiten, ½N fest im Code; CryptoBot: 20-Tage-Hoch, ATR 14.

Nachtrag 13.11.2026, 02:55 (Folgeauftrag Projektleiter): In lab/pruefstand.py behoben, mit Tests in tests/test_pruefstand.py:

Noch offen: P1, P2, P4, P5, P7, P8, P10 und bei P3 die Zählung über Kandidaten hinweg.

Nachtrag 13.11.2026, morgens (Auftrag Paul: „beheben“): Die übrigen Befunde sind behoben, alle 40 Berichte neu gerechnet (lab/pruefstand.py, lab/validate.py, neu lab/datenzugriff.py; Tests in tests/test_pruefstand.py):

Abweichungen) und leck_bfill (131) werden erkannt. Der Längenwächter in lit_donchian.py, bot/strategy.py und bot/trace.py gilt jetzt je Teilmodell; damit sind beide ohne Abweichung ab der 2. Kerze.

Audit-Hook für Datei- und Netzzugriffe während weights()). bot.strategy.get("lab:…") lehnt solche Module ab. Betroffen: scout_fo_carry, scout_fo_fundrev, scout_fo_fundrev_alle, scout_fo_stablecoin, scout_fo_stablecoin_nurbtc.

mit allen Varianten, Benjamini-Hochberg-q. Bei bestandenen Strategien steht der Satz im Urteil. python -m lab.pruefstand --familie rechnet das nach parallelen Läufen für alle Berichte gleich.

Code (Funktionen und Modul-Konstanten) werden als Hinweis aufgelistet. Die Parametergrenze zählt weiter nur DEFAULT, weil die automatische Erkennung fester Zahlen zu viele harmlose Treffer hat.

Ergebnis: Ausbruch, Trend langsam und Keltner-Mitte bestehen 12/12 und heißen jetzt „Kandidat für Papierhandel“. Über alle 40 Strategien ist aber keine belastbar (q = 0,17, Deflated Sharpe mit allen Varianten 0,40–0,55). Hauptbot, beide Turtles und Dual Momentum 11/12 (nur Zufallstest). Kein Bericht zeigt Look-ahead. Neu gerechnet wurden lit_donchian, breakout, trend_slow, scout_kl_keltner_mitte, scout_kl_turtle2 und scout_x_grok_sma200cd; kein Urteil hat sich geändert. Der Deflated Sharpe sinkt bei breakout (228 Varianten) auf 0,68 und bei trend_slow (394) auf 0,57. Der Bericht von scout_kl_keltner_mitte nennt jetzt das richtige Modul.

Hinweis zur Engine (kein Fehler): Das 10-%-Rebalancing-Band macht Kosten nicht streng monoton (scout_tv_ichimoku: Stress +789 % gegen Basis +779 %), Pfad-Zufall von etwa einem Prozentpunkt pro Jahr.

Vorschläge (Sache des Prüfstand-Agenten, nicht umgesetzt): Look-ahead ab dem ersten gültigen Signal prüfen (nicht ab 30 %); Dateizugriffe während weights() sperren oder als eigenes Kriterium führen; Prüfsumme von Modul und importierten Strategie-Modulen in den Bericht; Vorlauf aus skalierter USDT-Historie; Auto-Raster immer zusätzlich rechnen; Variantenzahl im Modul angeben lassen und für den Deflated Sharpe nutzen; Sperrzeitraum nicht ins Urteil.

Befunde am Strategie-Röntgen (lab/roentgen)

SchwereBefundOrt
kritischFindet es keine reine Tages-Regel, rechnet es einen Ersatz-Baum ohne eigenen Test; dessen Regel wird zum Kandidaten, obwohl sie nicht unter den angezeigten Regeln steht.lab/roentgen/analyse.py:296-306
hochKeine Mindestgüte: Kandidaten entstehen auch bei „kein klares Muster“ (Trefferquote 0,34–0,51) und bei Lift 1,4.analyse.py:212, :233, :774-788
hochQuellen mit nur 17 Tagen; Zufallszeitpunkte aus denselben Tagen, 70/30-Test nicht zeitlich getrennt, Aufstockungen zählen als eigene Einstiege.analyse.py:185, :286
hochNur der Einstieg wird nachgebaut; Ausstieg und Positionsgröße gehen immer verloren (der Prüffall auf unseren Bot zeigt es: größter Rückgang −63 % statt −31 %).Kandidaten-Vorlage kandidat.py
mittel„Ausprobierte Varianten: 1“ ist irreführend (Baum über 17 Merkmale × bis zu 40 Schwellen, Tiefe 3); Merkmale in USD zur Einstiegsstunde, Kandidat handelt EUR-Tageskerzen um 12 Uhr; Duplikate über zwei Quellwege.kandidat.py:29, :32

Was die Papier-Arena beachten sollte

abhaengig_von). Wird ein Modul geändert, setzt lab/out/redteam_kandidaten/merge.py beim nächsten Lauf modul_seit_pruefung_geaendert auf true.

Wie geprüft wurde

Je Kandidat (Skript lab/out/redteam_kandidaten/check.py, Ergebnis <modul>.json/.log): Code gegen die zitierte Quelle gelesen (teils Quell-Code auf GitHub/TradingView/StockCharts mitgelesen) · Look-ahead an allen Zeitpunkten inkl. der ersten 30 % und mit 700-Kerzen-Fenster (dazu USDT-Stichprobe, bei Zusatzdaten mit abgeschnittenen Dateien) · Parameter gegen Quelle und Scout-Bericht, Rang des DEFAULT im Raster, versteckte Konstanten · Kosten 0 bis 3,2 % Round-Trip und 1.000-€-Konto · Ergebnis ohne das beste Jahr und ohne die 5 besten Trades · zwei Zufallsvergleiche plus „konstant gleich viel investiert“ · Prüfstand neu gerechnet (pruefstand.pruefe mit eigenem Ausgabeordner, damit reports/pruefstand nicht überschrieben wird) und mit dem Bericht verglichen · Vorlauf-Vergleich (vorlauf_alle.py). Zustandsbehaftete Regeln zusätzlich mit eigenen Gegentests (Neustart an vielen Tagen, künstliche Kursreihen).

Urteilsregel: „abgelehnt“ bei Look-ahead/700-Kerzen-Abweichung, wesentlicher unerwähnter Abweichung von der Quelle, heimlichem Tuning, nicht reproduzierbaren Zahlen, nicht im Bot lauffähig, oder kein Vorteil (beide Zufallsvergleiche p > 0,20 bzw. Verlust bei 1,0 % Round-Trip). „freigegeben“ nur bei 11 von 11, beiden Zufallsvergleichen p ≤ 0,05, Plus ohne bestes Jahr, Calmar ≥ 0,7 bei 1,6 % und ohne ungezählte Vorversuche. Sonst „vorbehalt“. Bewusste Abweichungen: scout_kl_faber und scout_kl_dualmom (Vorlauf-Effekt, s. o.); scout_kl_keltner_mitte erfüllt formal alles, bekommt wegen der Vorversuche aber nur „vorbehalt“.

Grenzen des Red-Teams: Das eigene Prüfskript bricht im Raster-Teil ab, wenn das Auto-Raster ungültige Werte erzeugt (dann per Zusatzskript nachgeholt); die Segment-Mischung mischt jeden Coin für sich (Gleichlauf BTC/ETH geht verloren); „Top-5-Anteil“ kann über 1 liegen; der Vergleich „konstant gleiche Quote“ ist wertlos, wenn das mittlere Gewicht unter Band oder Mindestorder liegt. Einige Quellen (TradingView-Code hinter Anmeldung, Zarattini-Paper) ließen sich nicht direkt nachlesen; dort stützt sich die Prüfung auf Kopftext und Scout-Bericht.

Noch nicht geprüft

Keine – zum Stand 00:55 UTC hatte jedes vorhandene scout_*/roentgen_*-Modul ein Urteil. Module, die danach neu dazukommen, fehlen in redteam.json; merge.py listet sie beim nächsten Lauf unter „noch nicht geprüft“.

Dateien

sha256, abhaengig_von, modul_seit_pruefung_geaendert).

vorlauf_alle.py, merge.py (baut redteam.json), kurz.py (Kurzbegründungen), je Kandidat <modul>.json/.log und urteil_<modul>.json, Gegentests <modul>_*.py, neu gerechnete Prüfstand-Berichte in pruefstand/.

Tradebot · Papierhandel mit Spielgeld · keine Anlageberatung