<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Trading Reality — Markets in Production]]></title><description><![CDATA[Execution, market structure, and how trading systems behave in the real world]]></description><link>https://www.tradingreality.com</link><image><url>https://substackcdn.com/image/fetch/$s_!7uzn!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ab2beb1-7949-4463-aec2-05427b6adb3e_1254x1254.png</url><title>Trading Reality — Markets in Production</title><link>https://www.tradingreality.com</link></image><generator>Substack</generator><lastBuildDate>Sun, 04 Oct 2026 18:49:36 GMT</lastBuildDate><atom:link href="https://www.tradingreality.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Tibor S]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[tradingreality@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[tradingreality@substack.com]]></itunes:email><itunes:name><![CDATA[Tibor S]]></itunes:name></itunes:owner><itunes:author><![CDATA[Tibor S]]></itunes:author><googleplay:owner><![CDATA[tradingreality@substack.com]]></googleplay:owner><googleplay:email><![CDATA[tradingreality@substack.com]]></googleplay:email><googleplay:author><![CDATA[Tibor S]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[The ABC of Forex trading]]></title><description><![CDATA[Notes from inside a retail broker]]></description><link>https://www.tradingreality.com/p/the-abc-of-forex-trading</link><guid isPermaLink="false">https://www.tradingreality.com/p/the-abc-of-forex-trading</guid><dc:creator><![CDATA[Tibor S]]></dc:creator><pubDate>Fri, 02 Oct 2026 12:02:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_37S!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d41552b-41df-4185-979f-7eeb9e4ac9ab_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_37S!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d41552b-41df-4185-979f-7eeb9e4ac9ab_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_37S!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d41552b-41df-4185-979f-7eeb9e4ac9ab_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!_37S!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d41552b-41df-4185-979f-7eeb9e4ac9ab_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!_37S!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d41552b-41df-4185-979f-7eeb9e4ac9ab_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!_37S!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d41552b-41df-4185-979f-7eeb9e4ac9ab_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_37S!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d41552b-41df-4185-979f-7eeb9e4ac9ab_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1d41552b-41df-4185-979f-7eeb9e4ac9ab_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2516773,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.tradingreality.com/i/218463347?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d41552b-41df-4185-979f-7eeb9e4ac9ab_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_37S!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d41552b-41df-4185-979f-7eeb9e4ac9ab_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!_37S!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d41552b-41df-4185-979f-7eeb9e4ac9ab_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!_37S!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d41552b-41df-4185-979f-7eeb9e4ac9ab_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!_37S!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d41552b-41df-4185-979f-7eeb9e4ac9ab_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>When I was appointed CEO of a new FX broker, I had a plan.</p><p>I came from some of the most complex, most regulated corners of the market, I thought to myself. I had also worked with spot FX in hedge funds, interbank feeds, and liquidity providers. Fragmentation didn&#8217;t scare me. Oh, no, not me!</p><p>What this space needed, I believed, was 360-degree transparency. Clients would be skeptical, at first. Then they would start understanding. Then they would start flying, slowly towards the light. Then in swarms. The industry would recognize the winning pattern and follow, too.</p><p><em>So&#8230; let&#8217;s revolutionize this market from within!</em></p><p>My incremental growth plan was very solid, I could even call it great. I had laid it out, and the investors had agreed to it excitedly.</p><p>But my revolution came to an abrupt end when the investors faced what the plan actually required: a patient build-up and some light investment.</p><p>&#8220;Our peers went from X to Y in 6 months.&#8221; I heard them say at once.</p><p>&#8220;But... but...&#8221;</p><p>I would choke on my next words.</p><p>I wanted to say &#8220;... look at what they have done to so many of their clients...&#8221;</p><p>&#8220;...that is not a long-term business...&#8221;</p><p>&#8220;&#8230;you agreed to the plan. I laid it all out.&#8221;</p><p>I knew there was no point in saying any of it. The revolution was strangled inside me. I had been naive on this occasion. But I WASN&#8217;T naive, I had been in the wider industry for too long for that.</p><div><hr></div><p>When you buy EURUSD with a forex broker, your order doesn&#8217;t go to any exchange. There is no single exchange, in fact. You are almost certainly not going to be matched with a bank. (Yes, I can hear some of you pushing back already. We&#8217;ll get there.) Who &#8220;takes&#8221; your order will depend on which of <em><strong>three buckets</strong></em> you fall into. You have very little control, and no visibility into which pile they threw your ticket onto. You may get a helpful line somewhere in the disclosures: &#8220;We may be on the other side of your trade.&#8221;<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a> Go do with that line what you want&#8230; Most clients don&#8217;t know, or don&#8217;t care to know, which bucket they&#8217;re in. Yet this is one of the most consequential questions in trading retail FX.</p><h4><strong>Foreign to any Exchange</strong></h4><p>Before I describe the three buckets, let me emphasize a point. In foreign exchange trading there is no centralized book, no single exchange, no universal &#8220;prevailing price&#8221; that everybody is entitled to trade at. Exchange-like entities (ECNs) exist, yes &#8212; but they are fragments of this market too. No government or organization supervises the entire space. Country by country, the rules are different, and the &#8220;regulators&#8221; come in all shapes and sizes &#8212; different flavors of strictness and legal oversight. Not only that, you aren&#8217;t actually buying the underlying currencies in the first place. <strong>C</strong>ontract <strong>F</strong>or <strong>D</strong>ifference means that you and the party on the other side of your trade profit or lose from the difference in price. You click, and sweat through the roller-coaster, but actually hold no Euros.</p><p>What you do hold is a <em>risk position</em>, and with that you hand the opposite risk to the broker. When you buy EURUSD, your broker takes on exposure equivalent to a short EURUSD position, before any offset. Why? Well, because if EUR goes up vs USD, they will have to pay you. Let&#8217;s understand the options the broker has at their disposal for dealing with this risk, using the three buckets I promised earlier<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a>:</p><h4><strong>A-book: The I-wash-my-hands bucket</strong></h4><p>The broker passes your order straight through to a <em>liquidity provider</em> and lets them deal with the risk. They take their cut &#8212; a commission, a markup &#8212; and sleep tight. Your gain no longer comes at their expense, so your incentives are generally most aligned here. However, there is still a caveat: send too much &#8220;toxic flow&#8221;<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-3" href="#footnote-3" target="_self">3</a> to the liquidity provider, and they may take action against the broker. The terms worsen, all the way to cutting the service entirely. So even here, it is not quite true that you making money is neutral to the broker. But at least it is the least scary of the three misaligned models.</p><h4><strong>B-book: &#8220;All you can eat&#8221;</strong></h4><p>Your position gets internalized. Which is a fancy way of saying the broker eats that risk because they deem that you and your kind are likely unsophisticated. Which is a fancy way of saying that you are part of the st...d cohort. No offense. And no order, no position goes anywhere.</p><p>There may be a hedging mechanism in the background, watching the book&#8217;s net exposure against company risk limits and regulatory constraints. Cross a threshold, and some risk gets hedged. But that is a separate mechanism altogether.</p><p>From your, the trader&#8217;s, perspective, the arrangement starts to look suspiciously like that slot machine in Vegas.</p><p>And of course, the incentive structure here is really ugly. If you win, the house doesn&#8217;t. But the house also makes money on the machine maintenance, drinks, snacks...</p><h4><strong>C-book: The undecided.</strong></h4><p>If the broker doesn&#8217;t yet know who you are, or your trading shows characteristics they aren&#8217;t comfortable taking entirely onto their own book, they may split the risk. Pass some to a liquidity provider, keep the rest. Which bucket you land in is not random, though. It is the broker&#8217;s running verdict on you &#8212; informed or not. Start winning consistently and things will start to change for you. First unnoticed, then maybe blatantly. There is a reason an alias for this bucket is the Hybrid. A pinch of A with a spoonful of B.</p><h4><strong>The onion problem &#8211; LPs all the way down</strong></h4><p>As we said, all the risk your broker doesn&#8217;t want goes to liquidity providers. And those liquidity providers may have their own liquidity providers. A game of hot potato, all the way upstream. You get the picture. Behind a layer or two of liquidity providers you may find another dealer, a prime-of-prime giving access, or a prime broker providing the credit. Then there are aggregators combining price feeds, exchange-like venues matching orders, bank feeds, non-bank market makers&#8230;<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-4" href="#footnote-4" target="_self">4</a> Some make an impressive list of names in a presentation. But &#8220;we connect to major banks&#8221; tells you remarkably little about how many mouths your trade has to feed on the way. These layers do provide services &#8212; access, credit, technology, liquidity &#8212; and they all expect to be paid. And there may not even be a bank at the center of this onion. It might as well be another market maker, doing precisely what your broker decided not to &#8211; eat your risk for profits.</p><h4><strong>Scam?</strong></h4><p>Does it sound an awful lot like a scam? I hear you, but consider liquidity providers for a second as just <a href="https://www.tradingreality.com/p/the-hand-of-the-maker?r=2un0c3">market makers</a>. They quote both sides, earn the spread, carry inventory, and try to avoid being picked off by traders who know more than they do. Exactly the mechanism I described in <a href="https://www.tradingreality.com/p/the-hand-of-the-maker?r=2un0c3">my earlier piece</a>. And how about Payment for Order Flow (PFOF)? In US equities, some market makers pay brokers for the right to execute retail orders. That flow is worth buying because it is generally less likely to pick them off.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-5" href="#footnote-5" target="_self">5</a> Different machinery from CFD B-booking, but the appetite for uninformed flow is a familiar pattern. I&#8217;ll get into PFOF properly in a future piece.</p><p>Even the term &#8220;toxic flow&#8221; has made it into the academic literature as if taken straight out of the mouth of the liquidity providers.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-6" href="#footnote-6" target="_self">6</a> So similar mechanisms are everywhere. Your broker&#8217;s A-book may simply be somebody else&#8217;s B-book.</p><h4>Unfair?</h4><p>&#8220;Yes, ok, but is it fair?&#8221; you may ask. Well, in FX, every price depends on who is asking. This goes all the way up. Big institutions using the same wholesale platform can have different prices, different available liquidity, and different counterparties willing to trade with them. Your credit, your relationships, and how much the maker likes your flow all matter.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-7" href="#footnote-7" target="_self">7</a> &#8220;Interbank access&#8221; sounds rather more democratic than it actually is.</p><p>Then there is <strong>last look</strong>. The provider shows you a price. You send the order. They get a short window to check it and decide whether to accept or reject. You said yes; they still get to say no.&#8313; And if they do, you are back shopping for a price while the market has been moving without you. The tighter spread looked lovely, though, if only it had been real for you.</p><p>The stated purpose of last look is, of course, to &#8220;check the request&#8217;s validity and whether the price is still valid&#8221;. So says the FX Global Code. The voluntary (!) FX Global Code.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-8" href="#footnote-8" target="_self">8</a> A world of stated principles&#8230; </p><h4><strong>An alternate universe</strong></h4><p>So what world is it then? In my mind it is an alternate universe. In this universe, instead of a fierce competition between trading platforms, you have a quasi-monopoly of a single provider &#8212; MT4/MT5 dominate the landscape.&#185;&#8304; Instead of an arms race between professionals, you have an arms race between brokers, and some well-positioned clients: the ones who learned to read a stale quote faster than the broker&#8217;s bridge can update it.</p><p>Here you have a menu of jurisdictions &#8212; pick the one that suits your business model. Instead of a public order book you can check, the broker marks its own prices for you &#8212; in a process I playfully call <strong>marking to marketing</strong>. Instead of exchange fees, a markup at every layer of the chain, all happening behind a comfortingly familiar screen. And instead of a market maker widening the spread to avoid informed flow, the broker decides something far more fundamental: how much of your risk it wants to keep. That is the alphabet. A, B, C.</p><p>The result: you are trying to find an edge that survives not only the market, but also the opaque terms you have been asked to sign &#8212; and whatever happens upstream. You can spend months studying EURUSD without understanding the particular version of EURUSD you are actually allowed to trade.</p><p>And the scoreboard of this universe is published in the brokers&#8217; own risk warnings: most retail accounts lose money. They are forced to publish this.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-9" href="#footnote-9" target="_self">9</a> I wonder how many people it would stop in Vegas, though, to see the gambling statistics on a big screen. I think we all have an intuition about the answer.</p><p>My take on fairness? Tell traders whether they are in A, B or C-book, and when you switch them. Tell them about their latency and slippage settings, and how those differ across client groups. Inform them about the LPs. Show them how well you executed their orders against meaningful cross-industry benchmarks. Tell them about their real prospects. Explain how this setup differs from exchange-traded markets &#8212; i.e. a regulated broker does not magically turn a bilateral contract into an exchange order.</p><p>&#8220;Most of them don&#8217;t care,&#8221; you say? They do. They are not stupid. Far from it. And they are learning. Give them something more useful than &#8220;we may be on the other side of your trade.&#8221; Just be <em>transparent</em>.</p><p>That was the plan I laid out to my investors. I am holding on to the hope that somebody in the industry takes it up some day.</p><p></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>Here I mean retail OTC currency CFDs and similar non-deliverable rolling FX products. Deliverable currencies and exchange-traded currency futures are different arrangements. In the common principal model, your contract remains with the broker even when they pass the risk to an LP. See ESMA's CFD Q&amp;A, Section 2.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>A/B/C are industry labels, not a standardized regulatory alphabet. Here, A-book means immediate, full pass-through; B-book means internally retained client risk; C-book means a deliberate split. Aggregate risk hedges can still sit over B-book positions. ESMA&#8217;s broader &#8220;hybrid&#8221; category includes threshold-based hedging and hedging selected clients. See <a href="https://www.esma.europa.eu/sites/default/files/library/esma35-36-794_qa_on_cfds_and_other_speculative_products_mifid.pdf#page=20">ESMA&#8217;s CFD Q&amp;A, Section 2</a>.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-3" href="#footnote-anchor-3" class="footnote-number" contenteditable="false" target="_self">3</a><div class="footnote-content"><p>LPs assess flow using <strong>markout</strong>: how the market price moves after a fill, measured against the execution price. Flow that consistently moves against them shortly after execution is costly to service. Your eventual profit and their short-term markout are different measurements.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-4" href="#footnote-anchor-4" class="footnote-number" contenteditable="false" target="_self">4</a><div class="footnote-content"><p>These firms perform different jobs. Prime brokers supply credit and access; aggregators combine quotes; venues match orders; dealers take positions. They aren&#8217;t necessarily successive counterparties to the same trade. The onion includes infrastructure as well as risk-taking. See <a href="https://www.bis.org/publications/qr-201912/fx-trade-execution-complex-and-highly-fragmented">BIS, </a><em><a href="https://www.bis.org/publications/qr-201912/fx-trade-execution-complex-and-highly-fragmented">FX trade execution: complex and highly fragmented</a></em>.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-5" href="#footnote-anchor-5" class="footnote-number" contenteditable="false" target="_self">5</a><div class="footnote-content"><p>The SEC&#8217;s staff describes retail equity flow as attractive because it is generally less informed about short-term price movements. Equity market makers also internalize orders; PFOF is the payment for routing that flow, rather than a CFD book classification. See <a href="https://www.sec.gov/spotlight/equity-market-structure/issues-affecting-customers-emsac-012616.pdf#page=6">SEC staff&#8217;s market-structure memo, Section III</a>.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-6" href="#footnote-anchor-6" class="footnote-number" contenteditable="false" target="_self">6</a><div class="footnote-content"><p>See Easley, L&#243;pez de Prado and O&#8217;Hara&#8217;s <em><a href="https://doi.org/10.1093/rfs/hhs053">Flow Toxicity and Liquidity in a High-frequency World</a></em> (2012). For an FX-specific example, Cartea, Duran-Martin and S&#225;nchez-Betancourt&#8217;s <em><a href="https://arxiv.org/abs/2312.05827">Detecting Toxic Flow</a></em> models a broker&#8217;s decision to internalize or externalize client trades.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-7" href="#footnote-anchor-7" class="footnote-number" contenteditable="false" target="_self">7</a><div class="footnote-content"><p>For wholesale pricing mechanics, see Graham Capital&#8217;s <em><a href="https://www.grahamcapital.com/wp-content/uploads/2023/07/Execution-in-Spot-FX_June-2021.pdf">Execution in Spot FX</a></em>. Retail brokers subject to MiFID face a different standard: ESMA rejects different prices, spreads or unnecessary delays for similar orders based on client profitability or the broker&#8217;s hedging arrangements. See <a href="https://www.esma.europa.eu/sites/default/files/library/esma35-36-794_qa_on_cfds_and_other_speculative_products_mifid.pdf#page=76">Section 9, paragraph 37</a>. Enforcement rests with national authorities. A rule on paper and a trader&#8217;s ability to get it enforced are, of course, two different things.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-8" href="#footnote-anchor-8" class="footnote-number" contenteditable="false" target="_self">8</a><div class="footnote-content"><p><a href="https://www.globalfxc.org/uploads/fx_global.pdf#page=24">Principle 17 of the FX Global Code</a> describes last look as a validity and/or price check, and calls for disclosure of its use. The Code concerns the wholesale FX market and is voluntary: it creates no legal or regulatory obligations itself. Local laws and contractual obligations still apply.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-9" href="#footnote-anchor-9" class="footnote-number" contenteditable="false" target="_self">9</a><div class="footnote-content"><p>For example, <a href="https://handbook.fca.org.uk/handbook/cobs22">UK rules require provider-specific loss percentages</a>. It counts accounts, not individual trades, and may cover several speculative products rather than FX alone.</p></div></div>]]></content:encoded></item><item><title><![CDATA[The unsexy moat]]></title><description><![CDATA[Best vs the rest &#8211; earned and unearned tier-advantages]]></description><link>https://www.tradingreality.com/p/the-unsexy-moat</link><guid isPermaLink="false">https://www.tradingreality.com/p/the-unsexy-moat</guid><dc:creator><![CDATA[Tibor S]]></dc:creator><pubDate>Fri, 11 Sep 2026 15:51:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!xiIf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7632747b-6a57-4c83-960d-9045e16f4737_975x715.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><p>When I utter the words &#8220;trading costs&#8221; some of you will just yawn, some will have already fallen asleep. <em><strong>[alarm clock][or air horns for the back row]</strong></em> &#8211; <em>don&#8217;t</em>, <em>just yet</em>; because it matters for your strategy more than you think. For <em>any strategy</em>, from the ones run by Jane Street PMs to those of G&#252;nter &#8212; my relentless next door neighbor trying to qualify for his 10th prop shop challenge just this year.</p><p>The Jane Streets, Citadels, Millenniums of this world have advantages that most of us are looking at with awe and horror, with their:</p><ul><li><p>thousands of math camp winning quants, </p></li><li><p>nano-second enabled infrastructure, </p></li><li><p>all but unlimited capital, </p></li><li><p>pooled signal and risk layers upon layers, </p></li><li><p>probably flying robots fixing their coffee machine before it&#8217;s even broken... </p></li></ul><p>Little attention is paid to the dull <em>&#8220;top-tier&#8221; trading costs</em> simply because they don&#8217;t evoke any sci-fi movie scene.</p><p>They were able to build this <em>arsenal</em>, however, partly because they were &#8220;born into&#8221; this last tier. Once conferred, these cost levels allowed them to compete mano-a-mano, elite-to-elite. You and I on our own, though, need to start in the decrepit commission-slums of this unbalanced world.</p><p>So I designed &#8211; ok, prompted into existence &#8211; a little toy strategy<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a> to demonstrate this hereditary advantage. The inspiration came from <a href="https://doi.org/10.1093/rfs/hhv063">this paper</a>, but as would be expected with my background, I picked the mean reversion model and shortened the time horizons. How could I not?? A month?! I didn&#8217;t even know that timeframe existed in trading... ha...</p><p>You can download and evaluate it <a href="https://gist.github.com/tradingexpert/73b96bc6827155cf3af9961bb0a667f5">here</a>, and I think it may be useful beyond this exercise. Full method, verified fee schedules, and code are in the <a href="https://gist.github.com/tradingexpert/73b96bc6827155cf3af9961bb0a667f5">gist</a> &#8212; this is a demo on free data with stated assumptions, disclaimers, the lot.</p><p>I will cut to the chase. But just before that, two important points.</p><ul><li><p>The 85% limit-order assumption<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a><a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-3" href="#footnote-3" target="_self">3</a> came from the same <em><a href="https://ssrn.com/abstract=3229719">Frazzini paper</a> </em>that provided the the other half of the inspiration. It&#8217;s the share of orders sent as limits by the institutions in that study, so I used the same. The rest are assumed aggressive.</p></li><li><p>The &#954;=0 assumption means limit orders execute at the mid, market orders at the opposite side. That limit-execution point is more conservative than in the paper; Top-tier institutions, as we all know, have a super-machine that would dodge most of the adverse selection &#8212; but I couldn&#8217;t assume it away entirely either, for reasons I get into in <a href="https://www.tradingreality.com/p/under-the-hood-adverse-selection?r=2un0c3">my earlier article on adverse selection</a>.</p></li></ul><p>The important caveat: I gave your average Trader Joe access to the same execution machine as the institution, unrealistic as that may be (very!). Simple reason &#8212; I didn&#8217;t want to conflate the cost difference that comes from &#8220;position&#8221; with the one that comes from something you had to build. So <strong>the difference</strong> between these strategies <strong>is in the fees only</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xiIf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7632747b-6a57-4c83-960d-9045e16f4737_975x715.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xiIf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7632747b-6a57-4c83-960d-9045e16f4737_975x715.png 424w, https://substackcdn.com/image/fetch/$s_!xiIf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7632747b-6a57-4c83-960d-9045e16f4737_975x715.png 848w, https://substackcdn.com/image/fetch/$s_!xiIf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7632747b-6a57-4c83-960d-9045e16f4737_975x715.png 1272w, https://substackcdn.com/image/fetch/$s_!xiIf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7632747b-6a57-4c83-960d-9045e16f4737_975x715.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xiIf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7632747b-6a57-4c83-960d-9045e16f4737_975x715.png" width="975" height="715" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7632747b-6a57-4c83-960d-9045e16f4737_975x715.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:715,&quot;width&quot;:975,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:109943,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.tradingreality.com/i/215194945?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7632747b-6a57-4c83-960d-9045e16f4737_975x715.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xiIf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7632747b-6a57-4c83-960d-9045e16f4737_975x715.png 424w, https://substackcdn.com/image/fetch/$s_!xiIf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7632747b-6a57-4c83-960d-9045e16f4737_975x715.png 848w, https://substackcdn.com/image/fetch/$s_!xiIf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7632747b-6a57-4c83-960d-9045e16f4737_975x715.png 1272w, https://substackcdn.com/image/fetch/$s_!xiIf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7632747b-6a57-4c83-960d-9045e16f4737_975x715.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><strong>The institution would turn each million into $3.57 million. Joe, running the very same strategy, would be down more than a quarter. And if Joe has any sense &#8212; and doesn&#8217;t fancy telling his dad he lost that slice of the family house &#8212; he chucks this trading idea in the bin right with the hundreds of others.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!b4La!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6362755a-c661-4fa8-9d1d-dd5325923036_1566x230.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!b4La!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6362755a-c661-4fa8-9d1d-dd5325923036_1566x230.jpeg 424w, https://substackcdn.com/image/fetch/$s_!b4La!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6362755a-c661-4fa8-9d1d-dd5325923036_1566x230.jpeg 848w, https://substackcdn.com/image/fetch/$s_!b4La!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6362755a-c661-4fa8-9d1d-dd5325923036_1566x230.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!b4La!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6362755a-c661-4fa8-9d1d-dd5325923036_1566x230.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!b4La!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6362755a-c661-4fa8-9d1d-dd5325923036_1566x230.jpeg" width="1456" height="214" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6362755a-c661-4fa8-9d1d-dd5325923036_1566x230.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:214,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:53961,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.tradingreality.com/i/215194945?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6362755a-c661-4fa8-9d1d-dd5325923036_1566x230.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!b4La!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6362755a-c661-4fa8-9d1d-dd5325923036_1566x230.jpeg 424w, https://substackcdn.com/image/fetch/$s_!b4La!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6362755a-c661-4fa8-9d1d-dd5325923036_1566x230.jpeg 848w, https://substackcdn.com/image/fetch/$s_!b4La!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6362755a-c661-4fa8-9d1d-dd5325923036_1566x230.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!b4La!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6362755a-c661-4fa8-9d1d-dd5325923036_1566x230.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>I reiterate, the difference was only in <em>commissions</em> and <em>rebate tiers</em>. Not the sexiest words in the English dictionary, I know, but ones that ought to make it into your vocabulary fast.</p><p>Before I claim the laurels here, of course I&#8217;m aware I&#8217;m not the first to point out that trading costs matter, nor the first person to measure them. You could say in all fairness that others have done it more thoroughly, even. Both <a href="https://doi.org/10.1093/rfs/hhv063">Novy-Marx &amp; Velikov </a>and <a href="https://ssrn.com/abstract=3229719">Frazzini and co.</a> have, using deep, extensive data and a whole basket of strategies.</p><p>In my defense, this is a Substack article &#8212; believe me, I&#8217;d have done more for arXiv, too... Plus I&#8217;d have added at least two more contributors! Yes, the reference tables just ring better that way. &#8220;ER = EPR&#8221; on wormholes sounds catchier than ER alone, wouldn&#8217;t you agree? Poor Podolsky, doing all that work for a middle initial. (If you don&#8217;t actually know what I&#8217;m rambling on about, believe me, that is normal, and a great relief for me. It means at least one <em>normal</em> <em>person</em> is reading my articles)</p><p>But let&#8217;s look at what those two papers measured, and why they reached such different conclusions; and arrived at extremely different numbers, too!</p><p>Novy-Marx &amp; Velikov measured the cost faced by a retail-scale trader. Frazzini-Israel-Moskowitz &#8212; <em>now you get my three-name envy??</em> &#8212; measured what a top-tier institution realistically pays. No need to cagefight this out, because they actually agree on why the numbers differ so much: NMV&#8217;s are the costs of the small liquidity demander , Frazzini&#8217;s the costs of the wise trading giant<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-4" href="#footnote-4" target="_self">4</a>. An order of magnitude apart &#8212; and yet both authors shook on it before any foul was called.</p><p>So, did I just replicate that study slum-style? Not really. What&#8217;s different in the <a href="https://www.tradingreality.com/publish/post/215194945#footnote-anchor-1">Frazzini paper</a> is that the whole cost stack is collapsed into <em>one number</em> &#8212; commission, spread, market impact, adverse selection, financing, opportunity cost, all of it. It bakes in the institution&#8217;s ability to rest limit orders 85% of the time, mostly sidestepping adverse selection. And adverse selection is not a penny: in modern markets it between 50% and 80% of the spread. A capitalized execution advantage &#8212; which, to Joe, reads as hieroglyphics.</p><p>So of course the real top tier pulls <em>even further ahead</em> than my two equity lines suggest. But the part I wanted to point to (even without the comfort of the three initials) is that the extra distance I don&#8217;t include is intrinsically different: it is <em><strong>earned</strong></em>. It is the <em>moat</em> these institutions built out for themselves, stone by stone, brick by brick. The distance in my demo, however, is different. It is <em><strong>conferred</strong></em> &#8212; it&#8217;s the fee schedule, nothing else. The giants are born into that world, and the extra rebates and reduced costs are served to them on a silver platter. And I think it is a failure of the industry to so rarely discuss this side of the advantage.</p><p>One more point: the gap I did measure holds whatever the spread turns out to be. </p><p>For those about to call out &#8220;but on Robinhood I don&#8217;t pay any commission!&#8221; &#8212; yes, and you also can&#8217;t run this strategy. I&#8217;d love to get into the minutia of the payment-for-order-flow business, with all its mechanics and effects, I really would. But I don&#8217;t want to muddle things up, and will leave that conversation for another day. Enough said that once you consider all the other costs you would end up way below even the yellow line above if you tried.</p><p>Instead of a witty close or a call-back, I will leave you in parting with the fee summary &amp; comparison of a few popular symbols across some markets, broken down into top-tier player costs vs &#8220;the rest&#8221;<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-5" href="#footnote-5" target="_self">5</a><a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-6" href="#footnote-6" target="_self">6</a>:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!h7x6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff68dee3e-e0b2-41a6-ad4e-c929f958b3b5_5250x3000.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!h7x6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff68dee3e-e0b2-41a6-ad4e-c929f958b3b5_5250x3000.png 424w, https://substackcdn.com/image/fetch/$s_!h7x6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff68dee3e-e0b2-41a6-ad4e-c929f958b3b5_5250x3000.png 848w, https://substackcdn.com/image/fetch/$s_!h7x6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff68dee3e-e0b2-41a6-ad4e-c929f958b3b5_5250x3000.png 1272w, https://substackcdn.com/image/fetch/$s_!h7x6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff68dee3e-e0b2-41a6-ad4e-c929f958b3b5_5250x3000.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!h7x6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff68dee3e-e0b2-41a6-ad4e-c929f958b3b5_5250x3000.png" width="1456" height="832" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f68dee3e-e0b2-41a6-ad4e-c929f958b3b5_5250x3000.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:832,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:965489,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.tradingreality.com/i/215194945?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff68dee3e-e0b2-41a6-ad4e-c929f958b3b5_5250x3000.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!h7x6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff68dee3e-e0b2-41a6-ad4e-c929f958b3b5_5250x3000.png 424w, https://substackcdn.com/image/fetch/$s_!h7x6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff68dee3e-e0b2-41a6-ad4e-c929f958b3b5_5250x3000.png 848w, https://substackcdn.com/image/fetch/$s_!h7x6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff68dee3e-e0b2-41a6-ad4e-c929f958b3b5_5250x3000.png 1272w, https://substackcdn.com/image/fetch/$s_!h7x6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff68dee3e-e0b2-41a6-ad4e-c929f958b3b5_5250x3000.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>The strategy is a one-day cross-sectional reversal on the S&amp;P 500: each day, long the prior day's decile of biggest losers, short the decile of biggest winners, equal-weighted, one dollar long against one dollar short per dollar of capital, signal at the close and execution at the next open. Construction follows the short-term reversal specification in <a href="https://doi.org/10.1093/rfs/hhv063">Novy-Marx &amp; Velikov (2016)</a>. Full method, code and data notes are in the <a href="https://gist.github.com/tradingexpert/73b96bc6827155cf3af9961bb0a667f5">gist</a>.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>The 85% passive fill rate is based on the institutional execution described in <a href="https://doi.org/10.2139/ssrn.3229719">Frazzini, Israel &amp; Moskowitz (2018)</a>. &#954; = 0 means a resting limit order keeps none of the half-spread after adverse selection (it fills, effectively, at the mid), and a marketable order pays half the spread; this is the conservative end for the passive trader. Market impact is not modelled, for either tier.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-3" href="#footnote-anchor-3" class="footnote-number" contenteditable="false" target="_self">3</a><div class="footnote-content"><p>Spreads are estimated from daily high/low prices using the <a href="https://doi.org/10.1111/j.1540-6261.2012.01729.x">Corwin &amp; Schultz (2012)</a> estimator, floored at a one-tick and smoothed on a 20-day median. On the names actually traded (the day's biggest movers) this produces ~28 bps; the piece also reports a constant 5 bps case standing in for tick-data quoted spreads.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-4" href="#footnote-anchor-4" class="footnote-number" contenteditable="false" target="_self">4</a><div class="footnote-content"><p>The 20&#8211;57 bps figure is Novy-Marx &amp; Velikov's estimate of trade-execution costs for mid-turnover anomalies. Frazzini, Israel &amp; Moskowitz put a large institution's realised costs an order of magnitude lower &#8212; a median of roughly 6 bps per rebalance, and an effective spread of ~1.5 bps against ~21 bps quoted &#8212; validated out-of-sample against the realised costs of live index funds (Vanguard, iShares).</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-5" href="#footnote-anchor-5" class="footnote-number" contenteditable="false" target="_self">5</a><div class="footnote-content"><p>Fee figures read September 2026. Equities: IBKR Pro/Lite retail rates versus a direct exchange member paying the schedule directly; the maker rebate reaches $0.0037 combined at MEMX, $0.00325 at Nasdaq. Futures: exchange fee only (member vs non-member), excluding the broker's own commission, NFA and give-up. Options: Cboe fee by capacity (Customer vs Market-Maker sliding scale), excluding broker commission and SPX surcharges; the top market-maker tiers require a $2.4 million annual prepayment. Crypto: Binance is the venue and the counterparty, so the fee is the all-in cost. Full schedules and sources in the [gist]</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-6" href="#footnote-anchor-6" class="footnote-number" contenteditable="false" target="_self">6</a><div class="footnote-content"><p>In IBKR's own words: it "may receive enhanced rebate payments as a result of exceeding volume thresholds on particular markets, but typically will not directly pass these enhancements to customers," and separately, on futures, "may receive aggregate volume discounts that are not passed on to clients." The volume-tier advantage is captured by the aggregator; the individual gets the base rate.<br></p><div><hr></div><h3>Bibliography</h3><p><strong>Corwin, S. A., &amp; Schultz, P. (2012).</strong> &#8220;A Simple Way to Estimate Bid-Ask Spreads from Daily High and Low Prices.&#8221; <em>The Journal of Finance</em>, 67(2), 719&#8211;760. <a href="https://doi.org/10.1111/j.1540-6261.2012.01729.x">https://doi.org/10.1111/j.1540-6261.2012.01729.x</a></p><p><strong>Chen, A. Y., &amp; Velikov, M. (2023).</strong> &#8220;Zeroing In on the Expected Returns of Anomalies.&#8221; <em>Journal of Financial and Quantitative Analysis</em>, 58(3), 968&#8211;1004. <a href="https://doi.org/10.1017/S0022109022000874">https://doi.org/10.1017/S0022109022000874</a></p><p><strong>Frazzini, A., Israel, R., &amp; Moskowitz, T. J. (2018).</strong> &#8220;Trading Costs.&#8221; Working paper. SSRN: <a href="https://ssrn.com/abstract=3229719">https://ssrn.com/abstract=3229719</a> &#183; <a href="https://doi.org/10.2139/ssrn.3229719">https://doi.org/10.2139/ssrn.3229719</a></p><p><strong>Frazzini, A., Israel, R., &amp; Moskowitz, T. J. (2012).</strong> &#8220;Trading Costs of Asset Pricing Anomalies.&#8221; Fama-Miller Working Paper. SSRN: <a href="https://ssrn.com/abstract=2294498">https://ssrn.com/abstract=2294498</a> &#183; <a href="https://doi.org/10.2139/ssrn.2294498">https://doi.org/10.2139/ssrn.2294498</a></p><p><strong>Kyle, A. S. (1985).</strong> &#8220;Continuous Auctions and Insider Trading.&#8221; <em>Econometrica</em>, 53(6), 1315&#8211;1335. <a href="https://doi.org/10.2307/1913210">https://doi.org/10.2307/1913210</a></p><p><strong>Novy-Marx, R., &amp; Velikov, M. (2016).</strong> &#8220;A Taxonomy of Anomalies and Their Trading Costs.&#8221; <em>The Review of Financial Studies</em>, 29(1), 104&#8211;147. <a href="https://doi.org/10.1093/rfs/hhv063">https://doi.org/10.1093/rfs/hhv063</a> &#183; NBER working paper: <a href="https://www.nber.org/papers/w20721">https://www.nber.org/papers/w20721</a></p><p><strong>Perold, A. F. (1988).</strong> &#8220;The Implementation Shortfall: Paper versus Reality.&#8221; <em>The Journal of Portfolio Management</em>, 14(3), 4&#8211;9. <a href="https://doi.org/10.3905/jpm.1988.409150">https://doi.org/10.3905/jpm.1988.409150</a></p></div></div>]]></content:encoded></item><item><title><![CDATA[Do Batch Auctions guard against HFT, or just pocket the bounty?]]></title><description><![CDATA[Of hens, wolves, and foxes]]></description><link>https://www.tradingreality.com/p/do-batch-auctions-guard-against-hft</link><guid isPermaLink="false">https://www.tradingreality.com/p/do-batch-auctions-guard-against-hft</guid><dc:creator><![CDATA[Tibor S]]></dc:creator><pubDate>Thu, 27 Aug 2026 13:35:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!B880!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f58e2ba-2580-48fa-8fec-9dbbc9b751e6_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!B880!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f58e2ba-2580-48fa-8fec-9dbbc9b751e6_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!B880!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f58e2ba-2580-48fa-8fec-9dbbc9b751e6_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!B880!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f58e2ba-2580-48fa-8fec-9dbbc9b751e6_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!B880!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f58e2ba-2580-48fa-8fec-9dbbc9b751e6_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!B880!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f58e2ba-2580-48fa-8fec-9dbbc9b751e6_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!B880!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f58e2ba-2580-48fa-8fec-9dbbc9b751e6_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1f58e2ba-2580-48fa-8fec-9dbbc9b751e6_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3629828,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.tradingreality.com/i/212990297?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f58e2ba-2580-48fa-8fec-9dbbc9b751e6_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!B880!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f58e2ba-2580-48fa-8fec-9dbbc9b751e6_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!B880!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f58e2ba-2580-48fa-8fec-9dbbc9b751e6_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!B880!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f58e2ba-2580-48fa-8fec-9dbbc9b751e6_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!B880!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f58e2ba-2580-48fa-8fec-9dbbc9b751e6_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Batch auctions</em> were introduced so that the poor, forlorn, unguarded trader &#8211; connected via patchy internet connection on his laptop, sitting at the beach across the globe from the trade server &#8211; be protected from the caprice of the cruel low-latency arms race by the HFT-enabled giants.</p><p>A noble goal. But does the beach trader actually come out ahead &#8212; or does someone else?</p><p>Where do we start&#8230; So what <em>are</em> these batch auctions, anyway? </p><p>Very simple, just imagine an auction that:</p><ul><li><p>happens <strong>at regular intervals</strong>, </p></li><li><p><strong>accumulates all order</strong> <strong>intent </strong>since the last interval, and </p></li><li><p>uses <strong>a mechanism to</strong> <strong>match them</strong> in this combined order book. </p></li></ul><p>The idea is that everyone in the batch gets the same clearing price, and <em>when</em> your order arrived within the window doesn&#8217;t matter &#8212; so being faster buys you nothing. </p><p>And the talk of the town is that this is much more &#8220;fair&#8221; than continuous trading.</p><p>In fairness &#8211; pun intended &#8211; before I take this apart: sniping stale orders by faster players, and certain crypto-adjacent order reordering machinations, are real, and do indeed need a resolution. These make the markets less efficient, and admittedly less fair. There is respectable literature that describes this effect<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>, so it is far from being a crank idea. Attempts to make this a reality are ongoing, both in the DeFi (decentralized finance) and TradFi (traditional finance) space, with various degrees of success. More on those later.</p><h2>Cost #1</h2><p>The more astute of you would have already wondered: &#8220;What happens between these auction intervals?&#8221; That is the point. Between the auctions these markets simply don&#8217;t provide any trading price. On closer scrutiny this is NOT such A SMALL DEAL. One of the key services that an exchange provides is <strong>immediacy</strong>. And that immediacy <strong>is liquidity</strong>. Not being able to trade for 1 second, or even 100 milliseconds means that there is effectively no liquidity for that period. Even if there is ample depth available in reality. Everybody waiting for a price, instead of already pricing their model to value risk, or prepare the exit.</p><h2>Cost #2</h2><p>Worse yet, this means that in this no-man&#8217;s-land, no-man&#8217;s-time, and no-man&#8217;s-price the venue needs to import a price from continuous trading. </p><p>Do we really think a venue running a batch auction for Bitcoin can make do without a super-connection to Binance in the 100millis? So it is but a quasi continuous-exchange wearing a closing-cross costume (another auction-based mechanism).</p><p>So these types of batch auction venues structurally depend on the thing they claim to replace &#8212; prices from continuous trading.</p><h2>Ultimate Cost: the arbitrage comes home to roost</h2><p>Let&#8217;s assume the batch auction was done and the price cleared fairly. The arbitrage we are so worried about &#8212; gained in fistfights for nanoseconds in datacenters and microwave towers, for an opportunity no mortal could ever capitalize on &#8212; is gone. Yes; inside the window.</p><p>But the asset never stopped trading everywhere else. The moment your batch clears, there are <em>two prices</em>: the one you just printed, frozen a beat ago, and the live one out there, already moved. The gap between them is an arbitrage &#8212; the exact creature you built the auction to kill.</p><p>You didn&#8217;t RE-move it. You MOVED it &#8212; from inside the book to the venue boundary. Where what matters is knowing the batch price a fraction before anyone else.</p><p>And who knows it first? Who watches the book fill? knows the instant it clears? sits at zero distance from the engine? </p><p>The venue itself. </p><p>It is like bringing a wolf to guard the hens from the foxes.</p><h2>Real-life examples</h2><p>Enough theory. There are real markets that have run this experiment, and there is one that runs it every single day without anyone objecting. Both are worth looking at, because they tell you exactly where a batch auction belongs &#8212; and where it doesn&#8217;t.</p><h3>Taiwan</h3><p>The Taiwan Stock Exchange ran periodic call auctions as its main mechanism for years<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a>. Between 2010 and 2014 it cut the auction interval four times, from 25 seconds down to 5. An actual natural experiment. Almost no modern market ever ran frequent batching in the HFT era, so there is very little real evidence to argue over &#8212; most exchanges went continuous back in the nineties, before any of this was a question.</p><p>What did they find? As the interval shrank, market quality improved &#8212; liquidity, efficiency, the lot. Each step toward continuous made things better.</p><p>There is one finding cutting the other way: in thin, illiquid instruments, batching helped.</p><p>But look closely at what that actually says. First, the direction. Every step in the Taiwan experiment was <em>toward</em> continuous &#8212; 25 seconds, then 5, then the suggestion of 2 &#8212; and quality improved at every step. The limit of that sequence is continuous trading. So &#8220;more frequent batching is better&#8221; is just a quiet way of saying &#8220;the closer you get to continuous, the better it gets.&#8221; That is not evidence for the batch.</p><p>Second, the illiquid case. The benefit there is a coordination benefit &#8212; you are helping buyers and sellers who would never otherwise be present at the same instant to find each other. A very slight effect. But still.</p><p>So why this doesn&#8217;t score points for the batch auction case? HFTs are not in those thin names in the first place. There is no flow to snipe, no volume to justify the microwave towers.</p><h3>Opening and closing auctions</h3><p>On paper there is a fact that cuts against my argument: every major exchange already uses a batch auction. Twice a day &#8211; at the open and at the close.</p><p>So why does this happen? Because those are the two moments when immediacy is not what anyone wants. They want <strong>a coordinated price</strong>.</p><p>At the open, there has been no trading for hours; there is no price; a mass of overnight orders arrives at once and needs to be aggregated into one fair number.</p><p>At the close, thousands of participants &#8212; index funds, ETFs, market makers &#8212; all want the <em>same</em> price, in size, at one instant. Neither of those is a moment for trading <em>now</em>. They are moments for coordination, and a batch auction is the right tool for <em>that</em>.</p><p>So the market already ran the experiment and drew the boundary: a batch auction at the two moments immediacy doesn&#8217;t matter, and continuous trading for the entire session in between, when it does. Notice too that the closing cross works precisely <em>because</em> a full day of continuous trading happened behind it to discover the price. A market that is nothing but crosses has nothing to anchor to.</p><p>The opens and closes are not proof that batch auctions work as a market. They are proof that batch auctions work in their niche &#8212; and the frequent-batch proposal is just dragging them out of it.</p><h3>The crypto ones</h3><p>The one place batch auctions have actually been built out at scale, in anger, is crypto &#8212; and it is worth a look, because this is going on out there now &#8220;in the wild&#8221;.</p><p>On a public blockchain your trade sits in a visible waiting room before it settles, and whoever assembles the block decides the order it will execute in. The classic exploit is the <em>sandwich</em>: a bot sees your buy sitting there, buys just ahead of you, lets your order push the price up, and sells just behind you. You get the worse price; the bot keeps the difference. This is the sniping problem, and it is worse than in traditional markets, because the party ordering the trades can be the one exploiting them<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-3" href="#footnote-3" target="_self">3</a>.</p><p>So crypto did the obvious thing and built batch auctions to stop it &#8212; collect orders, clear at one price, kill the ordering game. And in doing so it walked straight into the operator problem I&#8217;ve been describing. On-chain, whoever sequences the batch is the natural extractor. The wolf, guarding the hens. There is even an extra layer: the operator can sell the ordering advantage rather than use it, which changes <em>who</em> extracts but not <em>whether</em> it gets extracted.</p><p>Still I withhold any judgement for now: whether these mechanisms net-improve things is not cleanly measured yet. The crypto world is mid-experiment, the results are not in, and there are genuine attempts to claw the value back and hand it to the trader &#8212; a story for another day<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-4" href="#footnote-4" target="_self">4</a>. But the direction is already visible, and it is the same direction: the edge does not disappear. It moves to whoever runs the venue.</p><h2>So, does it guard, or does it pocket?</h2><p>The speed race was never a bug you could design out. It was the market pricing a scarce thing &#8212; immediacy, and the right to be first to new information. You can freeze time into windows and abolish the race inside them. You can&#8217;t kill the advantage, though, just transfer &#8212; somewhere you can see it less, and trust it less.</p><p><span>So the trader on the beach is still on the beach. We moved the giants from the datacenter next door to the front desk. </span></p><p><span>The wolf now has the keys to the henhouse. </span>We&#8217;ll count the hens later. </p><p>So far the tally looks daunting.</p><p></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>Eric Budish, Peter Cramton &amp; John Shim, "The High-Frequency Trading Arms Race: Frequent Batch Auctions as a Market Design Response," <em>Quarterly Journal of Economics</em> 130(4), 2015, pp. 1547&#8211;1621. The paper this piece argues with &#8212; it makes the case that continuous limit-order-book trading is a flawed design and proposes batch auctions as the fix.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>On the call-auction-versus-continuous evidence, see the work on the Taiwan Stock Exchange's staged reduction of its auction interval and subsequent move toward continuous trading. (e.g. <strong>Chung, Lee &amp; [Twu/Wang], "Call auction frequency and market quality: Evidence from the Taiwan Stock Exchange,"</strong> <em>Journal of Financial Markets</em> / ScienceDirect (S1049007818300319); <strong>Yi-Tsung Lee, Roberto Ricc&#242; &amp; Kai Wang, "Frequent Batch Auctions vs. Continuous Trading: Evidence from Taiwan"</strong> (SSRN 3733682; published version ScienceDirect S1386418126000376))</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-3" href="#footnote-anchor-3" class="footnote-number" contenteditable="false" target="_self">3</a><div class="footnote-content"><p>Philip Daian et al., "Flash Boys 2.0: Frontrunning, Transaction Reordering, and Consensus Instability in Decentralized Exchanges," <em>2020 IEEE Symposium on Security and Privacy</em>, pp. 910&#8211;927 (arXiv:1904.05234). The canonical academic treatment of MEV / on-chain front-running.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-4" href="#footnote-anchor-4" class="footnote-number" contenteditable="false" target="_self">4</a><div class="footnote-content"><p>On the attempt to return extracted value to traders, see the order-flow-auction / backrun-rebate literature &#8212; e.g. MEV Blocker and CoW Protocol in practice, and Andrea Canidio &amp; Robin Fritsch, "Arbitrageurs' profits, LVR, and sandwich attacks: batch trading as an AMM design response" (arXiv:2307.02074).</p></div></div>]]></content:encoded></item><item><title><![CDATA[Mid-prices never cut it]]></title><description><![CDATA[The assumption your AI will happily optimize straight into a wall]]></description><link>https://www.tradingreality.com/p/mid-prices-never-cut-it</link><guid isPermaLink="false">https://www.tradingreality.com/p/mid-prices-never-cut-it</guid><dc:creator><![CDATA[Tibor S]]></dc:creator><pubDate>Tue, 11 Aug 2026 12:05:24 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qWPt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F477bfde2-8014-4399-9d8d-8941e51a40c6_1774x887.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qWPt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F477bfde2-8014-4399-9d8d-8941e51a40c6_1774x887.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qWPt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F477bfde2-8014-4399-9d8d-8941e51a40c6_1774x887.png 424w, https://substackcdn.com/image/fetch/$s_!qWPt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F477bfde2-8014-4399-9d8d-8941e51a40c6_1774x887.png 848w, https://substackcdn.com/image/fetch/$s_!qWPt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F477bfde2-8014-4399-9d8d-8941e51a40c6_1774x887.png 1272w, https://substackcdn.com/image/fetch/$s_!qWPt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F477bfde2-8014-4399-9d8d-8941e51a40c6_1774x887.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qWPt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F477bfde2-8014-4399-9d8d-8941e51a40c6_1774x887.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/477bfde2-8014-4399-9d8d-8941e51a40c6_1774x887.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2533769,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.tradingreality.com/i/210733429?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F477bfde2-8014-4399-9d8d-8941e51a40c6_1774x887.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qWPt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F477bfde2-8014-4399-9d8d-8941e51a40c6_1774x887.png 424w, https://substackcdn.com/image/fetch/$s_!qWPt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F477bfde2-8014-4399-9d8d-8941e51a40c6_1774x887.png 848w, https://substackcdn.com/image/fetch/$s_!qWPt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F477bfde2-8014-4399-9d8d-8941e51a40c6_1774x887.png 1272w, https://substackcdn.com/image/fetch/$s_!qWPt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F477bfde2-8014-4399-9d8d-8941e51a40c6_1774x887.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I have quite often read something akin to &#8220;when you simulate trading for a sub-hour timeframe you should try to use more precision, but above that the mid-price entry assumption is sufficient for model development&#8221;.</p><p>Let me offer a heart-felt warning that I am sure will not surprise anyone who has followed this publication.</p><p>For strategies operating in the High Frequency to Medium Frequency space, real spread simulation with latency is treated, rightly, as the absolute minimum. The claim I want to puncture is: that above that timeframe, for longer hold times &#8212; hours, days, weeks &#8212; the mid-price assumption becomes sufficient.</p><p>No doubt at that timeframe slippage precision accounts for less. But is it immaterial? I could argue here invoking my own writing as to how <a href="https://www.tradingreality.com/p/front-loaded-value-in-trading?r=2un0c3">the shape of a good trade and a bad trade differ</a>, or that <a href="https://www.tradingreality.com/p/shorts-good-trade-bad-trade?r=2un0c3">the price itself we get on entry is paramount</a>. But the strongest counter-arguments are more mechanical, and much simpler.</p><h2>Spreads are non-uniform</h2><p>Say you have thousands of mid prices in your feed, and the model assumes entry on 20 of them<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>. Even if the average spread for the instrument is just above a tick, what gives you any confidence that you are not entering or exiting exactly on the odd mega-wide spread?</p><p>And your slippage numbers from other models don&#8217;t come to the rescue &#8212; they just muddy the water further. You would need a slippage distribution for exactly this model constellation. And even if you had it, you adjust one parameter in your model and you need a completely fresh one. No bueno.</p><p>There is no static cost you can measure once and bolt on afterwards, because the slippage is a property of the specific strategy.</p><h2>And then the model finds the edge...</h2><p>Now imagine you are talking to an AI/agent to do most of the modeling and data fetching for you. You are extremely pragmatic, and know the drill &#8212; variety of models working together, in-sample out of sample, stochastic seeds and the lot &#8212; you trust nothing but confirmed real numbers. The broad arch of the request is: find me alpha that is the most consistently profitable across the periods. Bit by bit, byte by byte your model homes in on a strategy you know is &#8212; just too good to be true. Days and weeks pass staring at the impressive results &#8212; again and again it is confirmed. But you are a seasoned professional, and on this timescale &#8212; holding periods of a few hours to a few days &#8212; that seems very unlikely.</p><p>The model learned, through a variety of features, how to find the widest-spread entries and exits.</p><p>No amount of post-fact slippage or spread modeling will offset it, because the strategy was selected <em>for</em> the very moments where the mid lies most. Another rabbit hole. For the less doubtful, it could have resulted in real money lost, of course.</p><p>None of this scenario needs AI. It is just a simple modeling fallacy &#8212; the mid-price assumption.</p><h2>A big dent in limit executions</h2><p>I already mentioned execution slippage &#8212; but if you intend to use limit orders at any point, or if you (like many others in the space) separate model development from execution, the news is worse still.</p><p>With a market order the execution is all but guaranteed; the actual cost becomes the big question mark. A limit order, on the other hand, can save you from this unruly slippage; but you may simply miss the fill. The mid-price assumption quietly grants you both &#8212; you fill, and you pay nothing &#8212; not something that real execution will ever allow. And on the limit side the failure isn&#8217;t a worse price, it&#8217;s a missing fill. Whether it happens on entry or exit, the strategy is now on a new path, and the outcomes have been irrecoverably altered.</p><h2>Easy fix: just tell the AI to calculate the spread</h2><p>In the proverbial AI model-development scenario, the immediate fix is quite easy: just ask your AI companion politely to use the opposite side &#8212; Bid/Ask &#8212; for the execution price. Please. And always. It is an order! (Stop being so damn polite with your AI tool. Really!)</p><p>Does it solve the limit order problem? Not fully. And is that as good as having latency simulation also? No, of course not. But it is still much, much better than a pure mid-price assumption.</p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p><em>I am not a &#8220;decimalist&#8221;. It is more a tribute to my 4-year-old who is excited now to count up to 20.</em></p></div></div>]]></content:encoded></item><item><title><![CDATA[Not All Informed Trading Is Research]]></title><description><![CDATA[The HFT moralizing bias that ignores the reality of Insider Trading]]></description><link>https://www.tradingreality.com/p/not-all-informed-trading-is-research</link><guid isPermaLink="false">https://www.tradingreality.com/p/not-all-informed-trading-is-research</guid><dc:creator><![CDATA[Tibor S]]></dc:creator><pubDate>Thu, 23 Jul 2026 12:02:03 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!h4cP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63d8d813-b88b-4d7b-b423-b3f2430ae3f7_1200x630.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Enter the high-profile politician and his entourage. The chipmakers, the hyperscalers, the tech moguls &#8212; all in the room. On the table: should the new chip design go automatically onto the restricted-export list for China, and even for US allies? How much does this chip change the AI race? Someone glances toward the security detail at the door. &#8220;All sealed? No one listening?&#8221; Not a blink. The public announcement is still weeks off.</p><p>Over the next week, NVIDIA price drifts up. Nothing dramatic &#8212; no single trade you could point to, no name attached. A few accounts add on quiet days. By the time the ruling is public, the stock has already travelled most of the distance, and the announcement barely moves it.</p><p>Is that market efficiency?</p><h2>The consensus view</h2><p>The traditional story calls any price move that happens before public absorption &#8220;information acquisition,&#8221; and treats it as a sign of markets functioning correctly. The less the market jumps on such announcements, the healthier and smarter the market was to begin with.</p><p>This assumption is the basis of a subsequent discrimination. The process that helps this early absorption &#8212; the research that goes into predicting such information &#8212; is considered a force for good. The predatory HFT snipers that detect these footprints and erode such profits are cast as the malevolent actors: they rob the researcher of profits that would have gone into further honest research. So goes the story according to Weller, and many after him. He, in fact, plainly concludes that algorithmic trading reduces information acquisition &#8212; that <em>HFTs harm price discovery</em><a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>. A recent paper refines the story, arguing that it is the sniper HFT who is the malevolent actor, while the liquidity-providing kind is still a force for good<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a>.</p><p>The problem with all of the above is that it assumes the early knowledge of future information was acquired completely honestly. Neither Weller nor those refining him mention insider trading &#8212; the politician, the entourage, the industry insiders, those who have been tipped off, those who have traded insider knowledge between them so that no single trade is traceable. Their arguments only work if the &#8220;illegitimate&#8221; share of knowledge acquisition is effectively zero. But is this really the case?</p><h2>The ugly reality</h2><p>It is not, and the evidence is not hard to find.</p><p>In the options market, informed trading ahead of public announcements is a measured fact. In a study of 1,859 US takeovers, roughly a quarter showed abnormal options activity before the deal became public &#8212; concentrated in short-dated, out-of-the-money calls, the cheapest way to bet on a jump you already know is coming<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-3" href="#footnote-3" target="_self">3</a>. Over half of that activity could not be explained by speculation, rumor, corporate-insider filings, or any other legitimate source. So: suspicious informed trading in a quarter of deals, roughly half of it unexplainable &#8212; and the SEC litigated about 8% of the deals in the sample. The overwhelming majority is never touched. And that is likely only scratching the surface.</p><p>The same pattern is visible in plain sight in Congress. In 2024, dozens of members &#8212; from both parties &#8212; outperformed the S&amp;P 500, which returned about 25%. Nancy Pelosi&#8217;s disclosed portfolio was up roughly 71%; she has defended the practice as participation in a &#8220;free-market economy.&#8221; Tommy Tuberville and Marjorie Taylor Greene have been among the most actively tracked traders on the Hill, their timing repeatedly flagged against the committees they sit on. Ro Khanna, who leads the push to ban congressional trading, doesn't trade himself &#8212; his wife's trust is among the most active in Congress, and the bills he has championed stop at the member. The bill that passed the House yesterday does finally cover spouses<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-4" href="#footnote-4" target="_self">4</a>; it also lets everyone keep what they already hold. Around a hundred members trade actively, and year after year a substantial share beat the market they help write the rules for. The names span both parties, both chambers, and most committees. This is not name slinging, or if so, it is slinging both ways.</p><p>Now hold that number against everyone else. When honest retail traders do the research themselves, the results are brutal: across the largest studies &#8212; the entire Taiwan Stock Exchange over fourteen years, every new day trader in Brazil over several years &#8212; around 80% lose money, and fewer than one in a hundred is consistently profitable<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-5" href="#footnote-5" target="_self">5</a>. Research, it turns out, is hard; that is what the data says about people actually doing it. Yet a body of roughly a hundred people who happen to write the policy hits about 50% success rate. The parsimonious explanation for that gap is not that legislators are eighty times better analysts than everyone else. It is that they are doing something else.</p><h2>The failed assumption</h2><p>Since the dishonest share of information acquisition is not zero, the labelling and the moralizing should also not be absolute. Whether the early move comes from a genuine research finding inside Fidelity or from the nephew of a Congressman&#8217;s driver, the price absorption is indistinguishable. It turns out that when the sniper HFT erodes this illegally obtained advantage, he may actually be doing the market a favour. In this case it is a tax on the insider.</p><p>And it is not only the sniper the metric mislabels. <em><strong>For insider trades</strong></em>, the price is not supposed to move until the announcement. So the unmoved price the papers call a failure is exactly what should happen. <em><strong>The jump</strong></em>, when it comes, <em><strong>is the correct outcome</strong></em> &#8212; not a sign the market was slow, but the opposite.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!h4cP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63d8d813-b88b-4d7b-b423-b3f2430ae3f7_1200x630.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!h4cP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63d8d813-b88b-4d7b-b423-b3f2430ae3f7_1200x630.png 424w, https://substackcdn.com/image/fetch/$s_!h4cP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63d8d813-b88b-4d7b-b423-b3f2430ae3f7_1200x630.png 848w, https://substackcdn.com/image/fetch/$s_!h4cP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63d8d813-b88b-4d7b-b423-b3f2430ae3f7_1200x630.png 1272w, https://substackcdn.com/image/fetch/$s_!h4cP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63d8d813-b88b-4d7b-b423-b3f2430ae3f7_1200x630.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!h4cP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63d8d813-b88b-4d7b-b423-b3f2430ae3f7_1200x630.png" width="1200" height="630" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/63d8d813-b88b-4d7b-b423-b3f2430ae3f7_1200x630.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:54669,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.tradingreality.com/i/208173916?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63d8d813-b88b-4d7b-b423-b3f2430ae3f7_1200x630.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!h4cP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63d8d813-b88b-4d7b-b423-b3f2430ae3f7_1200x630.png 424w, https://substackcdn.com/image/fetch/$s_!h4cP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63d8d813-b88b-4d7b-b423-b3f2430ae3f7_1200x630.png 848w, https://substackcdn.com/image/fetch/$s_!h4cP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63d8d813-b88b-4d7b-b423-b3f2430ae3f7_1200x630.png 1272w, https://substackcdn.com/image/fetch/$s_!h4cP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63d8d813-b88b-4d7b-b423-b3f2430ae3f7_1200x630.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>The failure of the moral lens</h2><p>Don&#8217;t mistake me &#8212; I am not saying that insider trading is fine; it should just be absorbed differently. Nor am I saying that HFTs are somehow redeemed from any wrongdoing.</p><p>My issue is that the literature has completely disregarded an inefficiency in the &#8220;real world&#8221; that redefines the problem right from the get-go: the reality of insider-like trading. On the HFT question I do believe researchers have set out to decide, empirically, whether HFT is good or bad. And in that quest they have forgotten to check their assumptions fully.</p><p>As with everything, we should not try to decide whether HFT is good or bad, but whether certain practices are useful or not, and if so to what extent.</p><p></p><p>The only practice that can be condemned outright is the insider-like trading &#8212; unambiguously, and in a bipartisan way.</p><p></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>Weller, Brian M. (2018). &#8220;Does Algorithmic Trading Reduce Information Acquisition?&#8221; <em>The Review of Financial Studies</em>, 31(6), 2184&#8211;2226.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>The clean distinction between liquidity-providing and sniping actors only works in papers; in reality most HFT firms do both. The paper making this distinction: Ibikunle, Gbenga; Moews, Ben; Muravyev, Dmitriy; Rzayev, Khaladdin (2024). &#8220;Data-Driven Measures of High-Frequency Trading.&#8221; arXiv:2405.08101 (working paper).</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-3" href="#footnote-anchor-3" class="footnote-number" contenteditable="false" target="_self">3</a><div class="footnote-content"><p>Augustin, Patrick; Brenner, Menachem; Subrahmanyam, Marti G. (2019). &#8220;Informed Options Trading Prior to Takeover Announcements: Insider Trading?&#8221; <em>Management Science</em>, 65(12), 5697&#8211;5720.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-4" href="#footnote-anchor-4" class="footnote-number" contenteditable="false" target="_self">4</a><div class="footnote-content"><p>The House voted yesterday to bar members, spouses and dependent children from buying new stocks; existing holdings are grandfathered, and the Senate is unlikely to take it up. It also does nothing about the thirteen years of data the research is built on. </p><p>It is also a far cry from actually stopping trading favors, donations in / trading advice out, quid pro quo. Worse yet, the actual ban had been in place for 13 years already, and never once been enforced.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-5" href="#footnote-anchor-5" class="footnote-number" contenteditable="false" target="_self">5</a><div class="footnote-content"><p>Barber, Brad M.; Lee, Yi-Tsung; Liu, Yu-Jane; Odean, Terrance (2014). &#8220;The Cross-Section of Speculator Skill: Evidence from Day Trading.&#8221; <em>Journal of Financial Markets</em>, 18, 1&#8211;24 (Taiwan; ~80% of day traders lose net of costs, &lt;1% consistently profitable). See also Chague, Fernando; De-Losso, Rodrigo; Giovannetti, Bruno (2020). &#8220;Day Trading for a Living?&#8221; (SSRN working paper; Brazil; 97% of traders persisting beyond 300 sessions lost money)</p></div></div>]]></content:encoded></item><item><title><![CDATA[Why you need two systems for running automating trading strategies]]></title><description><![CDATA[Issue 1 &#183; The Model Is Not the Market &#8212; Gate 3: how to run in production?]]></description><link>https://www.tradingreality.com/p/why-you-need-two-systems-for-running</link><guid isPermaLink="false">https://www.tradingreality.com/p/why-you-need-two-systems-for-running</guid><pubDate>Wed, 15 Jul 2026 11:04:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!JIYZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0bcb027f-456c-4249-ab05-acb3bf0684a1_1731x909.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JIYZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0bcb027f-456c-4249-ab05-acb3bf0684a1_1731x909.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JIYZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0bcb027f-456c-4249-ab05-acb3bf0684a1_1731x909.png 424w, https://substackcdn.com/image/fetch/$s_!JIYZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0bcb027f-456c-4249-ab05-acb3bf0684a1_1731x909.png 848w, https://substackcdn.com/image/fetch/$s_!JIYZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0bcb027f-456c-4249-ab05-acb3bf0684a1_1731x909.png 1272w, https://substackcdn.com/image/fetch/$s_!JIYZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0bcb027f-456c-4249-ab05-acb3bf0684a1_1731x909.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JIYZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0bcb027f-456c-4249-ab05-acb3bf0684a1_1731x909.png" width="1456" height="765" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0bcb027f-456c-4249-ab05-acb3bf0684a1_1731x909.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:765,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2170090,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.tradingreality.com/i/206037075?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0bcb027f-456c-4249-ab05-acb3bf0684a1_1731x909.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JIYZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0bcb027f-456c-4249-ab05-acb3bf0684a1_1731x909.png 424w, https://substackcdn.com/image/fetch/$s_!JIYZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0bcb027f-456c-4249-ab05-acb3bf0684a1_1731x909.png 848w, https://substackcdn.com/image/fetch/$s_!JIYZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0bcb027f-456c-4249-ab05-acb3bf0684a1_1731x909.png 1272w, https://substackcdn.com/image/fetch/$s_!JIYZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0bcb027f-456c-4249-ab05-acb3bf0684a1_1731x909.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Suppose the gates behind you are passed. The numbers were honest. The edge is real &#8212; you can say who pays you and why. There is one gate left, and it is the one where the invoice arrives: you are cashing in &#8212; or out. This is where the model finally touches the market, and the issue takes its title from what happens next.</p><p>Rob Carver spent seven years at AHL and has run his own fully automated futures system, on his own money, since 2014. He has sat in both seats this problem has &#8212; the institutional one and the kitchen-table one &#8212; which is why his answer to it is structural rather than motivational.</p><p>He wrote this piece in 2014, and I have deliberately not asked him to update a word, because the intervening decade is the argument. We now have tools that will write a working backtest in an afternoon. The temptation to promote that artifact into production has never been stronger, and the gap Carver describes &#8212; between code that simulates and code that runs &#8212; has not moved an inch. The backtest got cheap. Production didn&#8217;t. And my suggestion to read this piece as if it was written today, in the age of &#8220;AI confusion&#8221;.</p><p>The intro above is mine; everything below the line is his, untouched, from where it first appeared.</p><div><hr></div><p>by <a href="https://www.systematicmoney.org/bio">Robert Carver</a> published at <a href="https://qoppac.blogspot.com">This Blog is Systematic</a>, on <span>Monday, 8 December 2014</span></p><p></p><p></p><p>Running a <a href="http://qoppac.blogspot.co.uk/2013/12/p-margin-bottom-0.html">fully automated trading strategy</a> requires very little time. Apart from the 6 months or so of flat out coding you need to do first of course. Before doing this coding there is a chicken or the egg question to resolve. Do you write backtesting code and then some extra bits to make it trade live, or do you write live trading code which you then try and backtest?</p><h3 style="text-align: justify;">Some background</h3><p>If you haven&#8217;t had the pleasure of writing an automated trading strategy, perhaps because you use prebaked software like &#8220;<a href="http://www.metatrader5.com/">Me Too! Trader</a>&#8220; or an online platform such as https://www.quantopian.com/<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>, you may wonder what on earth I am talking about.</p><p>The issue is that there are two completely different user requirements for what is usually one piece of software. The first user is a researcher. They want something highly flexible that they can use to test different, and novel, trading strategies; and to simulate their profitability by &#8220;backtesting&#8221;. Any component needs to be interactive, dynamic and easy to modify.</p><p>The next user - lets call them the implementor - does not rate flexibility, indeed it may be viewed as potentially dangerous. They want something that is ultra robust and can run with minimal human intervention. Every component must be unit tested to the eyeballs; modifications should be minimal and rigorously tested. Interaction is strongly discouraged and should be limited to reading diagnostic output. The code needs to be stuffed full of fail safes, &#8220;what ifs?&#8221;, and corner case catchers.</p><p>Ultimately you won&#8217;t benefit from a systematic trading strategy unless both users are happy. You will end up with a product which is either untested with market data and which may not be profitable (unhappy researcher), or with one which should be profitable but is so badly implemented it will either crash daily or produce fat finger class errors and buy 10e6 too many contracts (unhappy implementor).</p><p>Weirdly of course if, like myself, you&#8217;re trading with your own money these users are the same person!</p><h3 style="text-align: justify;">Ideas have to be tested</h3><p>In the vast majority of cases the backtest code comes first, for the same reason that when it comes to building a new car you don&#8217;t just weld together a bunch of panels and see what they look like; you get out your little clay model (or in this less romantic world, your CAD package). Pretty much every design discipline uses a &#8216;sandbox&#8217; environment to develop ideas. Important fact: The people playing in the sandpit aren&#8217;t usually professionally trained programmers (including yours truly).</p><p>Either in a greenfield corporate context, or if you are developing your own stuff, the first thing you will do is write some code that turns prices or other data into positions; and then a little routine to pretend you were actually trading live in the past to see how much money you did, or didn&#8217;t make.</p><p>If you&#8217;re sensible then you might even have some of your core mathematical routines tidied up and unit tested so they are properly reusable. You can try and modularise the code as much as possible, so running a different trading rule just involves repointing one line of code. You could get quite fancy and have code that is flexible and is configurable by file or arguments, rather than &#8220;configuration&#8221; by script. Your simulation of backtested performance can get quite sophisticated.</p><p>At some point though you&#8217;re going to want to run real money on this.</p><h3 style="text-align: justify;">Productionization - bringing in the grownups</h3><p>This simulation code isn&#8217;t normally up to the job of running with real money. In theory all you need to do is write a script that runs the simulation every day / hour / minute and then another piece of code that turns the output of that into actual real live trades.</p><p>I suspect most people who are running their own money go down this path. However I would estimate that only 10% of my own code base (of which more in a moment) is needed to run a simulation. What that means in practice is you start with code that isn&#8217;t sufficiently robust to run in a fully automated way (because it&#8217;s missing most of the other 90%) and if you&#8217;re lucky you end up with a vast jerry built structure of things tacked on when you realise you needed them.</p><p>If you are trading your own money and not interested in the machinations of corporate fund management politics you&#8217;ll probably want to skip ahead to &#8216;Two systems&#8217;.</p><p>Alternatively what tends to happen next in a corporate context is some proper programmers get brought in to productionize the system. The simulation code is normally treated as a specification document, and a seriously incomplete and badly written one at that, rather than as a prototype. The rest of the spec, which is the stuff you need to do the 90%, then has to be written by the implementor.</p><p>The result is a robust trading systems but one on which it&#8217;s now impossible to do any research. The reason why it&#8217;s are that it&#8217;s very hard to unpick the 10% of code that can be mucked about with, muck about with it and then re-run it to see what will happen.</p><h3 style="text-align: justify;">When lunatics run the asylum: need for innovation</h3><p>What usually happens next is that the research user comes up with some clever idea that the solid monolithic tank like existing production code isn&#8217;t capable of doing. Given that most quant finance businesses have an oversupply of clever people with clever ideas, and an under supply of people who can actually make things work properly, they will then be faced with a choice. Either wait for many months for some programming talent to become available, or try and twist the arm of management to let them implement the simulation system with real money.</p><p>Most quant finance businesses are run by quants (Which you might think is the natural order of things. But being very clever and insightful AND being a great business person are quite unusual skills to find in the same person. Perhaps it is sometimes better to have the business run by a glorified COO whilst you stick to what you&#8217;re good at, which is usually the cool and fun stuff. Tech company bosses also take note). Which means that the simulation system ends up being used to trade real money, despite this being an insane idea. By the way having quants in charge is also why there is an under supply of builders AKA programmers versus architects AKA researchers in these businesses. That and separate reporting / manpower budget lines for CTO&#8217;s.</p><p>Anyway the bottom line is that rather than modify the existing production code to do the new new thing the programmers then often have to work with a hacked up backtest pretending to be a swan like production system. But because this is actually running real money it&#8217;s treated more as a prototype than a badly written spec. This means a lot of crud gets ported across into the production system, and the process of productionizing takes a lot longer.</p><p>Eventually we end up with a robust system again. Until that is some bright spark has another clever idea, and the cycle begins again.</p><h3 style="text-align: justify;">Two systems: An aside on testing and matching</h3><p>One way - indeed the best way - of dealing with this is to keep your two code bases completely separate. Once your bright idea is fully developed then you show the programmers your code. After laughing hard at your pathetic attempt they then incorporate it into the production system. You then continue to use your simulation code</p><p>You can also do this as an individual, although you probably won&#8217;t laugh at your own code, not if you&#8217;ve just written it anyway. As an individual programmer and trader having to maintain two systems is also a serious time overhead, but ultimately worth it.</p><p>Back in the corporate world an obvious problem with this is you still have the bottleneck of needing enough programmers to keep up with the flow of wonderful ideas. However at least they aren&#8217;t wasting their time trying to deal with hurriedly rewriting cruddy simulation systems that are already running real money before they blow up.</p><p>A slight problem with this is that you have created two ways to do something. Corporate types running systematic fund businesses have an unhealthy obsession with things being &#8216;right&#8217;. You have to prove that the position coming from your production system is &#8216;right&#8217;. If you have a simulation the most obvious way of doing this is to run that and crosscheck them. In this way the simulation becomes a glorified integration test of the production code.</p><p>This is a recipe for tens of thousands of person hours of wasted time and effort trying to work out why two are slightly different. This is completely stupid. For starters there is no &#8216;right&#8217;. All trading rules are guesses anyway. Under this logic a trading rule that did exactly what it was &#8216;supposed&#8217; to do, but lost a billion dollars would be better than one which was a bit wayward but which made the same amount in profit.</p><p>Second of all this is a very stupid way of testing anything. You should have a spec as to what the trading system should do. In case it isn&#8217;t obvious, I don&#8217;t think the simulation code should be the spec. At best it&#8217;s a starting point for writing the spec. But should you reproduce a bug in the simulation if it isn&#8217;t what was intended? No. You should find out what&#8217;s intended, write it down, and that is what you should implement. You then write tests to check the production code meets the spec. And mostly they should be unit tests. This is very obvious indeed to anyone working in any kind of other industry where you build stuff after prototyping it.</p><h3 style="text-align: justify;">Production first?!?!</h3><p>When it came to writing my own trading system about a year ago I did something radical. Since I knew exactly what I wanted to implement, I just sat down and wrote the production code. Of course I was in the unusual position of having already designed enough trading systems to know what I wanted to do, albeit in a corporate context and I had never written an end to end production system before.</p><p>I don&#8217;t think writing production first is unattainable even if you don&#8217;t know exactly what you&#8217;re going to do. If you have the pleasure of working in a greenfield setting you have two main jobs to do. The first is to write a production system, and the second is to come up with some new and profitable ideas. Don&#8217;t wait until you&#8217;ve come up with ideas to hire your proper programmers, hire them now. Get them to code up a simple trading rule in a robust production system. Meanwhile you can do your clever stuff. Occasionally they will come and confront you with questions, and hopefully this will will force you to direct your cleverness in the direction of clarifying what your investment process might end up being.</p><p>Similarly if you are writing your own stuff then it might be worth coding the simplest possible production system first before you do your research. You could even do both jobs them in parallel. It&#8217;s quite nice being able to shift to doing some hard core econometrics when you&#8217;ve been coding up corner cases for trading algorithms, and some mindless script writing can be just the ticket when you are stuck for inspiration and the great trading ideas just aren&#8217;t coming.</p><p>If your code is modular enough you should be able to subsequently write the simulation code from production rather than vice versa. The simulation code will just be some scaffolding around the core trading rule part of your production code (the 10% bit, remember?).</p><p>With my own system I did get round to doing this, but only after I&#8217;d be trading for 6 months. But to be honest I don&#8217;t really run my simulation code that much, and I certainly don&#8217;t check it against my production code. It&#8217;s only used for what it should be used for - a sandbox for playing in. If I come up with any new ideas then I&#8217;ll then have to go and implement them in the production code. So I am firmly in the two system world, although I approached it from the other direction than what we normally see.</p><h3 style="text-align: justify;">Nirvana?</h3><p>No not the early 90&#8217;s grunge band, but the idea of some perfect system existing that can do both. A giant uber-system which can meet both requirements. I don&#8217;t think such a nirvana is attainable, for a couple of reasons. Firstly the work involved is substantial - I would estimate at least four times as much as developing a separate production and simulation system.</p><p>Secondly, in a corporate context, there is usually too big a disparity in the needs of different users particularly on the research side. Often there is a temptation to over specify the flashy aspects of the project, such as the user interface having lots of interactive graphics. This often happens because the senior managers with the authority to order such large IT projects haven&#8217;t done much coding for a while and need more of a point and click interface.</p><h3 style="text-align: justify;">Small steps</h3><p>I don&#8217;t believe in the fairy story of &#8216;one system to rule them all&#8217;. Instead I believe that two systems probably works best, but with some sensible code reuse where it makes sense. Here are some of the small steps you can take.</p><p>As I&#8217;ve already mentioned your core utilities, like calculate a moving average*, should be shared, and tested to death, so you can trust them.</p><p>* Okay bad example, since I get <a href="http://pandas.pydata.org/">pandas</a> to do this for me. But you get the idea.</p><p>You can&#8217;t possible reuse code unless you have good modularity. The wrapper around the 10% of my production code that is reusable for simulations looks like this:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;70157b23-cb52-429a-9ef3-cbe8184f8d8c&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">data1 = get_live_data_to_do_step_one(*args for live data)

config1 = get_live_config_to_do_step_one(*args for live config)

diag = diagnostic(* define where live diagnostics are written to)

output1 = do_step_one(data=data1, config=config1, diag=diag)

data2 = get_live_data_to_do_step_two(*args for live data)

config2 = get_live_config_to_do_step_two(*args for live config)

output2 = do_step_two(output1, somedata=output1, moredata=data2, config2=config2, diag)</code></pre></div><p></p><p>Hopefully I don&#8217;t need to spell out how the simulation code is different, or how it would be hard to replace step one with a different step one in a research context if the code wasn&#8217;t broken down like this.</p><p>Try and separate out the parts that do all the corner case and type testing from the actual algorithm. The latter part you will want to play with and look at. This does however mean you can&#8217;t have a simple &#8216;doughnut&#8217; model of production and simulation code, where there is just a different &#8216;scaffolding&#8217; around a core position generation function (which I realise is what my pseudo code implies...). It needs to be more dynamic than that.</p><p>Don&#8217;t make stuff reusable for the sake of it. For example I toyed with creating a fancy accounting object which could analyse either live or simulated profitability. But ultimately I didn&#8217;t think it was worth it, just because it would have been cool. Instead I wrote a lot of small routines that did various small analysis, that I could stick together in different ways for each task.</p><p>As well as code reuse you can also have data reuse. It doesn&#8217;t make any sense to have two databases of price data, one for simulation and one for live data. If there are certain prebaked calculations that you always do, such as working out price volatility, then you should have your production system work them out as often as it needs to and dump the results where the rest of your system, including your simulation code, can get it.</p><h3 style="text-align: justify;">Go forth and code</h3><p>That&#8217;s it then. Hopefully I&#8217;ve convinced you that the two system model makes sense. Now if you will excuse me I&#8217;m going to go and hack some back testing code ....</p><div><hr></div><p></p><p>Read the original piece <a href="https://qoppac.blogspot.com/2014/12/why-you-need-two-systems-for-running.html">here</a>. Just as enjoyable as the first time.</p><p>You may explore the entire archive, which is live and well &#8212; and fully up-to-date here:</p><p><a href="https://qoppac.blogspot.com">https://qoppac.blogspot.com</a></p><p></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>Quantopian let you run strategies on someone else's production system. It closed in 2020, and the strategies went with it. The argument below outlived the alternative. &#8212; TR</p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA["Use Anything But Past Returns"]]></title><description><![CDATA[Issue 1 &#183; The Model Is Not the Market &#8212; Gate 2: is the edge real?]]></description><link>https://www.tradingreality.com/p/use-anything-but-past-returns</link><guid isPermaLink="false">https://www.tradingreality.com/p/use-anything-but-past-returns</guid><dc:creator><![CDATA[Tibor S]]></dc:creator><pubDate>Tue, 14 Jul 2026 11:03:48 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!tgb3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F898a1207-c1f5-4e14-a89d-822f4d28555f_1686x933.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#8230; It&#8217;s what I used to tell developers asking how to choose which strategies to keep, cut, or size up &#8212; a blunt instruction, meant to unsettle. And it did. Next, I could read their thoughts: </p><p>&#8220;Past returns are not indicative of future performance?...&#8221;</p><p>&#8220;No, that phrase is only really about liability&#8221;, the mindreader smiled.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tgb3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F898a1207-c1f5-4e14-a89d-822f4d28555f_1686x933.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tgb3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F898a1207-c1f5-4e14-a89d-822f4d28555f_1686x933.png 424w, https://substackcdn.com/image/fetch/$s_!tgb3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F898a1207-c1f5-4e14-a89d-822f4d28555f_1686x933.png 848w, https://substackcdn.com/image/fetch/$s_!tgb3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F898a1207-c1f5-4e14-a89d-822f4d28555f_1686x933.png 1272w, https://substackcdn.com/image/fetch/$s_!tgb3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F898a1207-c1f5-4e14-a89d-822f4d28555f_1686x933.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tgb3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F898a1207-c1f5-4e14-a89d-822f4d28555f_1686x933.png" width="1456" height="806" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/898a1207-c1f5-4e14-a89d-822f4d28555f_1686x933.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:806,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1821946,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.tradingreality.com/i/205820267?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F898a1207-c1f5-4e14-a89d-822f4d28555f_1686x933.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tgb3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F898a1207-c1f5-4e14-a89d-822f4d28555f_1686x933.png 424w, https://substackcdn.com/image/fetch/$s_!tgb3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F898a1207-c1f5-4e14-a89d-822f4d28555f_1686x933.png 848w, https://substackcdn.com/image/fetch/$s_!tgb3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F898a1207-c1f5-4e14-a89d-822f4d28555f_1686x933.png 1272w, https://substackcdn.com/image/fetch/$s_!tgb3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F898a1207-c1f5-4e14-a89d-822f4d28555f_1686x933.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I am talking about something different. </p><p>The characteristics of a strategy and the outcomes of a strategy are not the same. The counterparty it normally matches with, the flow and volatility it feeds on, the market constraints it exploits, even the way it misses the prediction &#8212; those are characteristics. Often meaningful ones. The equity curve, and most of its descriptors, are an outcome. A few P&amp;L-metrics reach over into characteristics &#8212; Sharpe, Sortino, MaxDD and so on &#8212; and those can earn their keep. But as long as they depend on the P&amp;L, they are a supporting act in a play where the <em>market prima donna</em> takes center stage.</p><h4>Deconstructing your strategy results</h4><p>The strategy outcomes &#8212; the P&amp;L and its derivatives &#8212; are made up of <strong>edge</strong> plus <strong>noise</strong>, plus <strong>regime</strong>, plus <strong>luck</strong>. The sum produces the number you are measuring. The decomposition is immensely difficult. </p><p>Decomposing <strong>noise</strong> from the market itself is hard. In a strategy result, more so.</p><p><strong>Regime</strong>? If you have tried defining regimes in your strategies, I bet the memory alone brings cold sweat. As the saying goes: &#8220;I have the perfect mean reversion system, and a stellar trend follower. I just don&#8217;t know when to switch.&#8221;</p><p><strong>Luck</strong> is what is left after you discard the rest. </p><p>So the job is to focus on the <strong>edge</strong>. Still extremely elusive &#8212; we mostly don&#8217;t even try to quantify it precisely, but ask: is there any? Is there enough?</p><h4>Does your strategy actually have an edge?</h4><p>And that is directly related to the question of WHY your strategy works. Because institutions unwind their positions around the close of the week? Because the spot market moves gold overnight? Because there is excess volatility around NFP?</p><p>And then another measure that doesn&#8217;t get enough prime time: WHEN. What are the market conditions when your strategy capitalizes? When liquidity is flowing in but the price is whipsawing? Or when things calm down and it trends up?</p><p>We don&#8217;t answer these questions to put together a prospectus, or to explain away our responsibility for not beating the S&amp;P 500 this quarter. It is very, very pragmatic. It is to know the conditions under which it may stop working. To understand the reasons those conditions change. And to look for measures that set off the alarm before the gates are shattered and the enemy is already inside &#8212; counting your money. Ed Thorp set this bar decades ago: you have an edge when you can explain why it exists &#8212; and how you will lose it<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>. The <em>why</em> and the <em>when</em>.</p><h4>What <em>do</em> we use, if not returns?</h4><p>The developer&#8217;s question, and a fair one. Let me list a few that survived my twenty-five years:</p><p>Who pays you &#8212; and are they still in the game. Every edge has a <em><strong>counterparty</strong></em>: &#8220;someone&#8221; making a systematic mistake, or wearing a constraint they can&#8217;t take off. If the why is institutional unwinds into the Friday close, then count the unwinds. Measure the flow, not the profit on the flow. The flow is a characteristic &#8212; observable directly, daily, with no luck in it. When it thins, you know something is off.</p><p><em><strong>The fills</strong></em>. Execution is the closest sensor you have to the mechanism. Fill rates against what the model expects. The adverse selection in your passive fills &#8212; what the market does in the seconds after it lets you in. A strategy whose fills start coming back different has changed, whatever the equity curve says. </p><p><em><strong>The way it loses</strong></em>. Every mechanism has a signature failure. A mean-reverter should bleed in trends and get paid in chop. If it starts bleeding in chop, that is not variance &#8212; but a deafening siren. Losing right is evidence for the edge. Losing weird is evidence against it.</p><p><em><strong>The size response</strong></em>. Push marginally more through it and watch what comes back &#8212; the impact, the fill quality at the increment. A strategy that scales too easily should worry you more than one that doesn&#8217;t. A similar problem to the one described in <a href="https://www.tradingreality.com/p/front-loaded-value-in-trading">Front-loaded Value in Trading</a>.</p><p>None of these are exotic. But the list is not exhaustive. Every strategy begs for a different set of metrics. All of them are observable daily, while a Sharpe ratio needs years to clear its own noise. A Sharpe 1 strategy produces one standard deviation of evidence per year  &#8212; so you need roughly four years of live P&amp;L before the returns alone separate your strategy from luck. That is the practical asymmetry: characteristics update fast and carry the why; outcomes update slowly and carry luck, noise and regime with them.</p><h4>The evidence is all around us</h4><p>For decades, the largest allocators on earth hired the managers with the best three-year record and fired the worst. Goyal and Wahal tracked 3,400 plan sponsors doing it: the hired winners delivered nothing, and the fired losers rebounded<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a>. And when academics published nearly a hundred market edges, McLean and Pontiff measured what happened next: the edges decayed. And they did so on a specific schedule<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-3" href="#footnote-3" target="_self">3</a>. The costlier the arbitrage was to execute, the longer the edge lived. The why predicted the when.</p><p>None of this makes returns useless. They are the final auditor. But this auditor files late &#8212; even a Sharpe 2 strategy needs a full year for some confidence, while the characteristics report every day. By the time the P&amp;L confirms, the fills have known for months.</p><h4>So&#8230;</h4><p>&#8230; cover your equity curve with that tear-soaked tissue, and tell me what you still believe about the strategy. Whatever is left &#8212; the counterparty, the fills, the failure signature, the size it bears &#8212; that is the edge. If nothing is left, there was never anything there.</p><p>All of this assumes the returns you just covered were honest &#8212; a larger assumption than it sounds, as Klement showed at the first gate. Ahead is the last one: an edge and the way it survives production.</p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>Thorp's formulation, quoted in Michael Mauboussin and Dan Callahan, "Who Is On the Other Side?", Counterpoint Global Insights, Morgan Stanley Investment Management (2024): an edge is returns that can be "logically explained in a way that is difficult to rebut." The second half &#8212; that knowing why it exists means knowing how it dies &#8212; is Mauboussin's reading of him. I've fused them because that's how it works in practice.</p><p></p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>Amit Goyal and Sunil Wahal, "The Selection and Termination of Investment Management Firms by Plan Sponsors," Journal of Finance 63:4 (2008). About $700 billion of hiring decisions over a decade. The cruelest finding: when a sponsor fired one manager and hired another, keeping the fired one would have done just as well.</p><p></p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-3" href="#footnote-anchor-3" class="footnote-number" contenteditable="false" target="_self">3</a><div class="footnote-content"><p>R. David McLean and Jeffrey Pontiff, "Does Academic Research Destroy Stock Return Predictability?", Journal of Finance 71:1 (2016).  They tracked 97 published edges. After publication, returns dropped by more than half on average &#8212; but not evenly. The edges that were hard to trade away lasted longer. The mechanics set the decay timing.</p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[What happens if you measure hedge fund returns properly?]]></title><description><![CDATA[Issue 1 &#183; The Model Is Not the Market &#8212; Gate 1: do the numbers mean anything?]]></description><link>https://www.tradingreality.com/p/what-happens-if-you-measure-hedge</link><guid isPermaLink="false">https://www.tradingreality.com/p/what-happens-if-you-measure-hedge</guid><pubDate>Tue, 07 Jul 2026 14:48:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!itoe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c7f992-7037-4ccc-b804-892800742d8f_2110x1052.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Every strategy conversation opens the same way: someone shows you a number. A curve, a Sharpe, a monthly table. The instinct is to interrogate the strategy behind it. The first gate is duller than that &#8212; interrogate the number itself.</p><p>This exploration has a dual purpose &#8212; to make you doubt yourself from the outset, but to also understand you are in good company. The industry that has thrown billions of dollars and many thousands of PhDs at this problem is struggling to clear this gate, too. </p><div><hr></div><p></p><p>by <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Joachim Klement&quot;,&quot;id&quot;:2553685,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c80a862f-544c-4da1-895d-19046f0ba82f_3422x2281.png&quot;,&quot;uuid&quot;:&quot;0ef403b4-7703-416d-9e82-ec776cdbd37e&quot;}" data-component-name="MentionToDOM"></span> originally published at </p><div class="embedded-publication-wrap" data-attrs="{&quot;id&quot;:10802,&quot;embedding_publication_id&quot;:null,&quot;name&quot;:&quot;Klement on Investing&quot;,&quot;logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Bggz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5205a4f7-7b8d-4bb0-a42a-f87ec546784a_306x306.png&quot;,&quot;base_url&quot;:&quot;https://klementoninvesting.substack.com&quot;,&quot;hero_text&quot;:&quot;Thoughts on financial markets by a grumpy, middle-aged German. What more do you want?&quot;,&quot;author_name&quot;:&quot;Joachim Klement&quot;,&quot;show_subscribe&quot;:false,&quot;logo_bg_color&quot;:&quot;#ffffff&quot;,&quot;language&quot;:&quot;en&quot;}"><a class="embedded-publication embedded-publication-flex" native="true" href="https://klementoninvesting.substack.com?utm_source=substack&amp;utm_campaign=publication_embed&amp;utm_medium=web"><div class="embedded-publication-left"><img class="embedded-publication-logo" src="https://substackcdn.com/image/fetch/$s_!Bggz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5205a4f7-7b8d-4bb0-a42a-f87ec546784a_306x306.png" width="40" height="40" style="background-color: rgb(255, 255, 255);"></div><div class="embedded-publication-right"><span class="embedded-publication-name">Klement on Investing</span><div class="embedded-publication-hero-text">Thoughts on financial markets by a grumpy, middle-aged German. What more do you want?</div><div class="embedded-publication-author-name">By Joachim Klement</div></div></a></div><p>One of the eternal problems with measuring the return and risk of private investments is that the lack of liquidity artificially smooths return over time. This in turn creates the impression of a very good risk-return trade-off. But not only that. If one compares these smoothed returns to the return of listed investments like stocks and bonds, it appears as if hedge funds have skill (i.e. alpha) where there is none. It&#8217;s like the old illusion that many private investors suffer from where they believe that investing in real estate is very lucrative and has few risks compared to stock markets. Their views would likely change if their properties were valued and reported on TV daily.</p><p><a href="https://academic.oup.com/rfs/article/37/7/2110/7625074?login=true#467290032">Spencer Couts and his colleagues</a><span> have gone through an elaborate exercise to unsmooth the returns of hedge funds and check what that implies for the alpha these hedge funds achieve vs. listed stocks and bonds. The chart below shows the reduction in hedge fund alpha by strategy from the raw alpha reported by hedge funds, collected in databases, and reported in the news to the true alpha they have achieved.</span></p><p>Alpha bias in different hedge fund strategies.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!itoe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c7f992-7037-4ccc-b804-892800742d8f_2110x1052.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!itoe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c7f992-7037-4ccc-b804-892800742d8f_2110x1052.png 424w, https://substackcdn.com/image/fetch/$s_!itoe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c7f992-7037-4ccc-b804-892800742d8f_2110x1052.png 848w, https://substackcdn.com/image/fetch/$s_!itoe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c7f992-7037-4ccc-b804-892800742d8f_2110x1052.png 1272w, https://substackcdn.com/image/fetch/$s_!itoe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c7f992-7037-4ccc-b804-892800742d8f_2110x1052.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!itoe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c7f992-7037-4ccc-b804-892800742d8f_2110x1052.png" width="1456" height="726" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/80c7f992-7037-4ccc-b804-892800742d8f_2110x1052.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:726,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:117185,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.tradingreality.com/i/205775448?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c7f992-7037-4ccc-b804-892800742d8f_2110x1052.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!itoe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c7f992-7037-4ccc-b804-892800742d8f_2110x1052.png 424w, https://substackcdn.com/image/fetch/$s_!itoe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c7f992-7037-4ccc-b804-892800742d8f_2110x1052.png 848w, https://substackcdn.com/image/fetch/$s_!itoe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c7f992-7037-4ccc-b804-892800742d8f_2110x1052.png 1272w, https://substackcdn.com/image/fetch/$s_!itoe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80c7f992-7037-4ccc-b804-892800742d8f_2110x1052.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Source: Couts et al. (2024)</p><p>Note that most hedge fund strategies overreport their alphas by about 1.5% per year. Only the most liquid strategies like macro hedge funds, CTA, and equity market neutral show little to no bias.</p><p>If we correct hedge fund returns from this bias, then it changes which hedge fund strategies have true alpha and which ones don&#8217;t. Long-short hedge funds, for example, on average report an annual alpha of 1.5%, but that disappears completely when the true volatility of the underlying investment portfolio is taken into account. Long only, emerging market, and sector specialist hedge funds even end up with negative alpha on average, meaning on average it&#8217;s better to just go with an index fund than these vehicles. And that is before costs!</p><p>Meanwhile, the three hedge fund strategies with the highest positive alpha on average are relative value funds (though their alpha drops from about 3.3% p.a. to 2.5% p.a.) and macro and CTA hedge funds (both with an average alpha of about 2% p.a.). Event-driven and market-neutral funds have small positive alphas before fees, but the fees are much higher than these alphas, so investors end up with lower returns than simply going into a low-cost 60/40 stock/bond portfolio for example.<br></p><div><hr></div><p><br><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Joachim Klement&quot;,&quot;id&quot;:2553685,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c80a862f-544c-4da1-895d-19046f0ba82f_3422x2281.png&quot;,&quot;uuid&quot;:&quot;d22689e6-21d1-4c1d-b73f-ed87b4e0d9a4&quot;}" data-component-name="MentionToDOM"></span> writes every day. I highly recommend subscribing to him here:</p><div class="embedded-publication-wrap" data-attrs="{&quot;id&quot;:10802,&quot;embedding_publication_id&quot;:null,&quot;name&quot;:&quot;Klement on Investing&quot;,&quot;logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Bggz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5205a4f7-7b8d-4bb0-a42a-f87ec546784a_306x306.png&quot;,&quot;base_url&quot;:&quot;https://klementoninvesting.substack.com&quot;,&quot;hero_text&quot;:&quot;Thoughts on financial markets by a grumpy, middle-aged German. What more do you want?&quot;,&quot;author_name&quot;:&quot;Joachim Klement&quot;,&quot;show_subscribe&quot;:true,&quot;logo_bg_color&quot;:&quot;#ffffff&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="EmbeddedPublicationToDOMWithSubscribe"><div class="embedded-publication show-subscribe"><a class="embedded-publication-link-part" native="true" href="https://klementoninvesting.substack.com?utm_source=substack&amp;utm_campaign=publication_embed&amp;utm_medium=web"><img class="embedded-publication-logo" src="https://substackcdn.com/image/fetch/$s_!Bggz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5205a4f7-7b8d-4bb0-a42a-f87ec546784a_306x306.png" width="56" height="56" style="background-color: rgb(255, 255, 255);"><span class="embedded-publication-name">Klement on Investing</span><div class="embedded-publication-hero-text">Thoughts on financial markets by a grumpy, middle-aged German. What more do you want?</div><div class="embedded-publication-author-name">By Joachim Klement</div></a><form class="embedded-publication-subscribe" method="GET" action="https://klementoninvesting.substack.com/subscribe?"><input type="hidden" name="source" value="publication-embed"><input type="hidden" name="autoSubmit" value="true"><input type="email" class="email-input" name="email" placeholder="Type your email..."><input type="submit" class="button primary" value="Subscribe"></form></div></div><p>And you can read the original piece <a href="https://klementoninvesting.substack.com/p/what-happens-if-you-measure-hedge">here</a>.</p>]]></content:encoded></item><item><title><![CDATA[ISSUE 1 - The Model Is Not the Market]]></title><description><![CDATA[Three gates a strategy has to pass]]></description><link>https://www.tradingreality.com/p/issue-1-the-model-is-not-the-market</link><guid isPermaLink="false">https://www.tradingreality.com/p/issue-1-the-model-is-not-the-market</guid><pubDate>Tue, 30 Jun 2026 12:56:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!hx7O!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad7e958b-c4fa-4bb3-a518-b511876120ca_1536x1024.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hx7O!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad7e958b-c4fa-4bb3-a518-b511876120ca_1536x1024.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hx7O!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad7e958b-c4fa-4bb3-a518-b511876120ca_1536x1024.heic 424w, https://substackcdn.com/image/fetch/$s_!hx7O!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad7e958b-c4fa-4bb3-a518-b511876120ca_1536x1024.heic 848w, https://substackcdn.com/image/fetch/$s_!hx7O!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad7e958b-c4fa-4bb3-a518-b511876120ca_1536x1024.heic 1272w, https://substackcdn.com/image/fetch/$s_!hx7O!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad7e958b-c4fa-4bb3-a518-b511876120ca_1536x1024.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hx7O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad7e958b-c4fa-4bb3-a518-b511876120ca_1536x1024.heic" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ad7e958b-c4fa-4bb3-a518-b511876120ca_1536x1024.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:290328,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.tradingreality.com/i/204269221?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad7e958b-c4fa-4bb3-a518-b511876120ca_1536x1024.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hx7O!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad7e958b-c4fa-4bb3-a518-b511876120ca_1536x1024.heic 424w, https://substackcdn.com/image/fetch/$s_!hx7O!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad7e958b-c4fa-4bb3-a518-b511876120ca_1536x1024.heic 848w, https://substackcdn.com/image/fetch/$s_!hx7O!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad7e958b-c4fa-4bb3-a518-b511876120ca_1536x1024.heic 1272w, https://substackcdn.com/image/fetch/$s_!hx7O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad7e958b-c4fa-4bb3-a518-b511876120ca_1536x1024.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Trading Reality has, until now, been one practitioner writing from the seat. It becomes something else today.</p><p>Each issue, we&#8217;ll gather a handful of pieces &#8212; some from people whose work I&#8217;ve read for years, some as original commentary &#8212; around a single problem that matters in production. This first Publication Series &#8212; ISSUE 1 &#8212; takes up the oldest and most expensive problem in systematic trading: the gap between the model and the market. The track record that doesn&#8217;t survive contact with reality.</p><p>We take it in the order you meet it. Someone hands you a number &#8212; an equity curve, drawdowns, a history. You need to pass three gates that very few strategies do:</p><ul><li><p>Do the numbers mean anything &#8212; or is the apparent skill a measurement artefact that vanishes the moment you measure honestly?</p></li><li><p>Even if the numbers are honest, is the edge real &#8212; if your strategy works: why, and when &#8212; or do you only have a pnl-based measure and a prayer?</p></li><li><p>And even if the edge is real, what&#8217;s left of it once it runs in production, not in research?</p></li></ul><p>Joachim Klement and Robert Carver take the first and last gates. The middle one is written here. </p><p>We start with the scrutiny of the numbers, first.</p><div><hr></div><p></p><p>The pieces publish over the coming days &#8212; one a day. If you&#8217;d rather read the whole issue now, the links are here: <a href="https://www.tradingreality.com/p/13591126-0556-457b-a377-87bf21eb40f6">Klement</a> &#183; <a href="https://www.tradingreality.com/p/124201e6-6f4f-48aa-9b2e-f92459f62aa1">Trading Reality</a> &#183; <a href="https://www.tradingreality.com/p/10f422e4-b47f-4885-aad8-e41be93f9a36">Carver</a>. Otherwise, they arrive in sequence.</p>]]></content:encoded></item><item><title><![CDATA[A realistic order simulation framework]]></title><description><![CDATA[Why I wrote ordersim]]></description><link>https://www.tradingreality.com/p/a-realistic-order-simulation-framework</link><guid isPermaLink="false">https://www.tradingreality.com/p/a-realistic-order-simulation-framework</guid><dc:creator><![CDATA[Tibor S]]></dc:creator><pubDate>Tue, 23 Jun 2026 14:31:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!7C53!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1bc3f3f-f290-4617-9f9e-2cf6866fb981_1658x894.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Issue 1 is coming. Before we get there, indulge me for a minute &#8212; I want to talk about a useful open-source project. You guessed it: mine. But it&#8217;s open source, so it&#8217;s now officially yours too.</p><p><em>ordersim</em> gives you exchange matching-engine-level realism in how your orders fill. I recommend that level of granularity for anyone serious about trading. And even if you never touch <em>ordersim</em> &#8212; be absolutely anal about simulator precision when you write, or shop around for, a &#8220;backtester.&#8221; I&#8217;m not so narcissistic as to point only at my own: hftbacktest stands out in the field &#8212; serious queue-position and latency modelling, though crypto- and HFT-focused. (No affiliation) The honest truth is the field is short. Do the research. Mostly you will find tools people call &#8220;backtesters&#8221; run at bar level and quietly bury the exact fill assumptions that matter.</p><p>And they do.</p><p>If you&#8217;ve read some of my earlier pieces &#8212; or simply been exposed to real trading &#8212; you&#8217;ll know how big the gap can be between what a backtest tells you and what the market actually does to your order. And you&#8217;ll have understood by now how much hinges on the simulation framework and its assumptions. Yes, assumptions. Every backtester has them. The question is: how crude are they? How many are packed into the system? And are they independent, or additive?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7C53!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1bc3f3f-f290-4617-9f9e-2cf6866fb981_1658x894.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7C53!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1bc3f3f-f290-4617-9f9e-2cf6866fb981_1658x894.png 424w, https://substackcdn.com/image/fetch/$s_!7C53!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1bc3f3f-f290-4617-9f9e-2cf6866fb981_1658x894.png 848w, https://substackcdn.com/image/fetch/$s_!7C53!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1bc3f3f-f290-4617-9f9e-2cf6866fb981_1658x894.png 1272w, https://substackcdn.com/image/fetch/$s_!7C53!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1bc3f3f-f290-4617-9f9e-2cf6866fb981_1658x894.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7C53!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1bc3f3f-f290-4617-9f9e-2cf6866fb981_1658x894.png" width="1456" height="785" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b1bc3f3f-f290-4617-9f9e-2cf6866fb981_1658x894.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:785,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:163622,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.tradingreality.com/i/203160526?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1bc3f3f-f290-4617-9f9e-2cf6866fb981_1658x894.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7C53!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1bc3f3f-f290-4617-9f9e-2cf6866fb981_1658x894.png 424w, https://substackcdn.com/image/fetch/$s_!7C53!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1bc3f3f-f290-4617-9f9e-2cf6866fb981_1658x894.png 848w, https://substackcdn.com/image/fetch/$s_!7C53!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1bc3f3f-f290-4617-9f9e-2cf6866fb981_1658x894.png 1272w, https://substackcdn.com/image/fetch/$s_!7C53!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1bc3f3f-f290-4617-9f9e-2cf6866fb981_1658x894.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>That difference &#8212; between the fill you assumed and the fill you got &#8212; is not a rounding error. </p><p>So, why use this simulator and not just the others referenced?</p><p>Over almost two and a half decades, every three or four years, I&#8217;ve started another order simulator from scratch &#8212; because the organization needed one, or because I needed one for my own research. I grew tired of it. I&#8217;m hoping to have something central now, something I can reuse without building it again from the ground up. The logic in it is mine: the assumptions, the matching behaviour, the things twenty-five years of watching orders meet real books taught me to model and not to fudge. This last build started as futures research. I had it cleaned up and repackaged for open source &#8212; but I was watching every line closely, because in a tool like this the fill logic <em>is</em> the product, and every iota matters.</p><p>Self-promotion that appears like selfishness masquerading as selflessness? Or is it the other way around?</p><p>ordersim needs you. Not in the abstract &#8220;stars and forks&#8221; way &#8212; your questions, your scrutiny, your taking issue with it. And your use of it. If it helps you make a lot of money, it makes you richer and me happier. That&#8217;s the deal. The beauty of good open source &#8212; for everyone, by everyone &#8212; is that it ends up built by the people who are best in class. That&#8217;s the version of &#8220;by everyone&#8221; I love.</p><p>It&#8217;s on GitHub. <code>pip install ordersim</code>. Break it, use it, tell me where it&#8217;s wrong.</p>]]></content:encoded></item><item><title><![CDATA[Trading Reality is becoming a curated publication]]></title><description><![CDATA[One desk can&#8217;t see it all]]></description><link>https://www.tradingreality.com/p/trading-reality-is-becoming-a-curated</link><guid isPermaLink="false">https://www.tradingreality.com/p/trading-reality-is-becoming-a-curated</guid><dc:creator><![CDATA[Tibor S]]></dc:creator><pubDate>Thu, 18 Jun 2026 14:01:59 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!7uzn!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ab2beb1-7949-4463-aec2-05427b6adb3e_1254x1254.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Trading Reality is going through a phase transition. Until now, this has been one practitioner writing about execution, market structure, and how systematic strategies behave once they leave research and meet real markets. That continues. But alongside it, the publication is becoming something wider: a place that gathers other voices from across the field &#8212; and, increasingly, commissions new work for it.</p><p>Here&#8217;s why.</p><p>The people I want to feature aren&#8217;t similar to me or each other, which is the point. One works in the corner of systematic trading that Substack readers rarely see; another is Substack-native; another sits closer to allocators. Different desks, different parts of the process &#8212; fitting and validation, signal construction, the production pipeline, how the work actually gets evaluated. No single voice sees all of it, including me.</p><p>They also bring their own expertise, their style, and their own humour &#8212; well needed, since mine tends to run out in the face of the stubborn strategy developer.</p><p><strong>This is not a reading list</strong>. It isn&#8217;t a digest or a links roundup. Each issue has an arc. The pieces are chosen and ordered to build on each other &#8212; the walk-through I&#8217;d have been grateful for when I was building my own career, and didn&#8217;t have. The selection and the sequence &#8212; are mine. You may find value in a piece for reasons different from why I selected it. That&#8217;s fine. The work earns multiple readings.</p><p>Each issue includes a handful of pieces, some selected from existing work, some written for Trading Reality. Every piece runs with full credit and a link back to the original. I won&#8217;t tell you what to make of them; I&#8217;ll let them speak to YOU. Not every piece will be for every reader. Maybe the next one will, so &#8220;swipe&#8221; away at will. But come back and read them in order &#8212; you&#8217;ll be rewarded for it.</p><p>Everything stays free. No advertising, no sponsorship, no payment from any party covered, nothing gated. The work is here because it&#8217;s worth reading.</p><p>If you&#8217;ve been reading, stay with me. If you know someone in the field &#8212; practitioner, allocator, builder &#8212; forward this to them.</p><p>Issue 1 is coming.</p>]]></content:encoded></item><item><title><![CDATA[Short Essays: Good trade, bad trade]]></title><description><![CDATA[Follow the everyday intuition]]></description><link>https://www.tradingreality.com/p/shorts-good-trade-bad-trade</link><guid isPermaLink="false">https://www.tradingreality.com/p/shorts-good-trade-bad-trade</guid><dc:creator><![CDATA[Tibor S]]></dc:creator><pubDate>Tue, 02 Jun 2026 14:21:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!7uzn!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ab2beb1-7949-4463-aec2-05427b6adb3e_1254x1254.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>For years I argued with my CEO about a single distinction: good trades versus bad trades. He classified every one of our trades into one or the other, whereas I thought the whole exercise was meaningless. Different traders have different holding periods, objectives, constraints &#8212; a trade that&#8217;s good for one book is bad for another. He&#8217;d argue back. I stayed unconvinced.</p><p>He was right. It took me years to understand why.</p><p>This was a man who once made me pick four Black Labels out of sixteen whisky glasses at the Christmas party to settle an argument about my taste &#8212; so disagreements with him were never boring. He was thirty years my senior and a finance professor at a top US university, so I should have caved. But as most people in their twenties do, I thought my arguments were bulletproof:</p><p><em>A buy trade good for an HFT is bad for a hedge fund. The HFT wants to close it for the slightest profit; the fund wants a double-digit return contribution to a huge portfolio. Surely their view of the same trade should differ &#8212; so there is no point in chasing universality.</em> </p><p>The counter-arguments I received were mostly based in literature and authority, neither of which fazed me much.</p><p>Years of strategy development, strategy oversight, and trading system evaluation flipped my view completely. From inside a strategy, the window is fixed and the signals are frozen. My original argument was about evaluation after the fact &#8212; but strategies don&#8217;t jump back and forth in time to prove you right. They come with a fixed signal set, perhaps 57% winning and 43% losing by default. You could argue that some of the losers would be profitable if only you waited two hours or three days more. That is not this strategy, though. That is a different strategy altogether.</p><p>Once committed and deployed, what&#8217;s available is the now, not the future. Once you accept that, the only variable left is the price. This is actually an everyday intuition: <em>&#8220;this was an absolute steal&#8221;</em>, <em>&#8220;a killer deal&#8221;</em>, <em>&#8220;the bargain of the century&#8221;</em>. These expressions show the same awareness at the store. It&#8217;s all about the price. But somehow when we elevate ourselves into the heights of <em>strategy development</em>, we start looking for a more sophisticated take. On this one, the industry and academia have long sided with the common folk<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>. The overthinkers among us were in the wrong.</p><p>Surely, though, buying Bitcoin in 2010 is inarguably a good trade, you may say. A price tick here and there cannot make a difference in that determination. I hear you, but think of it this way. Imagine we are in early 2010, Bitcoin is trading at a cent<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a>. You have $100, so you buy 10,000 Bitcoin. Happy days. Now, instead, you get it at a worse price &#8212; say 1.1 cents. You are left with 9,091 Bitcoin. At the approximate price at the time of writing, that means instead of $734 million on your $100, you would have <em>only</em> made $667.3 million. A $66.7 million difference between a good trade and a bad trade!</p><p>The trick lies in the freezing. You freeze the assumptions and accept the future as unknown. The trade was good or bad the moment it was executed. Everything after is just the outcome arriving. </p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>The institutional execution world has measured trade quality this way for decades. Andr&#233; Perold&#8217;s 1988 paper <em>The Implementation Shortfall: Paper Versus Reality</em> formalized the idea: a trade&#8217;s quality is the gap between the decision price and the actual execution price plus costs. The discipline that grew out of it &#8212; Transaction Cost Analysis, or TCA &#8212; is standard on every sophisticated execution desk.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>Bitcoin had no recorded market price until 2010, when it first traded for fractions of a cent. The famous 10,000 BTC pizza transaction in May 2010 implied roughly $0.0041 per coin. </p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[Under the hood: Adverse Selection]]></title><description><![CDATA[What spreads are made of]]></description><link>https://www.tradingreality.com/p/under-the-hood-adverse-selection</link><guid isPermaLink="false">https://www.tradingreality.com/p/under-the-hood-adverse-selection</guid><dc:creator><![CDATA[Tibor S]]></dc:creator><pubDate>Tue, 19 May 2026 14:00:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!L5uJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7cd106d-680f-460d-93f8-8194cdec4554_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!L5uJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7cd106d-680f-460d-93f8-8194cdec4554_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!L5uJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7cd106d-680f-460d-93f8-8194cdec4554_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!L5uJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7cd106d-680f-460d-93f8-8194cdec4554_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!L5uJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7cd106d-680f-460d-93f8-8194cdec4554_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!L5uJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7cd106d-680f-460d-93f8-8194cdec4554_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!L5uJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7cd106d-680f-460d-93f8-8194cdec4554_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b7cd106d-680f-460d-93f8-8194cdec4554_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2986033,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.tradingreality.com/i/198367333?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7cd106d-680f-460d-93f8-8194cdec4554_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!L5uJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7cd106d-680f-460d-93f8-8194cdec4554_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!L5uJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7cd106d-680f-460d-93f8-8194cdec4554_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!L5uJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7cd106d-680f-460d-93f8-8194cdec4554_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!L5uJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7cd106d-680f-460d-93f8-8194cdec4554_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>When I moved to Spain, the apartment I had pre-arranged turned out to be further from the amenities than expected. I needed a car on short notice. So I went to a dealership, where I was shown their selection. Antonio &#8212; sales &#8212; quickly asked about my price range and started pointing to all the different models on display. <em>Great price, very few kilometers. This one will serve you for decades! The previous owners handed it over in better condition than it came out of the factory!</em></p><p>Knowing less about cars than the average high schooler, I barely paid attention to what was being said, only registering mechanically what was being presented. I watched Antonio grow more and more compelled to impress. By the third loop through the 20-30 cars we&#8217;d narrowed down to, I realized there was one he kept skipping over. When I pushed him about it, finally, he admitted it was a &#8220;good car.&#8221; I closed the deal quickly, used the car for many years, and ended up selling it for more than I had paid for it.</p><p>I am not a bargainer, nor do I easily see through all sales tricks. But the words <em>adverse selection</em> lit up in front of my trading-geek eyes. This short story, adverse selection, and lemons all have something in common &#8212; and I will show you how.</p><h3>Actuarial origins</h3><p><a href="https://www.tradingreality.com/p/the-hand-of-the-maker">In the last piece we covered three important market participant categories: the informed, the uninformed traders, and the market makers</a>. We also showed that informedness is only spread-deep &#8212; that is to say, it can only be defined in relation to the market maker. This explains something intuitive: the market maker is trying to avoid being matched with informed traders, and adjusts their quotes accordingly to achieve a dual purpose. First, to widen and shift their quotes, making it more expensive for the informed trader to hit. Second, to be matched as often as possible with uninformed counterparties to offset the losses caused by matching informed flow.</p><p>The market maker being picked off by an informed trader is a phenomenon called <em>adverse selection</em>.</p><p>The notion originates outside of finance, in the late 19th century, in the insurance industry. Insurers realized roughly a century and a half ago that if they followed pure statistical probabilities when underwriting claims, they would end up going under imminently. They identified an effect they termed <em>anti-selection</em>, or <em>adverse selection</em> &#8212; namely, that the people most willing to purchase their life insurance products were the ones likely to already suffer serious illnesses. The information asymmetry between insured and insurer left the insurer unable to predict claim probabilities correctly. Disaster &#8212; pun intended &#8212; was hard to avoid without coping strategies.</p><p>The same effect plays out with market makers, who may not be privy to the information that informed &#8212; or &#8220;toxic&#8221; &#8212; traders possess. So they developed several coping strategies.</p><p>One strategy is to stop offering the product to a specific target audience. To stop selling life insurance to those with terminal illnesses. Or to skip over the car that is priced correctly &#8212; shoutout to the Antonios and car dealerships of this world. For the market maker, this equates to refusing to quote to select counterparties. Not always readily available in regulated markets, but it very much happens in more fragmented financial marketplaces &#8212; selective quoting in CFD and interbank feeds is the obvious example.</p><p>Another option is to raise the price. Increase the insurance premium, up the sale price of the car, widen the quote. Enough to make the transaction financially viable. The reader will recognize that both strategies are widely followed in all the cases listed.</p><p>About a century after the insurance industry coined the term, Akerlof posited that this information asymmetry can have serious consequences. His example was close to home: sellers of used cars know whether theirs is a car with hidden issues; buyers do not. Rational buyers therefore adjust the price they are willing to pay downwards to take this into account. As a consequence, sellers of good cars withdraw from the market &#8212; finding this price too low. After just a few cycles of this we are left with: you guessed it &#8212; only Lemons.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a></p><h3>The mother of all costs: the Spread</h3><p>The year was 2013. The country: Switzerland. The room set up for &#8220;Ultimate&#8221; Agile: a Kanban board, a sprint-board, a 3-min meeting board, and a room-sized whiteboard with never-ending post-its all pushing back on any and all deadlines. <em>I know my strategy is the basis for the next unicorn, but whenever we test-execute it drifts...</em> &#8212; I was told. This was familiar territory. This time it was at the strategy design phase. <em>It works on all instruments, so we decided to start with spot FX. </em>The alarm bells were deafening me. Let&#8217;s understand the underlying concept first. Statistical pattern deviation from noise. Ok.</p><p><em>So then the buy signal triggers,</em> he said. <em>And we buy at the bid. I know there is slippage, but...</em></p><p>Throat clearing. It was me, but it should have been the strategy author. I exhaled, inhaled, and again several times &#8212; <em>I need to say this in a tone that is neither alarmed, nor surprised, nor demeaning</em>, I thought to myself. <em>What do you mean at the bid?...</em></p><p>The strategy was assumed to execute at the prevailing inside bid and ask, not even at the mid-price. So the discrepancy from the get-go was 2&#215; the spread plus commission, plus slippage. It was a long conversation. And many more followed.</p><p>It isn&#8217;t controversial to say that the biggest and most significant cost to trading is the spread. What others term slippage is generally just the difference between the spread at the time of the order intent and the time of it arriving to the market. The former is a virtual spread that drives the decision. The latter is the spread and price in effect.</p><p>A strategy developer needs to understand exactly what the spread is, and what it isn&#8217;t. Why it exists. What it means for a strategy. How it interacts with your system.</p><p>The spread is considered to comprise three structural components:</p><ul><li><p><strong>Order processing costs</strong> &#8212; exchange, settlement, and other transaction fees.</p></li><li><p><strong>Inventory costs</strong> &#8212; the price of the maker having to hold excess positions.</p></li><li><p><strong>Adverse selection</strong> &#8212; the cost of the maker being picked off by more informed players.</p></li></ul><p>In modern markets, adverse selection accounts for 50-80% of the spread. The other two have been compressed by technology &#8212; exchanges run leaner, settlement is cheaper, processing is automated. What is left is the cost of the maker not knowing who you are. So you are paying the cost of what the market maker has to defend against. Namely, their inability to identify you, or any other market participant.</p><h3>How Adverse Selection reaches all</h3><p>Adverse selection affects both limit orders and market orders. A market order surrenders price for timing. A limit order surrenders timing for price. The trade-off sounds straightforward.</p><p>Most developers I&#8217;ve watched come at this from the wrong angle. They treat the order-type choice as a tactical question &#8212; limit if there&#8217;s time, market if there isn&#8217;t. The realization takes a while: the choice doesn&#8217;t decide whether you pay the spread. It decides how the spread comes back for you.</p><p>The market order&#8217;s timing guarantee in particular deserves more scrutiny than it usually gets. It assumes what you see as the market price is not a mirage. That the price won&#8217;t move significantly by the time you hit the market. That this instrument&#8217;s volatility is within the range you expect on the micro time scales. That is a bigger bet than it appears, which is why most professional and systematic trade designers rarely use full market orders. They use marketable limit orders when they need to be the aggressor.</p><p>The deeper observation is that adverse selection affects both order types &#8212; through different delivery mechanisms.</p><p><strong>On a limit order</strong>, you are the one quoting a price. You get filled when someone hits your bid or lifts your offer. But who chooses to hit you? I have some bad news and more bad news. Most likely it will be an informed trader. That means you lose. Assume instead that it is incidentally an uninformed trader that wants to dip their paw into the book while you are there. Do you think the market maker &#8212; with state-of-the-art infrastructure, fee structure, incentives, and near-perfect microstructure algorithms &#8212; will let you lead the queue to face the uninformed player?</p><p><strong>On a market order</strong>, you are the one crossing the spread to demand execution. The maker moves their price to protect against informedness. They have to &#8212; that is their function. You are bundled in so the cost lands on your fill price, and you call it slippage. When there isn&#8217;t much slippage, well, it was just too obvious for them that you were not informed to begin with: they are happy to make money off you.</p><h3>No free order type</h3><p>The common framing that <em>limit orders capture the spread</em> and <em>market orders pay the spread</em> is simply untrue. Limit orders do not avoid the cost. They transmute it. The spread you didn&#8217;t pay shows up as adverse fill selection. The trade-off between price certainty and timing certainty simply becomes: which form of adverse selection you choose to bear.</p><p>If you haven&#8217;t ever done the exercise to check all-passive (limit) versus all-aggressor (market) PnL for several trading hours, I highly suggest you do it for any market or instrument. What you find will surprise you and make you understand the point viscerally: sometimes the aggressors out-trade the limits, sometimes the other way around. There is no consistency. No determinism.</p><p>This matters to you. It sure matters for your strategy. If your signal has urgency, the slower fill rate of limit orders will likely erode it. If you think you can operate without urgency, posting limits could be profitable &#8212; but be sure to check your assumptions about infrastructure, costs, and latency, because your competitors are of the most sophisticated type. And overall, if your signal is genuinely informed &#8212; predictive of near-term price movement &#8212; both order types will cost you, just differently.</p><p>Understanding which form of adverse selection your strategy is exposed to, and navigating that interaction deliberately, is paramount if you want to succeed and be consistent in trading.</p><p>In the next piece I will turn to a related practitioner discussion &#8212; the notion of a good trade and a bad trade, why I used to push back on it, and what changed my mind.</p><div><hr></div><h4>Recommended Reading</h4><p>Akerlof, G. A. (1970). <em>The Market for &#8220;Lemons&#8221;: Quality Uncertainty and the Market Mechanism.</em> Quarterly Journal of Economics, 84(3), 488-500.</p><p>Stoll, H. R. (1978). <em>The Supply of Dealer Services in Securities Markets.</em> Journal of Finance, 33(4), 1133-1151.</p><p>Copeland, T. E., &amp; Galai, D. (1983). <em>Information Effects on the Bid-Ask Spread.</em> Journal of Finance, 38(5), 1457-1469.</p><p>Glosten, L. R., &amp; Milgrom, P. R. (1985). <em>Bid, Ask and Transaction Prices in a Specialist Market with Heterogeneously Informed Traders.</em> Journal of Financial Economics, 14(1), 71-100.</p><p>Huang, R. D., &amp; Stoll, H. R. (1997). <em>The Components of the Bid-Ask Spread: A General Approach.</em> Review of Financial Studies, 10(4), 995-1034.</p><p>Hendershott, T., Jones, C. M., &amp; Menkveld, A. J. (2011). <em>Does Algorithmic Trading Improve Liquidity?</em> Journal of Finance, 66(1), 1-33.</p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>Thirty-one years of lemons had been sold by the time Akerlof received the Nobel Prize in 2001 for this work and related contributions</p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[The Hand of the Maker]]></title><description><![CDATA[What &#8220;informed&#8221; and &#8220;uninformed&#8221; actually mean in practice]]></description><link>https://www.tradingreality.com/p/the-hand-of-the-maker</link><guid isPermaLink="false">https://www.tradingreality.com/p/the-hand-of-the-maker</guid><dc:creator><![CDATA[Tibor S]]></dc:creator><pubDate>Fri, 08 May 2026 19:31:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!zL8A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f84d9bc-0efd-4040-bfbf-9fc5e2e0d162_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zL8A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f84d9bc-0efd-4040-bfbf-9fc5e2e0d162_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zL8A!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f84d9bc-0efd-4040-bfbf-9fc5e2e0d162_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!zL8A!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f84d9bc-0efd-4040-bfbf-9fc5e2e0d162_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!zL8A!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f84d9bc-0efd-4040-bfbf-9fc5e2e0d162_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!zL8A!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f84d9bc-0efd-4040-bfbf-9fc5e2e0d162_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zL8A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f84d9bc-0efd-4040-bfbf-9fc5e2e0d162_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2f84d9bc-0efd-4040-bfbf-9fc5e2e0d162_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2822993,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.tradingreality.com/i/196939633?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f84d9bc-0efd-4040-bfbf-9fc5e2e0d162_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!zL8A!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f84d9bc-0efd-4040-bfbf-9fc5e2e0d162_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!zL8A!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f84d9bc-0efd-4040-bfbf-9fc5e2e0d162_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!zL8A!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f84d9bc-0efd-4040-bfbf-9fc5e2e0d162_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!zL8A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f84d9bc-0efd-4040-bfbf-9fc5e2e0d162_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>If you want to make it in trading &#8212; and in building trading systems in particular &#8212; the most important concepts to understand are not trends and reversals, not breakouts and fakeouts, not regime detection and volatility clustering. The single most important set of concepts revolves around market participant behavior. But not in the naive sense of trading psychology, which is a form of hype that circulates mostly in non-professional circles. What matters is the structural makeup of market participants, and how that structure changes.</p><p>There is little value in obsessing about the fear and resulting actions a retail trader goes through upon detecting a pattern, when retail traders make up a minuscule percentage of the market anyway &#8212; and even that portion is diluted by stacking on top of some larger player who has already purchased the flow from the Robinhoods of this world.</p><p>In the last piece I closed with the question of why good signals have a front-loaded shape. The answer starts with who is on the other side of those signals &#8212; and that is where this piece picks up.</p><p>Let&#8217;s focus on two participant categories whose implications cannot be overstated: they will determine how you trade, how much you trade, what you can trade, and when you trade. Many readers will be familiar with informed and uninformed traders. Few realize that informedness only makes sense relative to a third participant &#8212; the market maker. So that is where we have to start.</p><h3>Market making, in practice</h3><p>In the early 2000s I was CTO/COO of an HFT shop that did what we called <em>5-5 for years</em> (a tongue-in-cheek nod to hedge fund fee structure). With a headcount of just five people, we matched 5% of Nasdaq OTC volume. As part of the incessant pursuit to chisel away unit costs, we had a seat at the exchange, were a registered market maker, and were a self-clearing broker-dealer.</p><p>Without getting into the distinction between designated and primary status, registered market makers are required to quote two-sided continuously during regular trading hours, within a defined band of the National Best Bid and Offer. The point is that being more than just an Electronic Liquidity Provider &#8212; quoting voluntarily, withdrawing when unprofitable &#8212; came with obligations, and those obligations came with allowances. The rules differ slightly for options, but the concept is the same.</p><p>One point worth emphasizing because it tends to be missed: a market maker is not obligated to always sit at the inside bid and ask. They are required to quote a certain percentage of the time and within a defined band of the prevailing best bid/ask. They are designated as providing liquidity, which is itself considered a service. That liquidity is not a guarantee, and market makers compete with all other participants for profit. They are neither the villain of the market story nor a benevolent provider of public good &#8212; just another competing participant.</p><p>So why spend this much time on market makers if what we want to focus on is informed and uninformed traders? Because informedness is defined relative to the market maker. Not as a pure concept. As a structural relation. And as I will show, the distinction between informed and uninformed is not an incidental property of who happens to be in the market. It is not a &#8220;designation&#8221; of who is smart and who isn&#8217;t. It is a structural and unavoidable feature of how markets operate.</p><h3>A flash history of informedness</h3><p>The distinction between informed and uninformed traders has been discussed since at least 1971, when Bagehot &#8212; the pseudonymous Jack Treynor &#8212; framed market making as a contest between liquidity providers and traders with superior information. The formal academic framework arrived with Kyle (1985) and Glosten-Milgrom (1985). What this body of work established is that the distinction is structural, not behavioral. It is integral to how markets operate, not an incidental fact about who happens to be trading on a given day.</p><p>Your intuition that a big institution&#8217;s block trade, or a super-pod order from the Millenniums and Citadels of the world, would be termed informed &#8212; while a retail order is uninformed &#8212; is not really the correct distinction according to this framing. And yet, this remains a valid way to think about informedness. At least as a starting point. Size enters the story too: Kyle&#8217;s 1985 model is built on the idea that informed traders strategically choose how aggressively to trade because their order size and timing leak information to the market. The bigger the trade, the more the maker can infer, the more the price moves before the trade completes. Size is not what defines informedness, but it is one of the signatures by which informedness gets detected. At our HFT shop we ran algorithms tuned specifically to detect block trades hiding behind VWAP/TWAP slicing &#8212; the size signal worked in both directions.</p><h3>The Uninformed come to the rescue</h3><p>The above intuition breaks down when you push it further, however. What if all the retail-like flow disappeared, one might ask &#8212; and you can argue this is already partially the case given the retail order flow business operating upstream of public venues. Would the markets become more efficient? Would informed-on-informed be the new reality?</p><p>No, and the reason is structural. Uninformed flow isn't just the contrast that defines informedness &#8212; it's what makes the market work. The literature is precise on this: Black (1986) called noise traders necessary, and the no-trade theorem (Milgrom and Stokey, 1982) shows why. If everyone were rational and informed, the fact that someone wants to trade with you would tell you they think they have an edge &#8212; so you should refuse. Markets seize up. Liquidity disappears. I saw this at the HFT in the small: we refused to trade with players whose cancel/replace patterns suggested they were reading the same signals we were. The theorem isn't abstract &#8212; it's how a desk actually operates when it suspects the other side knows what it knows.</p><p>Noise traders break the deadlock. Their flow has no information in it, which gives informed traders something to trade against and lets prices catch up to reality. The uninformed lose on average. That&#8217;s the cost of having a market at all. It is this informational asymmetry that makes the price tick.</p><h3>Definition. Please.</h3><p>It is dead simple. If the Market Maker loses when trading against you, you are informed. If they make money, you are uninformed. Don't try to beat the market. Beat the Market Maker first.</p><h3>He who Makes the vocabulary</h3><p>The language has evolved. From 1971 to today the terms have drifted: uninformed became noise trader, informed became toxic flow. Notice how the names have become pejorative for both groups. Uninformed flow used to be a structural necessity; now it's noise. Informed flow used to be the trader earning a return on their information; now it's toxic.</p><p>The vocabulary tells you whose seat at the table got the loudest voice. That seat belongs to the third participant we have been circling: the Market Maker.</p><p>Some readers will recognize toxic order flow from a different marketplace than this piece centers on: CFDs. Colloquially called FX. Liquidity providers in that business throw the term around a lot, especially when they want to upcharge or restrict access. This is no coincidence. Informed, uninformed traders and market makers are not exclusive to centralized markets. They are emergent features of any market where someone quotes both sides. The vocabulary ports because the structure does.</p><h3>Why this matters for trading systems</h3><p>Some of the cleanest, most reliable strategies I have worked on were ones we eventually traced back to a specific class of participants doing a specific thing. The strategies we couldn't trace? Those went away first. Half-life detection is great, but it's only a "half-solution".</p><p>Every trading system makes assumptions about participant mix, whether the developer knows it or not. The strategy that worked in backtest assumed a certain composition of flow. The execution model that produced a clean equity curve assumed a certain receptivity from the makers on the other side. When the mix changes &#8212; and it does, regularly &#8212; the assumptions degrade. Quietly.</p><p>You can build trading systems without thinking this way. Plenty of people do. But if you arrive at a persistent edge without ever asking whose behavior this is exploiting, you have most likely found a participant-structural pattern without knowing it. Which means when it goes away &#8212; and it will &#8212; you won't know why.</p><p>Adverse selection is one of the mechanisms that turns participant structure into the actual cost of trading. And it defines the spread. Now we can explore it substantively, and that is what my next piece will do. And with this we add very important concepts to our toolkit &#8212; ones that will survive any trend, strategy, and possibly even you and me.</p><div><hr></div><h4>References</h4><p>Bagehot, W. [Treynor, J.] (1971). <em>The Only Game in Town.</em> Financial Analysts Journal, 27(2), 12-14.</p><p>Milgrom, P., &amp; Stokey, N. (1982). <em>Information, Trade and Common Knowledge.</em> Journal of Economic Theory, 26(1), 17-27.</p><p>Black, F. (1986). <em>Noise.</em> Journal of Finance, 41(3), 528-543.</p><h4>Further reading</h4><p>De Long, J. B., Shleifer, A., Summers, L. H., &amp; Waldmann, R. J. (1990). <em>Noise Trader Risk in Financial Markets.</em> Journal of Political Economy, 98(4), 703-738.</p><p>Easley, D., Kiefer, N. M., O&#8217;Hara, M., &amp; Paperman, J. B. (1996). <em>Liquidity, Information, and Infrequently Traded Stocks.</em>Journal of Finance, 51(4), 1405-1436.</p><p>Easley, D., L&#243;pez de Prado, M., &amp; O&#8217;Hara, M. (2012). <em>Flow Toxicity and Liquidity in a High-Frequency World.</em> Review of Financial Studies, 25(5), 1457-1493.</p>]]></content:encoded></item><item><title><![CDATA[Front-loaded Value in Trading]]></title><description><![CDATA[The surprisingly consistent shape of a good signal]]></description><link>https://www.tradingreality.com/p/front-loaded-value-in-trading</link><guid isPermaLink="false">https://www.tradingreality.com/p/front-loaded-value-in-trading</guid><dc:creator><![CDATA[Tibor S]]></dc:creator><pubDate>Fri, 01 May 2026 09:40:24 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!i2-7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaac9b89-fb1d-43ba-91f2-56fe4f720279_1607x790.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Good trades realize most of their value early in the holding period; bad trades do not. And early doesn&#8217;t scale with the holding period.</p><p>I have seen this across trading systems, in the widest range of assets and markets. The implications should make you pause. Pause. Repeat: bad trades have no shape. Good trades have a specific one. This affects everything &#8212; signal discovery, sizing, exits, and your ultimate PnL touchpoint: Executions.</p><h2>A recap</h2><p>In my previous post I took you through my Quant Room struggles to convey how executions rewrite strategy results completely, and how often I had to go through the same exercise. To gather the data, build the argument, confront the enthusiasm of a Strategy Builder with facts on the ground. The same facts.</p><p>It took dozens of cumulative samples before I started to wonder. The effect could not be explained by a combination of spread, commission, and slippage costs plus the core statistical mechanics. It wasn&#8217;t cost of execution. It was the shape of the value when the signal was the right one.</p><h2>The shape</h2><p>The first time I started to suspect was when I had to do the same exercise back-to-back-to-back, reviewing five very different strategies within two days. Momentum. European equities. Spot and FX futures with a carry component. A dollar-neutral US stocks portfolio. Medium-frequency day trading. They should have had nothing to do with each other. But my analyses from the previous four were still on my desk. The sheets were still on the Desktop. I could not unsee it. It was glaring at me.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!i2-7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaac9b89-fb1d-43ba-91f2-56fe4f720279_1607x790.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!i2-7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaac9b89-fb1d-43ba-91f2-56fe4f720279_1607x790.heic 424w, https://substackcdn.com/image/fetch/$s_!i2-7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaac9b89-fb1d-43ba-91f2-56fe4f720279_1607x790.heic 848w, https://substackcdn.com/image/fetch/$s_!i2-7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaac9b89-fb1d-43ba-91f2-56fe4f720279_1607x790.heic 1272w, https://substackcdn.com/image/fetch/$s_!i2-7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaac9b89-fb1d-43ba-91f2-56fe4f720279_1607x790.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!i2-7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaac9b89-fb1d-43ba-91f2-56fe4f720279_1607x790.heic" width="1456" height="716" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aaac9b89-fb1d-43ba-91f2-56fe4f720279_1607x790.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:716,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:37962,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://tradingreality.substack.com/i/196094237?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaac9b89-fb1d-43ba-91f2-56fe4f720279_1607x790.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!i2-7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaac9b89-fb1d-43ba-91f2-56fe4f720279_1607x790.heic 424w, https://substackcdn.com/image/fetch/$s_!i2-7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaac9b89-fb1d-43ba-91f2-56fe4f720279_1607x790.heic 848w, https://substackcdn.com/image/fetch/$s_!i2-7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaac9b89-fb1d-43ba-91f2-56fe4f720279_1607x790.heic 1272w, https://substackcdn.com/image/fetch/$s_!i2-7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaac9b89-fb1d-43ba-91f2-56fe4f720279_1607x790.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In good signals, the extractable value rises sharply from entry and is mostly realized in the first part of the holding period. The initial jump is sudden, followed by a plateau or modest decay.</p><p>This shape is the cumulative average across the system&#8217;s good trades, not any individual trade. Yet the same shape surfaced again and again across the systems, in their positive-outcome trades. Regime and asset class adjust the exact shape, but not the pattern.</p><p>Bad trades, on the other hand, wander, bleed, spike, and revert. The more you accumulate, the more distinct the pattern appears compared to good signals.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4PkL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01071d90-02e1-4eee-b9a4-78990341176a_1607x790.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4PkL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01071d90-02e1-4eee-b9a4-78990341176a_1607x790.heic 424w, https://substackcdn.com/image/fetch/$s_!4PkL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01071d90-02e1-4eee-b9a4-78990341176a_1607x790.heic 848w, https://substackcdn.com/image/fetch/$s_!4PkL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01071d90-02e1-4eee-b9a4-78990341176a_1607x790.heic 1272w, https://substackcdn.com/image/fetch/$s_!4PkL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01071d90-02e1-4eee-b9a4-78990341176a_1607x790.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4PkL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01071d90-02e1-4eee-b9a4-78990341176a_1607x790.heic" width="1456" height="716" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/01071d90-02e1-4eee-b9a4-78990341176a_1607x790.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:716,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:136712,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://tradingreality.substack.com/i/196094237?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01071d90-02e1-4eee-b9a4-78990341176a_1607x790.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4PkL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01071d90-02e1-4eee-b9a4-78990341176a_1607x790.heic 424w, https://substackcdn.com/image/fetch/$s_!4PkL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01071d90-02e1-4eee-b9a4-78990341176a_1607x790.heic 848w, https://substackcdn.com/image/fetch/$s_!4PkL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01071d90-02e1-4eee-b9a4-78990341176a_1607x790.heic 1272w, https://substackcdn.com/image/fetch/$s_!4PkL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01071d90-02e1-4eee-b9a4-78990341176a_1607x790.heic 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>So being front-loaded is a feature. It itself is a diagnostic about the quality of the trade.</p><p>One caveat: this is a post-event observation. The shape only emerges in retrospect, which limits its direct use in real-time signal generation. And to be clear about what I&#8217;m describing &#8212; the front-loading is <em>disproportionate</em>, not absolute. There is real value in the rest of the holding period; you can&#8217;t just cut early and assume the trade is done. What you can say is that the early window carries more of the value than its share of the holding period would suggest.</p><p>For a long time I had the observation without the implication. I knew the shape was there; I didn&#8217;t yet see what it meant for the rest of the strategy. That came later, and it came through analysis.</p><h2>Why this matters for execution</h2><p>A two-day holding period trade may have most of its value accrue in the first few hours. But importantly, a disproportionate fraction of that will be packed into the very first minutes. Counterintuitive, but a logical consequence of the pattern described &#8212; the same disproportionality recurses within the early window itself.</p><h3>Slippage and timing</h3><p>This reframes what slippage actually is.</p><p>The traditional view treats it as a uniform tax on returns, a few basis points subtracted from the edge regardless of when in the trade they&#8217;re paid. Under the front-loaded shape, that view is wrong. Slippage is an edge-dampener, and the path it dampens is the good-signal path. The same basis points cost more when paid in the window where the value is concentrated.</p><p>Timing the entry becomes impactful for any strategy. A late entry isn&#8217;t just a delayed entry &#8212; it&#8217;s a different trade. The shape has begun without you. What is left to capture is the reduced part of the curve, while the fixed costs and the bad trades continue to drag you down at full strength.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CdTN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c30a3f-1a8d-4693-8ff2-4e8eb390911b_2411x789.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CdTN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c30a3f-1a8d-4693-8ff2-4e8eb390911b_2411x789.heic 424w, https://substackcdn.com/image/fetch/$s_!CdTN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c30a3f-1a8d-4693-8ff2-4e8eb390911b_2411x789.heic 848w, https://substackcdn.com/image/fetch/$s_!CdTN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c30a3f-1a8d-4693-8ff2-4e8eb390911b_2411x789.heic 1272w, https://substackcdn.com/image/fetch/$s_!CdTN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c30a3f-1a8d-4693-8ff2-4e8eb390911b_2411x789.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CdTN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c30a3f-1a8d-4693-8ff2-4e8eb390911b_2411x789.heic" width="1456" height="476" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e6c30a3f-1a8d-4693-8ff2-4e8eb390911b_2411x789.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:476,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:63873,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://tradingreality.substack.com/i/196094237?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c30a3f-1a8d-4693-8ff2-4e8eb390911b_2411x789.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CdTN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c30a3f-1a8d-4693-8ff2-4e8eb390911b_2411x789.heic 424w, https://substackcdn.com/image/fetch/$s_!CdTN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c30a3f-1a8d-4693-8ff2-4e8eb390911b_2411x789.heic 848w, https://substackcdn.com/image/fetch/$s_!CdTN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c30a3f-1a8d-4693-8ff2-4e8eb390911b_2411x789.heic 1272w, https://substackcdn.com/image/fetch/$s_!CdTN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c30a3f-1a8d-4693-8ff2-4e8eb390911b_2411x789.heic 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is why <a href="https://open.substack.com/pub/tradingreality/p/execution-is-the-strategy?r=2un0c3&amp;utm_campaign=post&amp;utm_medium=web">post #1</a>&#8217;s claim that execution rewrites strategy results isn&#8217;t a marginal-cost story. It&#8217;s a shape-of-alpha story.</p><h2>A note on what this isn&#8217;t</h2><p>I want to clarify this has not been derived from first principles, nor is it a claim that this will consistently repeat for all asset classes in all markets, now and in the future. The mechanism &#8212; fast information assimilation, real edges being narrow in time, the difference between a real signal and one that&#8217;s mostly noise &#8212; is suggestive but underdetermined. These are observations, and empirical assertions.</p><p>So this is not an academic claim, even as the related literature has been documenting related shapes &#8212; particularly in how price impact decays after large orders &#8212; for decades. Even as analysis of informed and uninformed market participants has led to convergent conclusions (more on this later). What I would like to offer is the trader-side mirror of those observations, framed in a way practitioners can use.</p><p>For readers who want to go deeper into the underlying market mechanics from the academic perspective, here are the foundational papers and a few accessible follow-ups I would recommend (skip if short on time):</p><h3>Recommended reading</h3><p>Kyle, A. S. (1985). <em>Continuous Auctions and Insider Trading.</em> Econometrica, 53(6), 1315&#8211;1335. The foundational paper on how information enters prices.</p><p>Glosten, L. R., &amp; Milgrom, P. R. (1985). <em>Bid, Ask and Transaction Prices in a Specialist Market with Heterogeneously Informed Traders.</em> Journal of Financial Economics, 14(1), 71&#8211;100. The companion 1985 paper, on adverse selection.</p><p>Hasbrouck, J. (1991). <em>Measuring the Information Content of Stock Trades.</em> Journal of Finance, 46(1), 179&#8211;207. Empirical foundation for permanent vs. transient impact.</p><p>Almgren, R., &amp; Chriss, N. (2000). <em>Optimal Execution of Portfolio Transactions.</em> Journal of Risk, 3(2), 5&#8211;39. The execution-scheduling literature&#8217;s anchor.</p><p>Bouchaud, J.-P., Farmer, J. D., &amp; Lillo, F. (2009). <em>How Markets Slowly Digest Changes in Supply and Demand.</em> In T. Hens &amp; K. R. Schenk-Hopp&#233; (Eds.), Handbook of Financial Markets: Dynamics and Evolution (pp. 57&#8211;160). North-Holland (Elsevier). Review of market impact and order flow dynamics.</p><h2>The question</h2><p>There is a question that we have been brushing against without pinning it. Why does this shape exist? Why does information get absorbed in a way that front-loads the value? Why front-loaded for good signals and not for bad ones?</p><p>The answer lives in the domain of market participants and information availability. Information becomes available to all or to a few in waves &#8212; waves that are difficult to conceal for long. It is the sudden availability of this information that underpins the effect we described so far.</p><p>The market participants who are in on it and those who only see the effects after the fact play a different role in price discovery.</p><p>This is exactly the topic of my next piece: the informed and uninformed traders, and how their interaction determines most of the market mechanics relevant to a trading system developer.</p>]]></content:encoded></item><item><title><![CDATA[Execution IS the Strategy]]></title><description><![CDATA[Why your best-looking fills should worry you the most]]></description><link>https://www.tradingreality.com/p/execution-is-the-strategy</link><guid isPermaLink="false">https://www.tradingreality.com/p/execution-is-the-strategy</guid><dc:creator><![CDATA[Tibor S]]></dc:creator><pubDate>Mon, 27 Apr 2026 21:14:24 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!7uzn!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ab2beb1-7949-4463-aec2-05427b6adb3e_1254x1254.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Most trading strategies do not fail because of signal quality. They fail because execution is treated as an implementation detail.</p><p>In this article I want to show how true that is &#8212; not by listing everything that can go wrong, but by pointing to the few things that consistently matter.</p><h2>A most human trading-exec anecdote</h2><p>When I was hired as an Executions Specialist at a multi-billion dollar hedge fund, I used to sit &#8212; politely, patiently &#8212; through meetings and presentations from quants and portfolio managers. It would quite often play out the same way.</p><p>They would present their stellar performance charts, methods, equations, market references &#8212; everything you would expect. These were serious people. Ivy League PhDs, experienced PMs, people who had clearly put in the work.</p><p>At some point I would ask a simple question:</p><p><em>&#8220;May I ask what the execution assumptions were?&#8221;</em></p><p>Almost without fail, something would shift in the room.</p><p><em>&#8220;We don&#8217;t care about execution &#8212; we have average holding times of 2 full days and above!&#8221;</em></p><p>You could hear the resounding irritation. So I learned not to push it in the room.</p><p>I would wait for the meeting to finish, then ask for a private conversation. Same question, this time without the audience. Polite, dry: gather the data.</p><p>Then I would go back, collate the information, and do the work &#8212; sit there, shut everything else out, run the analysis properly, knowing already that this might not go well. I had my intuition, and my internal statistics. Then another private conversation. Because the result was rarely subtle.</p><p>Sharpe ratios north of 4 would drop to around 1.2 under optimistic assumptions. Under more conservative ones, the strategy would simply bleed. The clearest case I remember was a cross-asset carry, EUR-pegged &#8212; and it was very much not the only one.</p><p>And this was NOT high-frequency trading. But: Multi-day holding periods. Highly liquid instruments. Top-tier market access. Competitive commissions.</p><p>And still &#8212; execution didn&#8217;t just &#8220;adjust&#8221; the result.</p><p>It rewrote it.</p><h2>Where things break</h2><p>Most systematic trading strategies follow a familiar path: signal discovery, backtesting, deployment. Execution is either assumed, simplified, or treated as neutral. This is where things start to break.</p><p>Slippage &#8212; if it is considered at all &#8212; is often treated as a fixed adjustment. A number. A parameter. But it is not. It is variable. Context-dependent. State-dependent.</p><p>And this leads to the first structural trap.</p><h3>Trap #1 &#8212; The better the signal, the harder it is to execute consistently</h3><p>There is a counterintuitive truth about fills that most people miss: <em>a good trade is contested. </em>Informed traders on the other side of a real edge will not let you in cheaply. A bad trade is often uncontested &#8212; the book gives way, slippage is small, you fill at touch.</p><p>Which means cheap, easy fills should make you question your signal. Slipped, partial fills, adverse selection &#8212; the things that feel like the market punishing you &#8212; are often the market confirming that something is actually there.</p><p>There is a structural reinforcement of the same effect: strong signals also tend to appear in transitional regimes &#8212; news, dislocations, crowded inventory &#8212; where spreads widen and execution gets worse for everyone. But the cleaner version of the trap is simply that good fills correlate with poor trade quality.</p><p>What is assumed to be independent &#8212; signal and execution &#8212; is not. They interact. And that interaction is rarely in your favor.</p><p><em>This is the first of several traps I&#8217;ll be writing about. Subsequent posts will cover risk-layer distortion, the market-selection trap, and the one nobody wants to hear about: the cost of being right.</em></p><h2>Execution and risk</h2><p>An experienced trader will place a lot of emphasis on risk. But if execution assumptions are wrong, the entire risk layer is distorted. Entry is not where you think it is. Exit is not where you think it is. Drawdowns are not what you modeled.</p><p>The problem is not just that execution adds cost. It is that it quietly reshapes your risk profile &#8212; sometimes by hurting you, and sometimes by helping you for the wrong reasons.</p><p>Here is a real one: A single tick of slippage caused a missed exit. The position stayed on. The next entry &#8212; one that should never have fired if the exit had triggered correctly &#8212; missed a big winner. The rest you can imagine. Double the drawdown, strategy abandoned, and my post-humous analysis revealing the real drift. This happened not to one but to a dozen different trading systems I was tasked with overseeing. So as a trader you need to be ready, firm and honest.</p><h2>What execution actually is</h2><p>Execution is much more than most people think. It is not just slippage. It is not just the trading platform. It is the market you chose, the venue, the latency, the commissions, the placement, the size of the order, the available liquidity, the competition for the same trade.</p><p>In one word: <strong>Reality</strong>.</p><p>Take &#8220;trading gold&#8221; &#8212; a useful example, because it sounds like a single thing and isn&#8217;t. Gold futures, micro futures, OTC, CFD products &#8212; each has a different book, a different liquidity profile, a different microstructure, and even different price behavior. They are not interchangeable. And execution is where that difference shows up first &#8212; usually painfully, and usually after you have already committed.</p><h2>Why it gets ignored</h2><p>Execution is unsexy. It&#8217;s often treated like the last administrative step &#8212; the final turn before you &#8220;get your license&#8221; to trade.</p><p>But it&#8217;s not a formality. It&#8217;s a traffic light. It should tell you green, yellow, or red. And in practice, it should very often tell you: <em>No.</em></p><p>That &#8220;No&#8221; is not a failure. It is information.</p><h2>Implications</h2><p>Execution is market selection. It is cost. It is timing. It is not a layer on top of the strategy &#8212; it is part of the strategy. It feeds directly into risk. It operates at the level of micro, even nano-level details. And those details accumulate.</p><p>If you have a great &#8220;strategy,&#8221; you may have signal. You may even be 10&#8211;40% of the way there, depending on what you&#8217;re doing. But that&#8217;s not the end. And it shouldn&#8217;t feel like the end.</p><p>A red light from execution is often the most valuable answer you can get. It means either:</p><ul><li><p>you are onto something real but not yet implementable,</p></li><li><p>or you have been disciplined enough to hit a wall <em>before</em> carving a hole in your wallet.</p></li></ul><h2>Closing</h2><p>Years later, I still think back to those private conversations after the meetings. The walk back to the desk. The dry presentation of numbers that nobody had asked for. A Sharpe of 4 becoming a Sharpe of 1.2, then sometimes a flat line.</p><p>Without execution, a strategy is just a thesis. With execution, it becomes either a position or a lesson.</p><p>Execution is not downstream of the strategy.</p><p>It is where the strategy actually becomes real.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.tradingreality.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption"><em>If this was useful, you can subscribe.</em></p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>