<?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>Thu, 20 Aug 2026 15:25:10 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[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"><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"><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"><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"><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"><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"><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"><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"><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"><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"><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"><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"><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"><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"><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"><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"><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"><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"><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"><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"><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"><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"><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"><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"><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"><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"><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"><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"><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_!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>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_!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>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"><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"><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"><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"><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"><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"><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"><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"><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"><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"><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"><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"><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>