<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Reproducibility on Mulham Fetna</title>
    <link>https://mulhamfetna.com/tags/reproducibility/</link>
    <description>Recent content in Reproducibility on Mulham Fetna</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <managingEditor>contact@mulhamfetna.com (Mulham Fetna)</managingEditor>
    <webMaster>contact@mulhamfetna.com (Mulham Fetna)</webMaster>
    <copyright>© 2026 Mulham Fetna</copyright>
    <lastBuildDate>Mon, 07 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://mulhamfetna.com/tags/reproducibility/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Every number we publish is machine-verified. Here&#39;s the machinery</title>
      <link>https://mulhamfetna.com/projects/trading-strategy-finder/claims-ledger/</link>
      <pubDate>Mon, 07 Sep 2026 00:00:00 +0000</pubDate>
      <author>contact@mulhamfetna.com (Mulham Fetna)</author>
      <guid>https://mulhamfetna.com/projects/trading-strategy-finder/claims-ledger/</guid>
      <description>&lt;p&gt;The hardest problem in trading research isn&amp;rsquo;t statistics — it&amp;rsquo;s that the researcher grades their&#xA;own homework. You choose what to try, what costs to assume, when to stop, and what to show. After&#xA;three and a half months of running a research programme under that temptation, we&amp;rsquo;re convinced the&#xA;only defense that holds is &lt;strong&gt;mechanical&lt;/strong&gt;: make it impossible to publish a number that doesn&amp;rsquo;t&#xA;re-derive from evidence.&lt;/p&gt;&#xA;&lt;p&gt;This post describes the system we built and now run everything through. The full methodology paper&#xA;is at &lt;a href=&#34;https://papers.ssrn.com/sol3/papers.cfm?abstract_id=7428478;&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;https://papers.ssrn.com/sol3/papers.cfm?abstract_id=7428478;&lt;/a&gt; the code is public.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;A claim is an object, not a sentence&#xA;    &lt;div id=&#34;a-claim-is-an-object-not-a-sentence&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#a-claim-is-an-object-not-a-sentence&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;In our repository, a published number isn&amp;rsquo;t prose — it&amp;rsquo;s a registered object with required fields:&#xA;the statement with its numbers inline; the &lt;strong&gt;evidence files&lt;/strong&gt; that produced it (committed to git —&#xA;a claim whose evidence isn&amp;rsquo;t version-controlled is rejected structurally); an &lt;strong&gt;executable&#xA;re-derivation&lt;/strong&gt; compared to the published value within an explicit tolerance; &lt;strong&gt;three independent&#xA;verifications that must fail for different reasons&lt;/strong&gt;, one of which is a &lt;em&gt;falsifier&lt;/em&gt; — a test built&#xA;so that a specific way of being wrong would trip it; and a &lt;strong&gt;mandatory declared blind spot&lt;/strong&gt;,&#xA;because &amp;ldquo;verified, with no stated limitation&amp;rdquo; is itself a defect.&lt;/p&gt;</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://mulhamfetna.com/projects/trading-strategy-finder/claims-ledger/featured.png" />
    </item>
    
    <item>
      <title>Our track record can&#39;t cheat. Here&#39;s how we froze it</title>
      <link>https://mulhamfetna.com/projects/trading-strategy-finder/track-record/</link>
      <pubDate>Mon, 07 Sep 2026 00:00:00 +0000</pubDate>
      <author>contact@mulhamfetna.com (Mulham Fetna)</author>
      <guid>https://mulhamfetna.com/projects/trading-strategy-finder/track-record/</guid>
      <description>&lt;p&gt;Every trading track record you&amp;rsquo;ve ever seen asks you to trust its author about one thing: that the&#xA;rules weren&amp;rsquo;t adjusted along the way. Strategies quietly swapped after a bad month, windows chosen&#xA;after the fact, losers left out of the tally. You can&amp;rsquo;t audit any of it, so the record is worth&#xA;exactly as much as the author&amp;rsquo;s word.&lt;/p&gt;&#xA;&lt;p&gt;For the final act of this project, we built a track record where the author&amp;rsquo;s word doesn&amp;rsquo;t matter.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Out-of-sample by construction&#xA;    &lt;div id=&#34;out-of-sample-by-construction&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#out-of-sample-by-construction&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;On 2026-08-31 we signed a protocol — a public document in the repository — that froze everything an&#xA;author could later fudge:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;The universe:&lt;/strong&gt; exactly 9 of our 54 configurations, admitted by five pre-registered criteria&#xA;applied to the forward books (the selection beat a random-set control — claim&#xA;&lt;code&gt;LIVE-ALLOWLIST-FROZEN&lt;/code&gt;). Not one slot was hand-picked.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;The parameters:&lt;/strong&gt; the deployed set, pinned by cryptographic hash into the signed document. The&#xA;replay tooling &lt;em&gt;refuses to run&lt;/em&gt; if the universe file differs by one byte from the signed hash.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;The rules:&lt;/strong&gt; one contract always, the engine&amp;rsquo;s stated fill conventions, mechanical kill rules,&#xA;and a &amp;ldquo;never-list&amp;rdquo; (no manual overrides, no window cherry-picking, no pausing to wait out a&#xA;drawdown) — violations void the record&amp;rsquo;s claims from that point, by the protocol&amp;rsquo;s own text.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;pre class=&#34;not-prose mermaid&#34;&gt;&#xA;flowchart LR&#xA;    P[&#34;✍️ signed protocol&lt;br&gt;2026-08-31, public in the repo&#34;] --&gt; U[&#34;THE UNIVERSE&lt;br&gt;9 of 54 configurations,&lt;br&gt;admitted by five pre-registered&lt;br&gt;criteria (beat a random-set control)&#34;]&#xA;    P --&gt; PAR[&#34;THE PARAMETERS&lt;br&gt;pinned by cryptographic hash —&lt;br&gt;replay refuses to run on a&lt;br&gt;one-byte difference&#34;]&#xA;    P --&gt; RU[&#34;THE RULES&lt;br&gt;1 contract · stated fills ·&lt;br&gt;mechanical kills · never-list&lt;br&gt;(violations void the record)&#34;]&#xA;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;Because the parameters and universe were published &lt;em&gt;before&lt;/em&gt; any future data existed, every recorded&#xA;window is out-of-sample &lt;strong&gt;by construction&lt;/strong&gt;. When new data arrives, it is first audited against the&#xA;previous delivery for retroactive changes (a repaint check), then replayed with the frozen set. The&#xA;result becomes a new claim in the machine-verified ledger — a losing window under exactly the same&#xA;rules and prominence as a winning one. The protocol says so in writing: &lt;em&gt;a negative outcome is a&#xA;publishable result of the protocol, not a failure of it.&lt;/em&gt; No verdict is allowed before a&#xA;pre-registered power threshold; interim windows are descriptive only.&lt;/p&gt;</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://mulhamfetna.com/projects/trading-strategy-finder/track-record/featured.png" />
    </item>
    
    <item>
      <title>What 16 years of data and 3.5 months of honest testing taught us about trading strategies</title>
      <link>https://mulhamfetna.com/projects/trading-strategy-finder/overview/</link>
      <pubDate>Mon, 07 Sep 2026 00:00:00 +0000</pubDate>
      <author>contact@mulhamfetna.com (Mulham Fetna)</author>
      <guid>https://mulhamfetna.com/projects/trading-strategy-finder/overview/</guid>
      <description>&lt;p&gt;This is the story of a research project my team at BeInMedia ran from May to September 2026: a&#xA;systematic attempt to find out what actually survives in futures trading once you stop fooling&#xA;yourself. We built the machinery, paid for the answers, and published everything — including the&#xA;failures. The code, the evidence, and every number below are public and machine-verifiable:&#xA;&lt;a href=&#34;https://github.com/mulhamfetna/trading-strategy-finder&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;github.com/mulhamfetna/trading-strategy-finder&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Here is the whole arc, honestly told.&lt;/p&gt;&#xA;&lt;pre class=&#34;not-prose mermaid&#34;&gt;&#xA;flowchart LR&#xA;    A[&#34;May 2026&lt;br&gt;machinery built:&lt;br&gt;backtest engine · optimizer ·&lt;br&gt;claims ledger&#34;] --&gt; B[&#34;Jun–Aug 2026&lt;br&gt;the studies:&lt;br&gt;economic-calendar sweep ·&lt;br&gt;225-cell ORB grid ·&lt;br&gt;forward test of our own fleet&#34;]&#xA;    B --&gt; C[&#34;Aug 31, 2026&lt;br&gt;track record frozen&lt;br&gt;under a signed protocol&#34;]&#xA;    C --&gt; D[&#34;Sep 2026&lt;br&gt;two preprints filed ·&lt;br&gt;everything published,&lt;br&gt;including the failures&#34;]&#xA;&lt;/pre&gt;&#xA;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;The rule that shaped everything&#xA;    &lt;div id=&#34;the-rule-that-shaped-everything&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#the-rule-that-shaped-everything&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Backtests lie — not because the math is wrong, but because the person running them chooses what to&#xA;try, what costs to assume, and what to show you. Our defense was structural: &lt;strong&gt;every study was&#xA;pre-registered before it ran&lt;/strong&gt; (design, thresholds, controls frozen in writing first), &lt;strong&gt;every&#xA;negative result had to prove it had the statistical power to see an effect&lt;/strong&gt;, &lt;strong&gt;every positive had&#xA;to beat a dumb control&lt;/strong&gt;, and &lt;strong&gt;every published number lives in a machine-verified claims ledger&lt;/strong&gt;&#xA;— re-derived from committed evidence files by our CI on every change, 79 claims and counting. If a&#xA;number in this series doesn&amp;rsquo;t re-derive, our own build fails.&lt;/p&gt;</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://mulhamfetna.com/projects/trading-strategy-finder/overview/featured.png" />
    </item>
    
  </channel>
</rss>
