Vorregistriert, zeitgestempelt, ergebnislos
Ein Bericht über Nullergebnisse bei schwachen Vorlaufsignalen für Commodity-Preise — und über drei Wege, auf denen ein System für Nachprüfbarkeit trotzdem in die Irre führt
Riswan Hassen · ORCID 0009-0001-4173-2836 Fassung vom 2026-08-25
Maßgeblich ist die englische Fassung. Sie trägt die DOI, liegt auf Zenodo unveränderlich versioniert vor und geht dieser Übersetzung bei jeder Abweichung vor. Diese Seite gibt denselben Inhalt für die Leserschaft wieder, die den Ledger mitverfolgt hat. DOI: (wird nachgetragen) · Reproduktionspaket im selben Zenodo-Eintrag.
Kurzfassung
Zwischen März und August 2026 hat das Projekt Xommodo untersucht, ob schwache, öffentlich verfügbare Vorlaufsignale Commodity-Preise vorhersagen können — und sich vorab darauf festgelegt, diese Frage so zu beantworten, dass eine Leserin es nachprüfen kann, statt es glauben zu müssen. Jede Hypothese wurde in ein Register eingetragen, bevor sie getestet wurde; jede Tagesprognose ging in eine append-only-Kette mit SHA-256-Verkettung und wurde über OpenTimestamps in der Bitcoin-Blockchain verankert, bevor das Ergebnis bekannt war.
Die Antwort lautet nein. Über zehn vorregistrierte Läufe nach einer Methodenkorrektur mitten im Projekt — neun Screening-Durchgänge und eine Studie zu nachrichtenbasierten Merkmalen, zusammen 7.825 Kombinationen aus Serie und Lag — hat kein einziger Kandidat das vorregistrierte Kriterium überstanden. Ein vorregistrierter Attributionstest verfehlte seine primäre Schwelle um 0,023, und das Projekt wurde eingestellt, wie es die vorher niedergeschriebene Entscheidungsregel verlangte.
Drei Befunde reichen über dieses Projekt hinaus. Erstens hat eine von uns absichtlich gepflanzte Placebokontrolle — die Mondphase — die Bonferroni-Korrektur bestanden. Das legte offen, dass Pearson-Lag-Korrelationen auf autokorrelierten Reihen nicht interpretierbar sind, und entwertete unsere eigene erste Screening-Phase. Zweitens half eine synthetische Kontrolle, als eine ökonomische Positivkontrolle versagte, zwischen einer kaputten Methode und einer bloß auf die falsche Anlageklasse kalibrierten Kontrolle zu unterscheiden; die Korrektur wurde als eigener Registereintrag abgelegt, statt den ursprünglichen zu ändern. Drittens, und am wenigsten erwartet: unser manipulationssicherer Ledger verzeichnete 46 von 46 Prognosen als bestandene Qualitätsprüfung, während die Equity-Kurve auf unserer öffentlichen Seite einbrach und danach einfror. Die Kette wurde nie verletzt. Sie besicherte schlicht nicht die Größe, die unsere Leserschaft las.
Schlagwörter: Nullergebnisse, Vorregistrierung, Mehrfachvergleiche, Autokorrelation, manipulationssichere Veröffentlichung, Commodity-Prognose, Reproduzierbarkeit
1. Die Frage und der Anspruch
Die Frage war eng gefasst: Können schwache, öffentlich verfügbare Upstream-Signale — Minenwetter, Frachtfriktion, Flusspegel, Nachrichtenfluss — einen Commodity-Preis weit genug vorlaufen, um nützlich zu sein, und lässt sich das zeigen statt behaupten?
Die zweite Hälfte der Frage war der Punkt. Behauptungen über Prognosegüte an Rohstoffmärkten sind billig, weil sie fast immer im Nachhinein aufgestellt werden, auf einem Protokoll, das der Behauptende selbst kontrolliert. Wir haben den Apparat deshalb vor der Forschung gebaut: ein Register, in das ein Test eingetragen sein musste, bevor er lief, und eine Veröffentlichungskette, die eine Prognose in dem Moment unveränderlich machte, in dem sie entstand. Das Projekt hat im Voraus akzeptiert, dass dieser Apparat gegen uns arbeiten würde, falls die Antwort nein lautet.
Sie lautete nein, und dieser Bericht ist die Folge jener Zusage. Nullergebnisse werden selten veröffentlicht; genau deshalb veröffentlichen wir dieses. Der nützlichere Beitrag sind allerdings nicht die Nullergebnisse selbst. Es sind die drei Weisen, auf denen sorgfältig wirkende Maschinerie dennoch fehlging — jede davon nur sichtbar, weil die Maschinerie genug aufzeichnete, um sich selbst zu ertappen.
2. Der Apparat der Nachprüfbarkeit
2.1 Das Register
Jede Hypothese wurde in docs/experiments.jsonl eingetragen, bevor sie getestet
wurde, mit Hypothesentext, Geltungsbereich, der Anzahl zu testender Kombinationen
und einem UTC-Zeitstempel. Verdikte kamen nach dem Lauf hinzu. Das Register
umfasst 27 Einträge zwischen 2026-07-07 und 2026-08-13.
Registereinträge wurden nie rückwirkend geändert. Wo eine spätere Analyse eine frühere Lesart umstieß, wurde die Korrektur als eigener Eintrag angehängt, der auf den ursprünglichen verweist (§ 4.3). Das ist die einzige Disziplin, die ein Register überhaupt wertvoll macht: Eine Datei, die sich nachträglich aufräumen lässt, zeichnet nichts auf.
2.2 Der Ledger
Jede Tagesprognose ging als append-only-Eintrag in ledger.jsonl, mit
Sequenznummer, Commodity, Prognosedatum, SHA-256-Prüfsummen der Prognose- und
Metrikdateien, Modellversion, einem Qualitäts-Flag und dem Hash des
Vorgängereintrags. Die Kette wird periodisch über OpenTimestamps in Bitcoin
verankert.
Die veröffentlichte Kette hält 47 Einträge für den Zeitraum 2026-06-08 bis
2026-08-12: 46 Prognosen und einen Ausfalleintrag. Eintrag 40 dokumentiert den
Ausfall der Erfassungsinfrastruktur vom 2026-07-27 bis 2026-08-06 — elf Tage, an
denen keine Prognosen entstanden. Er trägt seinen eigenen prev_chain_hash und
seinen eigenen Zeitstempel-Anker.
Dass die Lücke in der Kette steht statt in ihr zu fehlen, ist für sich genommen ein kleines Ergebnis. Ein Loch von elf Tagen ist das Verlockendste, was sich aus einem öffentlichen Track Record stillschweigend weglassen ließe, und eine Kette, die ihre eigenen Unterbrechungen festhält, ist mehr wert als eine, die nur Erfolge verzeichnet.
2.3 Was die Kette garantiert — und was nicht
Die Konstruktion erkennt Feldmanipulation, gefälschte Kettenhashes, gelöschte Einträge und Umsortierung. Das Abschneiden am Ende — ein Angreifer entfernt die jüngsten Einträge und legt eine kürzere, in sich stimmige Kette vor — liegt außerhalb ihres Umfangs und wird nur teilweise durch die externen Bitcoin-Anker abgedeckt.
Abschnitt 7 dokumentiert eine Grenze, mit der wir nicht gerechnet hatten und die keine Hash-Kette adressiert: Die Kette besichert die Prognosen. Sie besichert keine daraus abgeleitete Kennzahl, und sie sagt nichts darüber, welche Größe eine Qualitätsprüfung misst.
3. Die Methode — und die Stelle, an der sie brach
3.1 Der erste Ansatz und die Placebokontrolle
Das Screening begann als Lag-Korrelationssuche: für jede Kandidatenreihe und jeden Lag die Pearson-Korrelation mit dem Vorwärtsreturn des Ziels, mit Bonferroni-Korrektur über die Suche.
Unter den Kandidaten stand einer, von dem wir Bedeutungslosigkeit erwarteten. Registereintrag 5 prüfte, ob die Mondphase — Beleuchtungsgrad und Länge des Dunkelfensters — dem Kupferpreis vorläuft. Er war ausdrücklich als Placebokontrolle eingetragen. Es gab eine nominelle Erzählung dazu, doch seine Funktion im Versuchsaufbau war, zu scheitern.
3.2 Er scheiterte nicht
Registereintrag 12 prüfte jeden Screening-Treffer des Exotic-Blocks mit einem Circular-Shift-Permutationstest nach. Das Ergebnis, wörtlich:
Pearson-p unbrauchbar bei Autokorrelation (Placebo Mond passierte Bonferroni!); nach Shift-Test alle spurious außer
windgusts_calama@20dp=.024 undmoon_dark@68dp=.033 (überleben die ×14-Korrektur nicht).
Die gepflanzte Placebokontrolle hatte eine Bonferroni-korrigierte Prüfung bestanden. Unter dem Shift-Test bestand sonst nichts von Substanz.
Die Ursache ist unspektakulär. Eine Pearson-Korrelation zwischen zwei stark autokorrelierten Reihen hat weit weniger effektive Freiheitsgrade, als ihr Stichprobenumfang nahelegt; der nominelle p-Wert ist entsprechend zu optimistisch, und eine Bonferroni-Korrektur auf diese nominellen Werte erbt den Optimismus. Eine Korrektur für Mehrfachtests richtet nichts aus gegen eine Teststatistik, deren Nullverteilung von vornherein falsch ist.
Das steht in jedem Lehrbuch. Wir wussten es im Abstrakten und haben trotzdem eine Screening-Pipeline ausgeliefert, die davon abhing. Den Unterschied machte nicht Wissen, sondern die Placebokontrolle: ein erwartetes Negativergebnis im Kandidatensatz, das ein abstraktes methodisches Risiko in ein konkretes, datiertes, unbestreitbares Versagen verwandelte.
Als Entwurfsregel formuliert: Eine Screening-Pipeline sollte mindestens einen Kandidaten führen, der nicht gefunden werden darf. Sein Zweck ist nicht, geprüft zu werden, sondern die Pipeline zu prüfen — und er kostet eine Zeile in der Kandidatenmatrix.
3.3 Was verworfen wurde
Die naive Phase — Registereinträge 1 bis 15, 3.390 Kombinationen — ist als Beleg wertlos. Sie erscheint in diesem Bericht als Lehrstück und nirgends als Ergebnis. Sämtliche Befunde in § 5 stammen aus Läufen nach dem Methodenwechsel.
3.4 Die korrigierte Methode
Ab Eintrag 16 arbeitete das Screening mit einem scan-aware Circular-Shift-Permutationstest, NS = 1.000 Surrogate, Bonferroni-Korrektur über die Serien des jeweiligen Laufs, und mit einer Positivkontrolle in jedem Lauf.
4. Kontrollen — und wie wir lernten, sie zu lesen
4.1 Die ökonomische Kontrolle und ihre zwei Fehlschläge
Die Positivkontrolle war industrial_production_us: eine Reihe, die einem
Industriemetall vorlaufen sollte. Sie versagte zweimal.
In Eintrag 22, beim Test hydrologischer Speichersignale gegen Kupfer bei längeren Horizonten, versagte sie bei h = 40 (p = 0,130) und h = 60 (p = 0,126) — genau in den Läufen mit den größten Rohkorrelationen. Der Lauf wurde als verdächtig markiert.
In Eintrag 23, beim Test von Weizen-Wettersignalen, versagte sie deutlich (p = 0,396). Eine Sichtprüfung der Rohdaten zeigte korrekte Klimaregimes — australischer Winterregen, argentinischer Sommerregen, ausgeglichenes Frankreich — die Zuordnung war also intakt.
4.2 Die synthetische Kontrolle
Die Diagnose in Eintrag 23 lautete, dass die Kontrolle auf die falsche Frage kalibriert war. Industrieproduktion führt ein Industriemetall; sie hat einem Agrargut nichts vorzulaufen. Ein Versagen dieser Kontrolle ist eine ökonomische Aussage, keine methodische — und beide sind ohne eine Kontrolle, die von keiner Ökonomie abhängt, nicht auseinanderzuhalten.
Eintrag 25 führte eine solche ein: ein synthetisches Signal, konstruiert so, dass es den Ziel-Return bei bekanntem Lag von 41 Tagen trägt, plus Rauschen kalibriert auf r ≈ 0,20. Die Methode findet es bei h = 5, 20, 40 und 60 wieder, mit r = +0,196 bis +0,221, jeweils bei exakt 41 Tagen, durchgehend p = 0,0025.
Die Methode war damit bei allen Horizonten tragfähig, und die Ergebnisse aus Eintrag 22 sind interpretierbar — entgegen der dort selbst notierten Warnung.
4.3 Die Korrektur und ihre Ablage
Eintrag 22 wurde nicht geändert. Eintrag 25 kam als Korrektur hinzu, die auf
ihn verweist. Der Befund aus Eintrag 22 wird durch die Korrektur stärker statt
schwächer: null Survivor bei jedem Horizont, und die monoton steigende Korrelation
von ch_groundwater_index (+0,097 bei h=10 bis +0,192 bei h=60) ist ein
Überlappungsartefakt — der rohe p-Wert bleibt durchgehend nahe 0,5, während die
Return-Überlappung die effektive Stichprobe verkleinert.
Ein Register, das durch Anhängen korrigiert wird, hält Fehler und Reparatur lesbar. Ein Register, das durch Überschreiben korrigiert wird, hält keins von beidem.
5. Ergebnisse
5.1 Die Screening-Bilanz
Das Register führt 18 Screening-Einträge. Neun gehören zur entwerteten naiven Phase (§ 3.3) und bleiben hier außen vor. Die neun korrigierten Durchgänge umfassen 4.171 Kombinationen aus Serie und Lag; zusammen mit der Nachrichtenstudie aus § 5.3 (3.654 Kombinationen) sind das zehn Läufe über 7.825 Kombinationen mit null Survivorn. Alle neun Durchgänge, dazu die Nachrichtenstudie zum Vergleich:
| Eintrag | Bereich | Kombinationen | Bester Rohbefund | Survivor |
|---|---|---|---|---|
| 16 | API monatlich, China/Ozeanien | 44 | semi_billings_worldwide r=+0,039@75d, p_bonf=1,000 |
keine |
| 17 | Disruption täglich, 26 Serien | 754 | temperature_2m_max_yangtze_delta_cn r=+0,102@89d, p_bonf=0,811 |
keine |
| 18 | US-Bahnfriktion (STB EP724) | 88 | rail_dwell_us r=−0,118@140d, p_bonf=0,667 |
keine |
| 19 | Peruanische Bahnfracht (Ositran) | 44 | rail_freight_peru_fso r=+0,084@130d, p_bonf=0,178 |
keine |
| 20 | EU-KFZ-Zulassungen (EZB) | 22 | car_registrations_ea r=−0,067@60d, p_bonf=0,214 |
keine |
| 21 | Hydro-Speicher + Rheinpegel, h=5 | 319 | ch_groundwater_index r=+0,071@80d, p_bonf=1,000 |
keine |
| 22 | dieselben, Horizont-Scan h=10/20/40/60 | 1.276 | siehe § 4.3 | keine |
| 23/24 | Weizen-Wetter, 28 Signale, 7 Regionen | 812 | wheat_precip_ar_pampas r=+0,096@26d, p_bonf=0,168 |
keine |
| 26 | Nachrichten-Punktewolke, 21 Ziele | 3.654 | dax:wolke_verschiebung r=−0,081@17d, p_bonf=0,180 |
keine |
Zur Zahl 7.825. Sie zählt Kombinationen aus Serie und Lag, keine unabhängigen Hypothesen. Benachbarte Lags derselben Serie hängen stark zusammen, die effektive Zahl unabhängiger Tests ist also weit kleiner. Wir führen die Zahl als Maß für die Suchbreite und ausdrücklich nicht als inferenzielle Größe.
5.2 Gegenbeweise aus den Daten selbst
Zwei innere Widersprüche haben zur hydrologischen Frage mehr beigetragen als jeder p-Wert.
ch_groundwater_index (r = +0,19) und edo_lowflow_water_index (r = −0,12) sind
auf dieselbe Leserichtung normiert und messen dasselbe Einzugsgebiet. Sie tragen
entgegengesetzte Vorzeichen. Zwei Instrumente, die auf dieselbe physikalische
Größe zeigen und in der Richtung uneins sind, berichten Rauschen — unabhängig von
ihren Einzelkorrelationen.
Im Weizenlauf erreichten wheat_precip_ar_pampas (r = +0,096@26d) und
wheat_water_deficit_ar_pampas (r = −0,087@26d) beide p_raw = 0,006. Das sind
keine zwei Belege. Wasserdefizit ist Evapotranspiration minus Niederschlag; beide
Reihen messen eine Größe und müssen konstruktionsbedingt gegenläufig sein. Sie
getrennt zu zählen hätte einen schwachen Befund verdoppelt.
Eintrag 22 schließt mit der sachlichen Lesart: Ein Vorlauf auf den COMEX-Kupferpreis ist nicht nachweisbar, weil der Transportkostenanteil bei Kupfer wenige Prozent beträgt — zu klein, als dass ein Frachtfriktionssignal durchschlagen könnte. Diese Überlegung führte dazu, dieselbe Kette an Diesel zu prüfen, wo der Anteil groß ist; jene Spur wurde umrissen, aber nie begonnen.
5.3 Nachrichtenmerkmale: null (Eintrag 26)
Die größte Einzelstudie. Sechs vorregistrierte Form- und Richtungsmerkmale, berechnet über tägliche Punktewolken aus Schlagzeilen-Embeddings (K = 8 Schlagzeilen pro Tag, mxbai-embed-large, 75.244 tagesdatierte GDELT-Schlagzeilen 2017–2025), geprüft gegen den 5-Tage-Vorwärtsreturn von neun Basket-Commodities, drei Indizes und neun S&P-residualisierten Reihen. 3.654 Kombinationen, NS = 400, Bonferroni je Ziel, synthetische Kontrolle bei 21 von 21 Zielen bestanden.
Kein Kandidat erfüllte das vorregistrierte Kriterium (p_bonf < 0,05 im Residual bei mindestens zwei Commodities, ohne Anschlag beim S&P selbst). Die drei stärksten:
| Ziel | Merkmal | r | Lag | p_bonf |
|---|---|---|---|---|
| DAX | Wolken-Verschiebung | −0,081 | 17d | 0,180 |
| S&P 500 | Wolken-Verschiebung | −0,084 | 17d | 0,195 |
| Aggregate-Residual | Wolken-Verschiebung | +0,085 | 17d | 0,269 |
Ein nicht signifikantes Muster ist festzuhalten, weil es vorher angekündigt war. Die Vorregistrierung (§ 4.1 des Scope-Dokuments) hatte erwartet: Falls das Verschiebungsmerkmal etwas trägt, dann Makro-Aufmerksamkeit statt commodity-spezifischer Information. Der beste Wert des Merkmals liegt beim DAX, beim S&P 500 und beim Dow gleichzeitig auf demselben Lag von 17 Tagen — genau die Signatur, die die Vorregistrierung beschrieb. Er ist nicht signifikant, und wir leiten nichts daraus ab. Wir berichten ihn, weil ein vorher benanntes und dann beobachtetes Muster als Protokoll mehr wert ist, als dasselbe Muster im Nachhinein gefunden als Ergebnis wert wäre.
5.4 Attribution: neutral (Eintrag 27)
Der abschließende Test fragte, ob die Nachrichten-Dimension über technische Merkmale hinaus etwas beiträgt: identische Pipeline, identische Daten, eine Konfiguration mit und eine ohne Nachrichtenmerkmale, ausgewertet nach der Datenreparatur und dem Zeitachsen-Backfill.
Vorregistriert in docs/research_news_attribution.md, committet als 7c13188 vor
dem Lauf. Die Entscheidungsregel des Inhabers wurde getrennt als 2671340
committet, ebenfalls bevor das Ergebnis bekannt war.
| Endpunkt | Ergebnis | Schwelle |
|---|---|---|
| Primär — Trader-Ebene | diff = +2,6 bp/Tag, Block-Bootstrap p = 0,1227, einseitig | α = 0,10 — verfehlt |
| Sekundär — Pinball-Verlust | diff = −1,36 × 10⁻⁴, p = 0,0937 | bestanden |
Backtest-Zusammenhang auf demselben Fenster: die Konfiguration mit Nachrichten erzielte +57,0 % (Sharpe 0,49, maximaler Drawdown −32 %) gegen +14,4 % (0,23, −42 %) für die rein technische Konfiguration und +36,8 % für Buy-and-Hold.
Schlicht gelesen: Praktisch der gesamte Strategievorteil kam aus der Nachrichten-Dimension, und die Prognose selbst war mit Nachrichten messbar besser. Der primäre Endpunkt verfehlte dennoch seine vorab gesetzte Schwelle um 0,023.
6. Die Entscheidung
Die vorregistrierte Regel ordnete einem NEUTRAL-Verdikt die Beendigung zu: veröffentlichen, den wiederverwendbaren Audit-Baustein auskoppeln, archivieren.
Dieser Regel wurde gefolgt. Das Projekt wurde am 2026-08-13 eingestellt. Der Abschlusshinweis ging am selben Tag online, der Ledger wurde bei 47 Einträgen geschlossen, die interaktiven Ansichten wurden zurückgezogen.
Es lohnt sich, deutlich zu benennen, was zur Verfügung stand und nicht genommen wurde. Der sekundäre Endpunkt bestand. Ein einseitiges α von 0,10 hätte sich als konservativ bezeichnen und lockern lassen. Der Backtest-Abstand zwischen den Konfigurationen war groß und rhetorisch zugkräftig. Die Lücke betrug 0,023. Jedes davon hätte eine Fortsetzung gestützt, und jedes einzelne wäre nach dem Blick aufs Ergebnis gewählt worden.
Wir beanspruchen hier keine Tugend — der ganze Zweck der vorher notierten Regel war, die Entscheidung in einen Moment zu legen, in dem sie sich nicht mehr motivieren lässt. Dafür ist Vorregistrierung da, und so sieht es aus, wenn sie bindet.
Was dieser Bericht nicht behauptet. Er zeigt nicht, dass Nachrichten keine Information über Commodity-Preise tragen. Die Belege auf Prognoseebene deuten in die Gegenrichtung. Er zeigt, dass eine bestimmte vorregistrierte Schwelle, auf einem bestimmten Endpunkt, mit diesen Daten und diesem Fenster nicht erreicht wurde — und dass die angekündigte Folge eintrat.
7. Was die Kette nicht schützte
Der Befund dieses Abschnitts wurde nicht gesucht. Er tauchte am 2026-08-13 beim Nachrechnen der veröffentlichten Zahlen für eine unabhängige Reparatur auf, und er ist der Grund, warum die öffentliche Equity-Kurve eingefroren statt aktualisiert wurde.
7.1 Was veröffentlicht war
Das öffentliche Dashboard zeigte einen kumulierten Return von +135,0 %. Die korrekte Zahl für dasselbe Datum lautete nachgerechnet +67,9 %.
7.2 Der Mechanismus
Das Paper-Trading-Konto wird aus einer Tabelle von Entscheidungen aufgebaut, nicht von Merkmalen:
seed_from_backtest()leitet Long/Short-Positionen aus den Backtest-Vorhersagen eines bestimmten Tages ab und schreibt sie als Zeilen mitmode='backtest'incfd_paper_input. Dort werden die Entscheidungen eingefroren.- Der nächtliche
run_live()hängt die Zeile des Tages an und ruft danachrebuild(), das die gesamte Historie aus den gespeicherten Eingangszeilen mit der aktuellen Konfiguration neu simuliert. - Daraus die Asymmetrie, die alles Weitere verursachte: Konfigurationsänderungen wirken sich aus, Modelländerungen können es nicht. Eine geänderte Kostenannahme wird jede Nacht neu angewandt. Eine Änderung am Modell, das die gespeicherten Entscheidungen erzeugt hat, nicht — die Entscheidungen stehen bereits fest.
account_summary()liest die gespeicherte Tagestabelle, nimmt den letzten Equity-Wert und rechnet nichts nach.- Die Backtest-Zeilen auffrischen kann allein
seed— ein manueller Befehl, nie Teil des nächtlichen Laufs. Keine Prüfung verglich die gespeicherte Kurve mit einer frischen Herleitung.
7.3 Die Modelländerung, gemessen
Über alle 55 archivierten Vorhersagedateien (Horizont 5, Entscheidungsregel
q50 > 0, 1.257 gemeinsame Backtest-Tage):
| Vergleich | gekippte Entscheidungen | Anteil Long |
|---|---|---|
| 2026-06-08 → 2026-07-03 | 0 | 65,8 % → 65,8 % |
| 2026-07-05 → 2026-07-06 | 161 von 1.257 (12,8 %) | 65,8 % → 67,8 % |
| 2026-07-06 → 2026-08-12 | 0 | 67,8 % → 67,8 % |
Im gesamten Live-Zeitraum trat genau eine diskrete Modelländerung auf: die Datenreparatur vom 2026-07-06, deren eigener Kernbefund war, dass das Modell seit Januar 2026 auf der Nachrichten-Dimension nahezu blind lief. Vor und nach diesem Datum sind die Backtest-Entscheidungen identisch.
Die realisierten Returns und Schlusskurse sind über die Änderung hinweg bitgleich. Die Grundwahrheit hat sich nie bewegt, nur die Vorhersagen.
7.4 Die drei Trennungen
Das Konto neu geseedet aus den Vorhersagedateien vor und nach der Änderung, mit der Produktionskonfiguration und derselben leck-freien walk-forward-Short-Schwelle, die die veröffentlichte Kurve erzeugt hat:
| Kennzahl, gleiches Fenster | 2026-07-05 | 2026-08-12 | |
|---|---|---|---|
| Geseedete Kurve — die Vorschrift hinter der öffentlichen Zahl | +119,15 % | +62,36 % | eingebrochen |
| Buy-and-Hold, gleiches Fenster | +36,80 % | +36,80 % | unverändert |
| Long/Cash-Kumulativreturn — das im Ledger besicherte Gate | 73,6 % | 86,4 % | verbessert |
Daraus folgen drei verschiedene Fehler.
Erstens: besichert ist nicht veröffentlicht. Das Qualitäts-Flag des Ledgers berechnet sich aus dem Long/Cash-Bookmark. Diese Größe verbesserte sich über die Modelländerung hinweg, das Gate blieb also grün, und die Kette verzeichnete getreulich 46 von 46 Prognosen als bestanden. Die Kette wurde nie verletzt und ihr Protokoll ist zutreffend. Sie bescheinigt eine Strategie, die nicht die auf dem Dashboard war.
Zweitens: gemessen ist nicht gezeigt. Selbst wer die veröffentlichte Kurve täglich prüfte, hätte nichts gesehen — ihre Entscheidungen stammten von vor der Änderung. Die angezeigte Zahl war in sich stimmig und nach außen falsch. Das ist die ungünstigste Kombination, weil innere Stimmigkeit genau das ist, was eine Prüferin kontrolliert.
Drittens: Konfiguration ist nicht Konfiguration. Roll-Kosten waren im Live-Tick aktiviert, doch der Renderer der öffentlichen Seite baute sein eigenes Konfigurationsobjekt daneben und führte sie nicht mit; der Rückfall des Dashboards war eine blanke Konfiguration ohne Short-Bein. Drei veröffentlichende Pfade, drei Konfigurationen. Die Roll-Kosten allein erklären 135,0 % gegenüber 127,3 %; der restliche Abstand zu 67,9 % ist das eingefrorene Modell. Fehlende Roll-Kosten sind die eine Kostenart, deren Abwesenheit systematisch schmeichelt.
7.5 Der Test, der es nicht finden konnte
Der Wächter gegen die Roll-Kosten-Regression suchte im Quelltext des Live-Ticks
nach der Zeichenkette apply_roll=True. Die Zeichenkette stand dort. Der Test lief
über den gesamten Zeitraum grün, in dem die öffentliche Seite Zahlen ohne
Roll-Kosten zeigte. Er wurde durch Verhaltensprüfungen ersetzt, die alle drei
veröffentlichenden Pfade abdecken.
Verhalten prüfen, nicht Quelltext. Die Regel ist unspektakulär; lehrreich ist, dass ein eigens gegen diese Fehlerklasse geschriebener Test sie strukturell nicht erkennen konnte und dabei durchgehend grün aussah.
7.6 Die allgemeine Lehre
Eine manipulationssichere Kette beweist, was wann vorhergesagt wurde. Sie beweist nicht, dass eine daraus abgeleitete Kennzahl noch dazu gehört, und sie schränkt nicht ein, welche Größe eine Qualitätsprüfung misst. Beide Lücken öffneten sich hier gleichzeitig, in einem System, dessen erklärter Zweck Nachprüfbarkeit war.
Der fehlende Baustein ist billig, und wir haben ihn nicht gebaut: ein nächtlicher Abgleich der gespeicherten Kurve gegen eine frische Herleitung, mit Warnung, sobald die Differenz eine Schwelle reißt. Wir empfehlen jedem Projekt, das einen abgeleiteten Track Record veröffentlicht, diesen Abgleich als Teil der Veröffentlichung zu behandeln und nicht als optionale Prüfung.
8. Befunde, die anderen nützen
Festgehalten, weil sie uns Zeit gekostet haben und anderen welche sparen können.
Nachträglich ermittelte Publikationsdaten taugen nicht für Backtests.
htmldate gegen eine GDELT-Wahrheitsmenge kalibriert: 43,4 % taggenau, 24 % zu
früh. Zu frühe Datierungen tragen Zukunftsinformation in einen Backtest. Wir haben
nachgeladene Daten in Trainingsdaten daraufhin untersagt.
Volltext-Nachladen bringt rund 61 % Ausbeute bei etwa 6 URLs/s, mit stark jahrgangsabhängigem Linkrot. Den Verlust einplanen, statt ihn zu entdecken.
Richtungs-Trennbarkeit von Schlagzeilen im Embedding-Raum erreichte 87,5 % gegen eine Mehrheitsbasis von 66,7 % auf 130 handbeschrifteten Meldungen. Zur Einschränkung durch den einzelnen Beschrifter siehe § 9.
Mean-Pooling machte Embeddings schlechter, nicht besser. Über 726 Fenster
erreichte gemitteltes mxbai-embed-large 41,7 % gegen 46,9 % für die bloße
Schlagzeile.
Die Aggregations-Falle, aus unserer Sicht der übertragbarste Punkt hier. Im Livebetrieb stiegen die Tagesmengen von 15,9 auf 48,7 Meldungen (3,1×) — und die Streuung der Faktoren halbierte sich fast durchweg. Der Tagesaggregat ist ein urgency-gewichteter Mittelwert; mehr Meldungen machen den Mittelwert flacher (mit √n), die Tag-zu-Tag-Information sinkt also, während das Volumen steigt. Volumen hoch, Information runter. Ein Modell, das auf 16 Meldungen pro Tag trainiert wurde und 49 bekommt, sieht eine Verteilungsverschiebung, kein Rauschen.
Die Falle schließt sich nicht dadurch, dass man handgebaute Kategorien durch Embeddings ersetzt. Das Flachwerden ist eine Eigenschaft der Tagesmittelung, nicht der Taxonomie: 49 Artikelvektoren zu mitteln flacht genauso ab wie 49 Faktorwerte. Wer auf Embeddings umstellt, muss die Aggregation bewusst mitentwerfen.
Lizenzlagen, die man vor dem Bauen kennen sollte. Die deutsche Tankstellenpreis-Historie (MTS-K über Tankerkönig) ist nichtkommerziell lizenziert und erfordert für kommerzielle Nutzung einen Vertrag — verbreitete Angaben, die Historie stehe unter CC BY 4.0, treffen nicht zu; beim Anbieter bestätigt. Der Free-Tier von Open-Meteo ist ausdrücklich nichtkommerziell. Sauber auch für kommerzielle Nutzung freigegeben, mit Quellenangabe: die Trockenheitsplattform des Schweizer BAFU, Hub'Eau (Etalab 2.0), Copernicus EDO (CC BY 4.0), DWD CDC (GeoNutzV).
9. Grenzen
-
Das Live-Fenster ist kurz. Neun Wochen, davon elf Tage Infrastrukturausfall. Es trägt Aussagen über den Mechanismus nachprüfbarer Vorab-Festlegung und keine über Performance. Jede Renditezahl in diesem Bericht ist eine Backtest-Zahl und als solche gekennzeichnet.
-
Das Live-Fenster entscheidet auch in keine Richtung. Der Trader erzielte +6,94 % gegen +17,21 % für Buy-and-Hold über 37 Live-Tage — 10,3 Punkte zurück. Dieses Fenster liegt im 6. Perzentil aller 1.220 gleich langen Backtest-Fenster, doch 42 % aller Backtest-Fenster lagen ebenfalls hinter Buy-and-Hold. Ein 37-Tage-Fenster hinter dem Markt ist gewöhnlich. Die Live-Trefferquote betrug 50,0 % auf 26 Markttagen, ±19,2 Punkte bei 95 % — ein Intervall, das den Münzwurf ebenso enthält wie die Backtest-Quote von 52,8 %.
-
Ein Beschrifter, ein Datensatz. Die 130 handbeschrifteten Schlagzeilen stammen von einem einzigen Annotator (Claude), ohne Zweitbewertung und ohne Übereinstimmungsmaß. Die Trennbarkeitszahl in § 8 ist ein Hinweis, keine Messung.
-
Für Nicht-Metall-Commodities existiert keine ökonomische Positivkontrolle. Die synthetische Kontrolle schließt die methodische Frage, nicht die ökonomische. Das ist eine offene Lücke in unserem Werkzeug.
-
Die naive Screening-Phase ist wertlos und erscheint nur als Lehrstück.
-
n_trialszählt Kombinationen, keine unabhängigen Hypothesen (§ 5.1). -
Handgebaute Merkmalsspalten waren größtenteils leer. Von 23 definierten Spalten über 2.895 Tage mit Kurs:
f_demand_evzu 0,0 % belegt,f_demand_defense0,2 %,n_reconstruction0,1 %,n_ceasefire0,6 %,n_peace_progress0,9 %; drei weitere Spalten existierten im Schema und wurden nie geschrieben. Jede Deutung des Beitrags dieser Merkmale muss berücksichtigen, dass viele von ihnen fast keine Daten trugen. -
Ein einzelner Betreiber. Entwurf, Umsetzung, Auswertung und Entscheidung lagen bei einer Person, unterstützt von einem Sprachmodell. Register und Kette begrenzen, was sich nachträglich ändern ließ; sie ersetzen keine unabhängige Replikation.
10. Reproduktion
Das Reproduktionspaket liegt diesem Bericht im Zenodo-Eintrag bei: Roh-Prognosen mit Tagesquantilen und Bewertungsdiagnostik, der geschlossene Ledger samt Zeitstempel-Ankern, die täglichen Punktewolken-Merkmale, die 130 beschrifteten Schlagzeilen, die Auswertungsskripte und die Vorregistrierungen. Ein Manifest hält Provenienz und SHA-256-Prüfsummen je Datei fest.
Bewusst ausgenommen. Die COMEX-Schlusskurse wurden aus den Prognosedateien entfernt. Alles, was dieser Bericht behauptet — Kalibrierung, Pinball-Verlust, Trefferquoten, die Trader-Simulation, die Rekonstruktion in § 7 — bleibt aus den verbliebenen realisierten Returns und Quantilen reproduzierbar; die Kursreihe selbst steht uns zur Weitergabe nicht zu. Der Nachrichten-Rohbestand und die Merkmalsdatenbank liegen ebenfalls nicht bei; beide sind regenerierbar, und keine Aussage dieses Berichts hängt an ihnen.
Quellenangabe. Die Nachrichtendaten stammen aus dem GDELT-Projekt (https://www.gdeltproject.org/), dessen Bedingungen die Weitergabe mit Zitation erlauben.
Bewusst nicht korrigiert. Die Registereinträge sind wiedergegeben, wie sie geschrieben wurden, einschließlich der Warnung in Eintrag 22, die Eintrag 25 später umstieß. Die Abfolge zu lesen ist Teil des Protokolls.
Erstellt mit Unterstützung von Claude (Anthropic) für Auswertung, Verifikation und Textfassung, im Auftrag des Autors, der für Entwurf, Entscheidungen und Inhalt verantwortlich zeichnet.