<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" >

<channel><title><![CDATA[Trading Time Machine - Time Machine Blog]]></title><link><![CDATA[https://www.tradingtimemachine.com/time-machine-blog]]></link><description><![CDATA[Time Machine Blog]]></description><pubDate>Tue, 18 Aug 2026 16:13:07 -0400</pubDate><generator>Weebly</generator><item><title><![CDATA[Demystifying Quant Trading with AI: A Guide for Newer Coders]]></title><link><![CDATA[https://www.tradingtimemachine.com/time-machine-blog/demystifying-quant-trading-with-ai-a-guide-for-newer-coders5639011]]></link><comments><![CDATA[https://www.tradingtimemachine.com/time-machine-blog/demystifying-quant-trading-with-ai-a-guide-for-newer-coders5639011#comments]]></comments><pubDate>Sun, 09 Aug 2026 09:40:15 GMT</pubDate><category><![CDATA[Uncategorized]]></category><guid isPermaLink="false">https://www.tradingtimemachine.com/time-machine-blog/demystifying-quant-trading-with-ai-a-guide-for-newer-coders5639011</guid><description><![CDATA[Welcome back! If you are new to AI coding tools like ChatGPT, Claude, or GitHub Copilot, you might be wondering how to apply them to real-world problems. One of the most fascinating areas you can explore is quantitative finance and the development of mechanical trading systems. Today, we are going to look at how AI is transforming the way developers build trading signals, often called “alphas.”We will keep the math light and focus on how you can use these concepts to sharpen your AI coding s [...] ]]></description><content:encoded><![CDATA[<div><div id="114915450779100368" align="left" style="width: 100%; overflow-y: hidden;" class="wcustomhtml"><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Iox2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd387e273-edad-465a-92a5-3da236613232_2752x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><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-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>Welcome back! If you are new to AI coding tools like ChatGPT, Claude, or GitHub Copilot, you might be wondering how to apply them to real-world problems. One of the most fascinating areas you can explore is quantitative finance and the development of mechanical trading systems. Today, we are going to look at how AI is transforming the way developers build trading signals, often called &ldquo;alphas.&rdquo;</p><p>We will keep the math light and focus on how you can use these concepts to sharpen your AI coding skills.</p><div class="subscription-widget-wrap-editor" data-attrs='{"url":"https://backtest.substack.com/subscribe?","text":"Subscribe","language":"en"}' data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Trading Time Machine! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" 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><h3>Where Do These Alphas Come From?</h3><p><span>Before we dive into the code, it helps to understand the origin of the &ldquo;101 Alphas.&rdquo; These signals were popularized by</span> <a href="https://www.worldquant.com/"><span>WorldQuant, a global quantitative asset management firm</span></a><span>. The explicit formulas and computer code for these 101 real-life quantitative trading alphas were detailed in a well-known research document,</span> <strong><a href="https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2701346"><span>101 Formulaic Alphas</span></a></strong><span>. These were not just theoretical exercises; they were proprietary signals used in production by WorldQuant. By making these formulas public, the firm gave researchers and developers a clear glimpse into what some of the simpler, real-life alphas look like.</span></p><h3>What exactly is an &ldquo;Alpha&rdquo;?</h3><p><span>In quantitative trading, an alpha is simply a mathematical expression or computer code used to predict future movements of financial instruments. To give you a sense of their speed and how they operate, the average holding period for these specific WorldQuant alphas approximately ranges from 0.6 to 6.4 days.</span></p><h3>How AI Coding Tools Change the Game</h3><p>Historically, discovering these profitable trading strategies was a highly manual and labor-intensive process. Analysts had to brainstorm ideas, write the code, and backtest everything by hand.</p><p><span>Now, AI is stepping in to automate this. The research paper</span> <strong><a href="https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2701346"><span>101 Formulaic Alphas</span></a></strong> <span>proposes an automated framework that leverages large language models to systematically generate, refine, and evaluate trading alpha strategies. By using a multi-agent system, AI can essentially talk to itself to write better code.</span></p><p>Here is how the AI workflow breaks down:</p><ul><li><p><strong><span>The Writer</span></strong><span>: A specific AI agent (the WriterAgent) generates the initial alpha code based on a text prompt.</span></p></li><li><p><strong><span>The Judge</span></strong><span>: Another AI agent (the JudgeAgent) evaluates the generated code for correctness and logical soundness.</span></p></li><li><p><strong><span>The Backtester</span></strong><span>: A BacktestEngine validates the refined candidate code on historical market data.</span></p></li></ul><h3>Digging In: Your Next Steps</h3><p>If you want to practice using AI coding tools, quantitative trading formulas are a fantastic testbed. You can look at <a href="https://github.com/yli188/WorldQuant_alpha101_code">the open-source Python files</a> to see how formulas are translated into executable Python code using libraries like Pandas and NumPy.</p><p>Here are a few takeaways for newer developers looking to experiment:</p><ul><li><p><strong><span>Start with established baselines</span></strong><span>: You can use the explicit code provided in</span> <strong><span>these open source repositories</span></strong> <span>to replicate and test alphas on historical data.</span></p></li><li><p><strong><span>Use structured knowledge</span></strong><span>: Advanced AI coding frameworks integrate the WorldQuant 101 Formulaic Alphas as a structured knowledge prior to help ground the AI&rsquo;s generation in proven mathematical patterns. You can prompt your own AI tools with these formulas to help it write better code.</span></p></li><li><p><strong><span>Embrace AI roles</span></strong><span>: Multi-agent frameworks separate tasks across specialized roles. You can mimic this by asking your AI tool to first act as a &ldquo;Coder&rdquo; to write your script, and then act as a &ldquo;Reviewer&rdquo; to find bugs in it.</span></p></li></ul><p>By combining foundational trading formulas with modern AI coding assistants, you can rapidly prototype complex data analysis scripts.</p><p>Have a Great Day!</p><p>Dave Johnson</p><p>Quant Developer at</p><p><a href="https://www.tradingtimemachine.com/">TradingTimeMachine.com</a></p><div class="subscription-widget-wrap-editor" data-attrs='{"url":"https://backtest.substack.com/subscribe?","text":"Subscribe","language":"en"}' data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Trading Time Machine! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" 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><br><br>via Trading Time Machine https://ift.tt/mndj4Ui</div></div>]]></content:encoded></item><item><title><![CDATA[Demystifying Quant Trading with AI: A Guide for Newer Coders]]></title><link><![CDATA[https://www.tradingtimemachine.com/time-machine-blog/demystifying-quant-trading-with-ai-a-guide-for-newer-coders]]></link><comments><![CDATA[https://www.tradingtimemachine.com/time-machine-blog/demystifying-quant-trading-with-ai-a-guide-for-newer-coders#comments]]></comments><pubDate>Sun, 09 Aug 2026 09:37:15 GMT</pubDate><category><![CDATA[Uncategorized]]></category><guid isPermaLink="false">https://www.tradingtimemachine.com/time-machine-blog/demystifying-quant-trading-with-ai-a-guide-for-newer-coders</guid><description><![CDATA[Welcome back! If you are new to AI coding tools like ChatGPT, Claude, or GitHub Copilot, you might be wondering how to apply them to real-world problems. One of the most fascinating areas you can explore is quantitative finance and the development of mechanical trading systems. Today, we are going to look at how AI is transforming the way developers build trading signals, often called “alphas.”We will keep the math light and focus on how you can use these concepts to sharpen your AI coding s [...] ]]></description><content:encoded><![CDATA[<div><div id="209258357413944920" align="left" style="width: 100%; overflow-y: hidden;" class="wcustomhtml"><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Iox2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd387e273-edad-465a-92a5-3da236613232_2752x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><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-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>Welcome back! If you are new to AI coding tools like ChatGPT, Claude, or GitHub Copilot, you might be wondering how to apply them to real-world problems. One of the most fascinating areas you can explore is quantitative finance and the development of mechanical trading systems. Today, we are going to look at how AI is transforming the way developers build trading signals, often called &ldquo;alphas.&rdquo;</p><p>We will keep the math light and focus on how you can use these concepts to sharpen your AI coding skills.</p><div class="subscription-widget-wrap-editor" data-attrs='{"url":"https://backtest.substack.com/subscribe?","text":"Subscribe","language":"en"}' data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Trading Time Machine! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" 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><h3>Where Do These Alphas Come From?</h3><p><span>Before we dive into the code, it helps to understand the origin of the &ldquo;101 Alphas.&rdquo; These signals were popularized by</span> <a href="https://www.worldquant.com/"><span>WorldQuant, a global quantitative asset management firm</span></a><span>. The explicit formulas and computer code for these 101 real-life quantitative trading alphas were detailed in a well-known research document,</span> <strong><a href="https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2701346"><span>101 Formulaic Alphas</span></a></strong><span>. These were not just theoretical exercises; they were proprietary signals used in production by WorldQuant. By making these formulas public, the firm gave researchers and developers a clear glimpse into what some of the simpler, real-life alphas look like.</span></p><h3>What exactly is an &ldquo;Alpha&rdquo;?</h3><p><span>In quantitative trading, an alpha is simply a mathematical expression or computer code used to predict future movements of financial instruments. To give you a sense of their speed and how they operate, the average holding period for these specific WorldQuant alphas approximately ranges from 0.6 to 6.4 days.</span></p><h3>How AI Coding Tools Change the Game</h3><p>Historically, discovering these profitable trading strategies was a highly manual and labor-intensive process. Analysts had to brainstorm ideas, write the code, and backtest everything by hand.</p><p><span>Now, AI is stepping in to automate this. The research paper</span> <strong><a href="https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2701346"><span>101 Formulaic Alphas</span></a></strong> <span>proposes an automated framework that leverages large language models to systematically generate, refine, and evaluate trading alpha strategies. By using a multi-agent system, AI can essentially talk to itself to write better code.</span></p><p>Here is how the AI workflow breaks down:</p><ul><li><p><strong><span>The Writer</span></strong><span>: A specific AI agent (the WriterAgent) generates the initial alpha code based on a text prompt.</span></p></li><li><p><strong><span>The Judge</span></strong><span>: Another AI agent (the JudgeAgent) evaluates the generated code for correctness and logical soundness.</span></p></li><li><p><strong><span>The Backtester</span></strong><span>: A BacktestEngine validates the refined candidate code on historical market data.</span></p></li></ul><h3>Digging In: Your Next Steps</h3><p>If you want to practice using AI coding tools, quantitative trading formulas are a fantastic testbed. You can look at <a href="https://github.com/yli188/WorldQuant_alpha101_code">the open-source Python files</a> to see how formulas are translated into executable Python code using libraries like Pandas and NumPy.</p><p>Here are a few takeaways for newer developers looking to experiment:</p><ul><li><p><strong><span>Start with established baselines</span></strong><span>: You can use the explicit code provided in</span> <strong><span>these open source repositories</span></strong> <span>to replicate and test alphas on historical data.</span></p></li><li><p><strong><span>Use structured knowledge</span></strong><span>: Advanced AI coding frameworks integrate the WorldQuant 101 Formulaic Alphas as a structured knowledge prior to help ground the AI&rsquo;s generation in proven mathematical patterns. You can prompt your own AI tools with these formulas to help it write better code.</span></p></li><li><p><strong><span>Embrace AI roles</span></strong><span>: Multi-agent frameworks separate tasks across specialized roles. You can mimic this by asking your AI tool to first act as a &ldquo;Coder&rdquo; to write your script, and then act as a &ldquo;Reviewer&rdquo; to find bugs in it.</span></p></li></ul><p>By combining foundational trading formulas with modern AI coding assistants, you can rapidly prototype complex data analysis scripts.</p><p>Have a Great Day!</p><p>Dave Johnson</p><p>Quant Developer at</p><p><a href="https://www.tradingtimemachine.com/">TradingTimeMachine.com</a></p><div class="subscription-widget-wrap-editor" data-attrs='{"url":"https://backtest.substack.com/subscribe?","text":"Subscribe","language":"en"}' data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Trading Time Machine! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" 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><br><br>Via <a href="https://backtest.substack.com/p/demystifying-quant-trading-with-ai">https://backtest.substack.com/p/demystifying-quant-trading-with-ai</a></div></div>]]></content:encoded></item><item><title><![CDATA[Buying Weakness on the Nasdaq 100: What 1668 Trades Say About a Strategy Nobody Recommends]]></title><link><![CDATA[https://www.tradingtimemachine.com/time-machine-blog/buying-weakness-on-the-nasdaq-100-what-1668-trades-say-about-a-strategy-nobody-recommends6167190]]></link><comments><![CDATA[https://www.tradingtimemachine.com/time-machine-blog/buying-weakness-on-the-nasdaq-100-what-1668-trades-say-about-a-strategy-nobody-recommends6167190#comments]]></comments><pubDate>Thu, 06 Aug 2026 13:25:41 GMT</pubDate><category><![CDATA[Uncategorized]]></category><guid isPermaLink="false">https://www.tradingtimemachine.com/time-machine-blog/buying-weakness-on-the-nasdaq-100-what-1668-trades-say-about-a-strategy-nobody-recommends6167190</guid><description><![CDATA[There is a trade that violates almost everything you have been taught about risk.It buys stocks that are falling. Not stocks that have stopped falling and started to turn, which is what most people mean when they say they buy the dip. It puts a limit order below the low of a stock that just closed weak, and it wants that order filled the next day at a worse price than the one that already looked bad.Thanks for reading Trading Time Machine! Subscribe for free to receive new posts and support my w [...] ]]></description><content:encoded><![CDATA[<div><div id="746807886570334315" align="left" style="width: 100%; overflow-y: hidden;" class="wcustomhtml"><p>There is a trade that violates almost everything you have been taught about risk.</p><p>It buys stocks that are falling. Not stocks that have stopped falling and started to turn, which is what most people mean when they say they buy the dip. It puts a limit order below the low of a stock that just closed weak, and it wants that order filled the next day at a worse price than the one that already looked bad.</p><div class="subscription-widget-wrap-editor" data-attrs='{"url":"https://backtest.substack.com/subscribe?","text":"Subscribe","language":"en"}' data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Trading Time Machine! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" 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><p>It prefers the volatile names. Not the stable ones. It screens the Nasdaq 100 for the top half by average daily range and ignores the calmer stocks entirely.</p><p>It has no stop loss. None. There is no price at which the system decides it was wrong and gets out.</p><p>And the average losing trade is bigger than the average winning trade.</p><p>Four rules. On Nasdaq 100 component stocks over the last ten years it produced a profit factor of 1.69 and an APR of 11.97% against a maximum drawdown of 8.54%.</p><p>Sit on that second pair for a moment. The annual return is larger than the worst peak to trough loss. A Calmar ratio above 1, annual return divided by the deepest drawdown, is rare across the quant space, and rarer still from a single set of rules without combining systems. When you see one, the first thing to do is figure out what is holding it up.</p><p>Those numbers come from sizing at 8% of equity per position with 2x margin available. The margin is not there to lever the account. Average exposure across the ten years is 11.4%, and total margin interest paid was 285 dollars. It is there so the test can take every signal on the rare morning when more of them fire than cash alone can cover. Why that matters is most of the second half of this article.</p><p>Survivorship bias removed. No commissions, and limit orders on both ends so slippage is close to nothing.</p><p>Then I ran it on 2007 through 2015, a period the rules had never touched. Same profit factor. Same average winner to within six thousandths of a percent.</p><p>I am not telling you to trade this. I am showing it to you because most of what gets published about mean reversion is either wrong or so heavily filtered that you cannot tell where the edge actually lives. This is the raw version. Four rules, nothing protecting it, and the full data including the parts that look bad.</p><h3>THE RULES</h3><p>Universe: Nasdaq 100, survivorship bias free. Every stock that was in the index on the day the signal fired, including the ones that got dropped later.</p><p><strong>One.</strong> Rank the universe by ATRP over the last 63 bars and keep the top half. ATRP is average true range as a percentage of price. It measures how much a stock moves on a typical day. It says nothing about direction. A stock with a 3% average range is not a falling stock or a risky stock, it is a stock with more distance between its highs and lows.</p><p><strong>Two.</strong> RSI(3) below 10 at the close. Three period RSI is fast and noisy on purpose. Below 10 is not a mild pullback. It means the stock has closed weak several sessions running.</p><p><strong>Three.</strong> Place a buy limit 1% below that day&rsquo;s low, good for the next session. If the stock does not trade there, no fill and no trade. If it gaps below, you get the open. One position per symbol at a time, so a stock already held cannot generate a second entry no matter how weak it gets.</p><p><strong>Four.</strong> Exit on a limit 1.75% above the close, recalculated every night.</p><p>That fourth rule is the one worth reading twice. The target is not anchored to your entry. It sits above the most recent close and moves with it. Price falls, the target falls too. There is no fixed profit objective and no fixed loss objective. There is one order, sitting slightly above where the stock last closed, waiting.</p><p>Average hold across 1,668 trades is three days.</p><p>One housekeeping note. The ATRP ranking needs 63 bars of history before it can rank anything, so the first trade does not fire until November 2016. That is why the first year in the tables below shows two months instead of twelve.</p><h3>Two Trades</h3><p>Here is what it looks like when it goes against you. TSLA, late July 2026.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yHiK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4e84bf7-1d2b-415c-8dfc-1459c3f03fc1_2035x1105.png" data-component-name="Image2ToDOM"><div class="image2-inset"><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-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><figcaption class="image-caption">TSLA daily, July 2026. Entry at 312.58 after ATRP(63) expanded from 4.25 to above 5 and RSI(3) hit an extreme low. The red dots above price are the sell limit, recalculated nightly at 1.75% above the prior close. As the stock kept sliding, the target slid with it. Exit at 303.54 for a 2.89% loss after five days.</figcaption></figure></div><p>That is the mechanic working exactly as designed and losing money. The target came down to meet the price instead of waiting for the price to come up.</p><p>There is no version of this system where that does not happen. The exit is not there to guarantee a profit on any single trade. It is there to close the position fast, right or wrong, and free the slot.</p><div><hr></div><p>The same rule produces the opposite outcome often enough to matter. SNDK, the same month.</p><p>The target sat where the red dot is, just above 1,050. The stock gapped open well past it the next morning, and a limit order does not fill at the limit when price opens through it. It fills at the open.</p><p>Entry 1,040.21. Exit 1,135.01. Up 9.11% in one day.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!q8Br!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd5f1bcc-3a89-47dd-af96-8022d0631263_2002x1111.png" data-component-name="Image2ToDOM"><div class="image2-inset"><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-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><figcaption class="image-caption">SNDK daily, July 2026. Entry at 1,040.21 on a limit order below the prior low, with ATRP(63) running near 9.58. The red dot marks where the sell limit sat. The stock gapped open well above it, so the order filled at 1,135.01 instead. Up 9.11% in a single bar.</figcaption></figure></div><p>The target is 1.75% above the close. The average winning trade in this system is 3.16%.</p><p>Part of that is mechanical. Your entry sits below the low of the signal bar, and the low is below the close, so the distance from your fill to the first target is already more than 1.75% before anything moves. The rest is gaps like this one.</p><p>The exit rule caps where the order goes. It does not cap where it fills.</p><div><hr></div><h3>Results</h3><p>Ten years, Nasdaq 100 components, survivorship bias free. 1,668 trades.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!o9TD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2a1b8ca-2483-4268-ad20-4bf4dcabded6_1189x562.png" data-component-name="Image2ToDOM"><div class="image2-inset"><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-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><figcaption class="image-caption">Backtest results, Nasdaq 100 components, November 2016 through August 2026, survivorship bias free. 1,668 trades sized at 8% of equity per position with 2x margin available. Profit factor 1.69, win rate 64.15%, APR 11.97% against a maximum drawdown of 8.54%. Note that the average winner of 3.16% is smaller than the average loser of 3.25%.</figcaption></figure></div><p>Look at the two averages. The winners are smaller than the losers.</p><p>Everything you have ever read about trading says that number needs to be the other way around. Cut your losses short. Let your winners run. Never risk a dollar to make fifty cents. That advice is in every book on the shelf and it is not wrong, exactly, but it describes one way to build an edge and people have been taught it is the only way.</p><p>There are two levers. How often you win and how much you win when you do. Trend systems win maybe 35% of the time and survive because the winners are enormous. This does the opposite. It wins 64% of the time with winners that are slightly smaller than the losers, and the frequency carries it.</p><p>Neither is better. They are different shapes, and they behave differently in ways that matter more than the win rate.</p><p>Trend systems generally carry lower risk adjusted returns. They spend long stretches giving back open profit waiting for the next real move, and the drawdowns tend to be deep relative to what the system earns per year. That is the cost of a structure that needs the occasional enormous winner. You have to sit through a lot of nothing to be there when it shows up.</p><p>This system holds positions for three days. It is idle most of the time and fully committed on a handful of days, which produces a completely different equity curve.</p><p>What matters is that the shape holds up over enough trades that you can trust it. 1,668 is enough. That is where confidence comes from, and it is the reason a bad week does not require a decision.</p><div><hr></div><h3>What It Does In Bad Markets</h3><p>Here is the year by year, 2016 to now, against the Nasdaq 100.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QGdb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06ec5112-773a-4274-bbbc-455527128872_1285x400.png" data-component-name="Image2ToDOM"><div class="image2-inset"><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-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>2022 returned 53.57% while the index lost 16.77%. Every month green except December.</p><p>Now look at the years running the other direction. 2019 gave 4.30% while the index ran 33.91%. 2023 gave 5.36% against 28.15%. 2024 gave 5.39% against 26.49%.</p><p>That is not a coincidence and it is not a hedge someone bolted on. It falls out of the rules.</p><p>The system needs weakness to get filled. In a bull market that runs quietly, the setups do not fire and the limit orders do not get hit. Exposure runs low. The system sits in cash. When the market breaks, three things improve at once. More stocks trigger the RSI condition. More limit orders get filled because more stocks trade below their prior low. And the ranges expand, which means the target is reachable in fewer days.</p><p>The conditions that make the trade feel impossible are the conditions that make it work.</p><p>Then there is 2020. The year returned -0.31%. The covid crash was fast, under two months, and the system took a drawdown in it. March was -4.08%. It made that back over the rest of the year and finished flat.</p><p>That happens. Worth knowing it happens before you find out live.</p><div><hr></div><h3>The Part That Actually Matters</h3><p>Everything above was measured on data I used to build the thing for you. That is worth something, but not much on its own.</p><p>So I ran it on 2007 through 2015. Same four rules, same sizing, no overlap with the first test. A period the rules had never touched.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lUnK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bc0afdb-0c9a-4239-8e34-915a57dfc593_1191x495.png" data-component-name="Image2ToDOM"><div class="image2-inset"><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-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>APR within two tenths of a point. Profit factor within two hundredths. The average winning trade differs by six thousandths of a percent.</p><p>Those are not close numbers. They are the same numbers.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Wucq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8e0ccd8-e6c6-4893-9650-32f8d27138f1_1302x328.png" data-component-name="Image2ToDOM"><div class="image2-inset"><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-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><figcaption class="image-caption">Monthly and annual returns, 2007 through 2015, at 8% per position with 2x margin available. This period was never used to build or adjust the rules. 2008 returned 26.15% against a benchmark loss of 34.67%</figcaption></figure></div><p>2008 returned 26.15% while the index lost 34.67%. October alone was 18.04%.</p><p>The drawdown is the only figure that moved, and it is worth being clear about what a max drawdown is. It is one event. A handful of days in November 2008 where the moves were enormous and fast. Take those days out and the other 99% of the period looks almost exactly like the recent one.</p><p>That is the part that should get your attention. Not the 2008 return. The fact that two nine year windows, one of them containing the worst market in fifty years, produced numbers this close to identical. It lends to the power of properly applied backtesting with quality data.</p><p>One more thing from that block. The standard deviation of annual returns was 6.23% out of sample against 14.24% in sample. Year to year, the results were more consistent in the period that contained the financial crisis than in the calmer one.</p><p>Every year in that table is positive.</p><div><hr></div><p>And here is the part I cannot fully explain. This system does everything the books say not to do, and the risk adjusted numbers came out high. Not despite the unconventional construction. Somehow because of it.</p><p>There are disaster trades in here. Positions that dropped 20% and more before the target caught them. They exist and they always will, because nothing in the rules stops a stock from falling.</p><p>They do not matter because of how the position is sized. A 25% loss on an 8% position costs the account 2%. The trade is a disaster. The account barely notices. That is the entire mechanism, and it is why the sizing question in the next section is not a footnote to the strategy. It is the strategy.</p><p>The rest follows from the structure. A 64% win rate means the losing streaks stay short. Three day holds mean the account is not carrying open risk for long. This will almost never produce a spectacular year. It also cannot produce the kind of hole that ends the experiment.</p><p>I have found this element consistently through the years. The conventional approach has less built in edge than the unconventional.</p><div><hr></div><h3>Now the Part Nobody Writes About</h3><p>Everything so far has been about the signal. Whether the trade works.</p><p>The signal is not the system.</p><p>Here is how I approach this, and the order matters. Start at 1% per position. At 1% across a hundred name index, the account could hold every symbol in the universe at the same time. Nothing can be refused. Every signal the rules generate gets taken.</p><p>That is not a portfolio. It is a measurement.</p><p>What it measures first is the signal itself, clean. Profit factor 1.774, average trade 0.900%, 1,673 trades, no portfolio constraint standing in the way. Whatever that number is, it belongs to the rules and nothing else.</p><p>Then it gives you the number that shapes every decision after it.</p><p>Maximum exposure at 1% per position: <strong>24%</strong>. Twenty four positions open at the same time.</p><p>That is the peak the system ever demanded across ten years. And you have to run it unconstrained to see it. Test at any size where the account can turn a signal away and the peak is masked. The system might have wanted twenty four and you would never know, because it only ever got to take twelve.</p><p>Average exposure over the same period was 1.4%. One or two positions on a typical day. Then the market breaks and it wants twenty four.</p><p>So now you know what full coverage costs. The account has to be able to carry twenty four positions if it wants everything the rules generate. That is the number every step from here gets measured against.</p><p>Now you creep in. Step the size up one rung at a time and watch what changes.</p><h4>The ladder</h4><p>Same four rules at every rung. Only the position size changes.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SMsl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8747f3e-7894-45fe-82e0-fe1344fa9705_1207x417.png" data-component-name="Image2ToDOM"><div class="image2-inset"><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-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><figcaption class="image-caption">The same four rules at five position sizes, November 2016 through August 2026. The 8%, 10% and 12% rows have 2x margin available. Read the last two columns together: as the account starts refusing signals, profit factor and average trade decline. The signal never changed. Only the account's ability to take it did.</figcaption></figure></div><p>At 4% the account still takes everything. Twenty five slots against a peak demand of twenty four. One to spare. Profit factor holds at 1.758 and the Calmar peaks here at 1.452.</p><p>That is where the account runs out of room. Twenty five slots is the ceiling at 4%, and above that size there is not enough cash to cover a twenty four position morning. At 8% you get twelve positions before the account is fully invested. Half of what the system asks for on its busiest days.</p><p>So the margin comes in to buy that room back. 8% with 2x available gives you twenty five slots again. Same coverage, twice the size per position.</p><p>At 8% the first signals still start getting turned away. Twenty three of them.</p><p>Then read the last two columns down the rest of the table together.</p><p>Profit factor 1.692 at 23 refused. 1.630 at 57. 1.616 at 93.</p><p>The signal never changed. Same rules, same universe, same ten years, same entries firing on the same mornings. What changed is how many of them the account could actually take.</p><p>Two things are happening as that number climbs.</p><p>The refused signals are not random with respect to quality. They pile up on the crowded mornings, the deep flush days, which is exactly where this system does its best work. Average trade slides right alongside profit factor: 0.900, 0.905, 0.859, 0.818, 0.811.</p><p>And those same days carry the widest outcomes in both directions. On an ordinary day the system takes one or two positions and the draw never comes up. On the days it does come up, the spread between the best and worst names is enormous. So the software is not just choosing occasionally. It is choosing on the days that matter most to the final number.</p><div><hr></div><h4>What that number really is</h4><p>Wealth-Lab calls it NSF, insufficient funds. Most people who see the column read it as an error log and move on.</p><p>It is not an error log. It is a count of the decisions the software made on your behalf.</p><p>When six signals fire on the same morning and there is room for four, something has to choose. Wealth-Lab picks at random from the signals available that day. That is the honest approach, because with daily bar data there is no way to know which orders would have filled first. All you have is the open, high, low and close. The sequence inside the session is invisible.</p><p>So the software rolls the dice, takes four, discards two, and reports the result as though the strategy produced it.</p><p>That is the right way to handle it. It is also why the number matters. The reported profit factor at 12% is not the system&rsquo;s profit factor. It is the profit factor of one particular random draw out of a great many possible draws.</p><p>Watch what that does. Here are three runs of the same configuration. Same rules, same data, same dates, nothing touched between them.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TR1B!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba2c5508-d5bd-41d6-a4dd-fbd1d885ff43_1203x295.png" data-component-name="Image2ToDOM"><div class="image2-inset"><div></div></div></a><figcaption class="image-caption">Three consecutive runs of the identical configuration. Same rules, same data, same dates, nothing changed between them. The spread comes entirely from twenty three signals that had to be resolved at random.</figcaption></figure></div><p>Three different answers. A point and a half of spread from twenty three unresolved fills. Small enough that you would never notice it, which is exactly why 8% is a comfortable place to sit.</p><p>Now imagine that column reading 400 instead of 23. Someone sizes at 40% per slot, sees a huge APR, and falls in love with it. Most of what they are looking at was decided by a random draw.</p><h4>Why this does not show up in most backtests</h4><p>Most published backtests run one symbol at a time. Every signal fills, because there is no shared account for them to compete over. That measures signal quality and nothing else.</p><p>Signal quality is worth measuring. It is just not the same question as whether you can run the thing.</p><p>This is portfolio level testing, and it is the part that separates a study from a system. A lot of the Python work getting shared publicly never gets here, not because the people writing it are careless, but because the tooling was not built to model an account with a finite amount of money and twenty four orders arriving at once.</p><h4>Where the margin comes in</h4><p>Which brings me back to the 2x.</p><p>It is not there to lever the account. Average exposure is 11.4% and total margin interest across the whole test was 285 dollars. Most days it does nothing at all.</p><p>It is there for the mornings when the market flushes and more signals fire than cash alone can cover. On those days it lets the test take all of them instead of turning some away, which keeps the software out of the decision and keeps the reported result closer to what the rules actually produced.</p><p>Maximum margin actually used was 1.83x. It got there on the days you would expect.</p><h3>THE PALETTE</h3><p>This is not a system I would hand you and tell you to trade.</p><p>There are no filters on it. Nothing checks the market environment. Nothing avoids earnings. Nothing sizes differently when volatility is high. It buys weakness in the top half of the Nasdaq 100 by range, and that is the entire thought.</p><p>That is on purpose. Filters added early tell you nothing. Layer three conditions onto a signal before you know whether the raw version works and you cannot tell what you found. Maybe there was an edge. Maybe you fit the data. There is no way back from that.</p><p>So you start wide. Establish that the underlying thing works, unprotected, across a large sample and a period the rules never saw. Then you know what you are building on.</p><p>That is what this is. A clean baseline with an obvious list of things to test next.</p><p>The other reason to leave it here is that no single system needs to be the answer. 2020 returned nothing. If this were the only thing you ran, a flat year would feel like a crisis. As one component among many it is just a piece doing what it does while something else carries the load. I <a href="https://backtest.substack.com/p/building-a-better-system-from-a-bunch">wrote about how that works here</a>.</p><p>Head down. Keep building.</p><p><strong>Dave Johnson</strong><br><em>Quantitative Developer</em><br><em><a href="https://www.tradingtimemachine.com/">TradingTimeMachine.com</a></em></p><p></p><div class="subscription-widget-wrap-editor" data-attrs='{"url":"https://backtest.substack.com/subscribe?","text":"Subscribe","language":"en"}' data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Trading Time Machine! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" 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><br><br>via Trading Time Machine https://ift.tt/t4Jg9l3</div></div>]]></content:encoded></item><item><title><![CDATA[Buying Weakness on the Nasdaq 100: What 1668 Trades Say About a Strategy Nobody Recommends]]></title><link><![CDATA[https://www.tradingtimemachine.com/time-machine-blog/buying-weakness-on-the-nasdaq-100-what-1668-trades-say-about-a-strategy-nobody-recommends]]></link><comments><![CDATA[https://www.tradingtimemachine.com/time-machine-blog/buying-weakness-on-the-nasdaq-100-what-1668-trades-say-about-a-strategy-nobody-recommends#comments]]></comments><pubDate>Thu, 06 Aug 2026 13:22:17 GMT</pubDate><category><![CDATA[Uncategorized]]></category><guid isPermaLink="false">https://www.tradingtimemachine.com/time-machine-blog/buying-weakness-on-the-nasdaq-100-what-1668-trades-say-about-a-strategy-nobody-recommends</guid><description><![CDATA[There is a trade that violates almost everything you have been taught about risk.It buys stocks that are falling. Not stocks that have stopped falling and started to turn, which is what most people mean when they say they buy the dip. It puts a limit order below the low of a stock that just closed weak, and it wants that order filled the next day at a worse price than the one that already looked bad.Thanks for reading Trading Time Machine! Subscribe for free to receive new posts and support my w [...] ]]></description><content:encoded><![CDATA[<div><div id="963438824386342647" align="left" style="width: 100%; overflow-y: hidden;" class="wcustomhtml"><p>There is a trade that violates almost everything you have been taught about risk.</p><p>It buys stocks that are falling. Not stocks that have stopped falling and started to turn, which is what most people mean when they say they buy the dip. It puts a limit order below the low of a stock that just closed weak, and it wants that order filled the next day at a worse price than the one that already looked bad.</p><div class="subscription-widget-wrap-editor" data-attrs='{"url":"https://backtest.substack.com/subscribe?","text":"Subscribe","language":"en"}' data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Trading Time Machine! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" 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><p>It prefers the volatile names. Not the stable ones. It screens the Nasdaq 100 for the top half by average daily range and ignores the calmer stocks entirely.</p><p>It has no stop loss. None. There is no price at which the system decides it was wrong and gets out.</p><p>And the average losing trade is bigger than the average winning trade.</p><p>Four rules. On Nasdaq 100 component stocks over the last ten years it produced a profit factor of 1.69 and an APR of 11.97% against a maximum drawdown of 8.54%.</p><p>Sit on that second pair for a moment. The annual return is larger than the worst peak to trough loss. A Calmar ratio above 1, annual return divided by the deepest drawdown, is rare across the quant space, and rarer still from a single set of rules without combining systems. When you see one, the first thing to do is figure out what is holding it up.</p><p>Those numbers come from sizing at 8% of equity per position with 2x margin available. The margin is not there to lever the account. Average exposure across the ten years is 11.4%, and total margin interest paid was 285 dollars. It is there so the test can take every signal on the rare morning when more of them fire than cash alone can cover. Why that matters is most of the second half of this article.</p><p>Survivorship bias removed. No commissions, and limit orders on both ends so slippage is close to nothing.</p><p>Then I ran it on 2007 through 2015, a period the rules had never touched. Same profit factor. Same average winner to within six thousandths of a percent.</p><p>I am not telling you to trade this. I am showing it to you because most of what gets published about mean reversion is either wrong or so heavily filtered that you cannot tell where the edge actually lives. This is the raw version. Four rules, nothing protecting it, and the full data including the parts that look bad.</p><h3>THE RULES</h3><p>Universe: Nasdaq 100, survivorship bias free. Every stock that was in the index on the day the signal fired, including the ones that got dropped later.</p><p><strong>One.</strong> Rank the universe by ATRP over the last 63 bars and keep the top half. ATRP is average true range as a percentage of price. It measures how much a stock moves on a typical day. It says nothing about direction. A stock with a 3% average range is not a falling stock or a risky stock, it is a stock with more distance between its highs and lows.</p><p><strong>Two.</strong> RSI(3) below 10 at the close. Three period RSI is fast and noisy on purpose. Below 10 is not a mild pullback. It means the stock has closed weak several sessions running.</p><p><strong>Three.</strong> Place a buy limit 1% below that day&rsquo;s low, good for the next session. If the stock does not trade there, no fill and no trade. If it gaps below, you get the open. One position per symbol at a time, so a stock already held cannot generate a second entry no matter how weak it gets.</p><p><strong>Four.</strong> Exit on a limit 1.75% above the close, recalculated every night.</p><p>That fourth rule is the one worth reading twice. The target is not anchored to your entry. It sits above the most recent close and moves with it. Price falls, the target falls too. There is no fixed profit objective and no fixed loss objective. There is one order, sitting slightly above where the stock last closed, waiting.</p><p>Average hold across 1,668 trades is three days.</p><p>One housekeeping note. The ATRP ranking needs 63 bars of history before it can rank anything, so the first trade does not fire until November 2016. That is why the first year in the tables below shows two months instead of twelve.</p><h3>Two Trades</h3><p>Here is what it looks like when it goes against you. TSLA, late July 2026.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yHiK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4e84bf7-1d2b-415c-8dfc-1459c3f03fc1_2035x1105.png" data-component-name="Image2ToDOM"><div class="image2-inset"><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-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><figcaption class="image-caption">TSLA daily, July 2026. Entry at 312.58 after ATRP(63) expanded from 4.25 to above 5 and RSI(3) hit an extreme low. The red dots above price are the sell limit, recalculated nightly at 1.75% above the prior close. As the stock kept sliding, the target slid with it. Exit at 303.54 for a 2.89% loss after five days.</figcaption></figure></div><p>That is the mechanic working exactly as designed and losing money. The target came down to meet the price instead of waiting for the price to come up.</p><p>There is no version of this system where that does not happen. The exit is not there to guarantee a profit on any single trade. It is there to close the position fast, right or wrong, and free the slot.</p><div><hr></div><p>The same rule produces the opposite outcome often enough to matter. SNDK, the same month.</p><p>The target sat where the red dot is, just above 1,050. The stock gapped open well past it the next morning, and a limit order does not fill at the limit when price opens through it. It fills at the open.</p><p>Entry 1,040.21. Exit 1,135.01. Up 9.11% in one day.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!q8Br!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd5f1bcc-3a89-47dd-af96-8022d0631263_2002x1111.png" data-component-name="Image2ToDOM"><div class="image2-inset"><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-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><figcaption class="image-caption">SNDK daily, July 2026. Entry at 1,040.21 on a limit order below the prior low, with ATRP(63) running near 9.58. The red dot marks where the sell limit sat. The stock gapped open well above it, so the order filled at 1,135.01 instead. Up 9.11% in a single bar.</figcaption></figure></div><p>The target is 1.75% above the close. The average winning trade in this system is 3.16%.</p><p>Part of that is mechanical. Your entry sits below the low of the signal bar, and the low is below the close, so the distance from your fill to the first target is already more than 1.75% before anything moves. The rest is gaps like this one.</p><p>The exit rule caps where the order goes. It does not cap where it fills.</p><div><hr></div><h3>Results</h3><p>Ten years, Nasdaq 100 components, survivorship bias free. 1,668 trades.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!o9TD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2a1b8ca-2483-4268-ad20-4bf4dcabded6_1189x562.png" data-component-name="Image2ToDOM"><div class="image2-inset"><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-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><figcaption class="image-caption">Backtest results, Nasdaq 100 components, November 2016 through August 2026, survivorship bias free. 1,668 trades sized at 8% of equity per position with 2x margin available. Profit factor 1.69, win rate 64.15%, APR 11.97% against a maximum drawdown of 8.54%. Note that the average winner of 3.16% is smaller than the average loser of 3.25%.</figcaption></figure></div><p>Look at the two averages. The winners are smaller than the losers.</p><p>Everything you have ever read about trading says that number needs to be the other way around. Cut your losses short. Let your winners run. Never risk a dollar to make fifty cents. That advice is in every book on the shelf and it is not wrong, exactly, but it describes one way to build an edge and people have been taught it is the only way.</p><p>There are two levers. How often you win and how much you win when you do. Trend systems win maybe 35% of the time and survive because the winners are enormous. This does the opposite. It wins 64% of the time with winners that are slightly smaller than the losers, and the frequency carries it.</p><p>Neither is better. They are different shapes, and they behave differently in ways that matter more than the win rate.</p><p>Trend systems generally carry lower risk adjusted returns. They spend long stretches giving back open profit waiting for the next real move, and the drawdowns tend to be deep relative to what the system earns per year. That is the cost of a structure that needs the occasional enormous winner. You have to sit through a lot of nothing to be there when it shows up.</p><p>This system holds positions for three days. It is idle most of the time and fully committed on a handful of days, which produces a completely different equity curve.</p><p>What matters is that the shape holds up over enough trades that you can trust it. 1,668 is enough. That is where confidence comes from, and it is the reason a bad week does not require a decision.</p><div><hr></div><h3>What It Does In Bad Markets</h3><p>Here is the year by year, 2016 to now, against the Nasdaq 100.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QGdb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06ec5112-773a-4274-bbbc-455527128872_1285x400.png" data-component-name="Image2ToDOM"><div class="image2-inset"><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-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>2022 returned 53.57% while the index lost 16.77%. Every month green except December.</p><p>Now look at the years running the other direction. 2019 gave 4.30% while the index ran 33.91%. 2023 gave 5.36% against 28.15%. 2024 gave 5.39% against 26.49%.</p><p>That is not a coincidence and it is not a hedge someone bolted on. It falls out of the rules.</p><p>The system needs weakness to get filled. In a bull market that runs quietly, the setups do not fire and the limit orders do not get hit. Exposure runs low. The system sits in cash. When the market breaks, three things improve at once. More stocks trigger the RSI condition. More limit orders get filled because more stocks trade below their prior low. And the ranges expand, which means the target is reachable in fewer days.</p><p>The conditions that make the trade feel impossible are the conditions that make it work.</p><p>Then there is 2020. The year returned -0.31%. The covid crash was fast, under two months, and the system took a drawdown in it. March was -4.08%. It made that back over the rest of the year and finished flat.</p><p>That happens. Worth knowing it happens before you find out live.</p><div><hr></div><h3>The Part That Actually Matters</h3><p>Everything above was measured on data I used to build the thing for you. That is worth something, but not much on its own.</p><p>So I ran it on 2007 through 2015. Same four rules, same sizing, no overlap with the first test. A period the rules had never touched.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lUnK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bc0afdb-0c9a-4239-8e34-915a57dfc593_1191x495.png" data-component-name="Image2ToDOM"><div class="image2-inset"><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-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>APR within two tenths of a point. Profit factor within two hundredths. The average winning trade differs by six thousandths of a percent.</p><p>Those are not close numbers. They are the same numbers.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Wucq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8e0ccd8-e6c6-4893-9650-32f8d27138f1_1302x328.png" data-component-name="Image2ToDOM"><div class="image2-inset"><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-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><figcaption class="image-caption">Monthly and annual returns, 2007 through 2015, at 8% per position with 2x margin available. This period was never used to build or adjust the rules. 2008 returned 26.15% against a benchmark loss of 34.67%</figcaption></figure></div><p>2008 returned 26.15% while the index lost 34.67%. October alone was 18.04%.</p><p>The drawdown is the only figure that moved, and it is worth being clear about what a max drawdown is. It is one event. A handful of days in November 2008 where the moves were enormous and fast. Take those days out and the other 99% of the period looks almost exactly like the recent one.</p><p>That is the part that should get your attention. Not the 2008 return. The fact that two nine year windows, one of them containing the worst market in fifty years, produced numbers this close to identical. It lends to the power of properly applied backtesting with quality data.</p><p>One more thing from that block. The standard deviation of annual returns was 6.23% out of sample against 14.24% in sample. Year to year, the results were more consistent in the period that contained the financial crisis than in the calmer one.</p><p>Every year in that table is positive.</p><div><hr></div><p>And here is the part I cannot fully explain. This system does everything the books say not to do, and the risk adjusted numbers came out high. Not despite the unconventional construction. Somehow because of it.</p><p>There are disaster trades in here. Positions that dropped 20% and more before the target caught them. They exist and they always will, because nothing in the rules stops a stock from falling.</p><p>They do not matter because of how the position is sized. A 25% loss on an 8% position costs the account 2%. The trade is a disaster. The account barely notices. That is the entire mechanism, and it is why the sizing question in the next section is not a footnote to the strategy. It is the strategy.</p><p>The rest follows from the structure. A 64% win rate means the losing streaks stay short. Three day holds mean the account is not carrying open risk for long. This will almost never produce a spectacular year. It also cannot produce the kind of hole that ends the experiment.</p><p>I have found this element consistently through the years. The conventional approach has less built in edge than the unconventional.</p><div><hr></div><h3>Now the Part Nobody Writes About</h3><p>Everything so far has been about the signal. Whether the trade works.</p><p>The signal is not the system.</p><p>Here is how I approach this, and the order matters. Start at 1% per position. At 1% across a hundred name index, the account could hold every symbol in the universe at the same time. Nothing can be refused. Every signal the rules generate gets taken.</p><p>That is not a portfolio. It is a measurement.</p><p>What it measures first is the signal itself, clean. Profit factor 1.774, average trade 0.900%, 1,673 trades, no portfolio constraint standing in the way. Whatever that number is, it belongs to the rules and nothing else.</p><p>Then it gives you the number that shapes every decision after it.</p><p>Maximum exposure at 1% per position: <strong>24%</strong>. Twenty four positions open at the same time.</p><p>That is the peak the system ever demanded across ten years. And you have to run it unconstrained to see it. Test at any size where the account can turn a signal away and the peak is masked. The system might have wanted twenty four and you would never know, because it only ever got to take twelve.</p><p>Average exposure over the same period was 1.4%. One or two positions on a typical day. Then the market breaks and it wants twenty four.</p><p>So now you know what full coverage costs. The account has to be able to carry twenty four positions if it wants everything the rules generate. That is the number every step from here gets measured against.</p><p>Now you creep in. Step the size up one rung at a time and watch what changes.</p><h4>The ladder</h4><p>Same four rules at every rung. Only the position size changes.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SMsl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8747f3e-7894-45fe-82e0-fe1344fa9705_1207x417.png" data-component-name="Image2ToDOM"><div class="image2-inset"><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-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><figcaption class="image-caption">The same four rules at five position sizes, November 2016 through August 2026. The 8%, 10% and 12% rows have 2x margin available. Read the last two columns together: as the account starts refusing signals, profit factor and average trade decline. The signal never changed. Only the account's ability to take it did.</figcaption></figure></div><p>At 4% the account still takes everything. Twenty five slots against a peak demand of twenty four. One to spare. Profit factor holds at 1.758 and the Calmar peaks here at 1.452.</p><p>That is where the account runs out of room. Twenty five slots is the ceiling at 4%, and above that size there is not enough cash to cover a twenty four position morning. At 8% you get twelve positions before the account is fully invested. Half of what the system asks for on its busiest days.</p><p>So the margin comes in to buy that room back. 8% with 2x available gives you twenty five slots again. Same coverage, twice the size per position.</p><p>At 8% the first signals still start getting turned away. Twenty three of them.</p><p>Then read the last two columns down the rest of the table together.</p><p>Profit factor 1.692 at 23 refused. 1.630 at 57. 1.616 at 93.</p><p>The signal never changed. Same rules, same universe, same ten years, same entries firing on the same mornings. What changed is how many of them the account could actually take.</p><p>Two things are happening as that number climbs.</p><p>The refused signals are not random with respect to quality. They pile up on the crowded mornings, the deep flush days, which is exactly where this system does its best work. Average trade slides right alongside profit factor: 0.900, 0.905, 0.859, 0.818, 0.811.</p><p>And those same days carry the widest outcomes in both directions. On an ordinary day the system takes one or two positions and the draw never comes up. On the days it does come up, the spread between the best and worst names is enormous. So the software is not just choosing occasionally. It is choosing on the days that matter most to the final number.</p><div><hr></div><h4>What that number really is</h4><p>Wealth-Lab calls it NSF, insufficient funds. Most people who see the column read it as an error log and move on.</p><p>It is not an error log. It is a count of the decisions the software made on your behalf.</p><p>When six signals fire on the same morning and there is room for four, something has to choose. Wealth-Lab picks at random from the signals available that day. That is the honest approach, because with daily bar data there is no way to know which orders would have filled first. All you have is the open, high, low and close. The sequence inside the session is invisible.</p><p>So the software rolls the dice, takes four, discards two, and reports the result as though the strategy produced it.</p><p>That is the right way to handle it. It is also why the number matters. The reported profit factor at 12% is not the system&rsquo;s profit factor. It is the profit factor of one particular random draw out of a great many possible draws.</p><p>Watch what that does. Here are three runs of the same configuration. Same rules, same data, same dates, nothing touched between them.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TR1B!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba2c5508-d5bd-41d6-a4dd-fbd1d885ff43_1203x295.png" data-component-name="Image2ToDOM"><div class="image2-inset"><div></div></div></a><figcaption class="image-caption">Three consecutive runs of the identical configuration. Same rules, same data, same dates, nothing changed between them. The spread comes entirely from twenty three signals that had to be resolved at random.</figcaption></figure></div><p>Three different answers. A point and a half of spread from twenty three unresolved fills. Small enough that you would never notice it, which is exactly why 8% is a comfortable place to sit.</p><p>Now imagine that column reading 400 instead of 23. Someone sizes at 40% per slot, sees a huge APR, and falls in love with it. Most of what they are looking at was decided by a random draw.</p><h4>Why this does not show up in most backtests</h4><p>Most published backtests run one symbol at a time. Every signal fills, because there is no shared account for them to compete over. That measures signal quality and nothing else.</p><p>Signal quality is worth measuring. It is just not the same question as whether you can run the thing.</p><p>This is portfolio level testing, and it is the part that separates a study from a system. A lot of the Python work getting shared publicly never gets here, not because the people writing it are careless, but because the tooling was not built to model an account with a finite amount of money and twenty four orders arriving at once.</p><h4>Where the margin comes in</h4><p>Which brings me back to the 2x.</p><p>It is not there to lever the account. Average exposure is 11.4% and total margin interest across the whole test was 285 dollars. Most days it does nothing at all.</p><p>It is there for the mornings when the market flushes and more signals fire than cash alone can cover. On those days it lets the test take all of them instead of turning some away, which keeps the software out of the decision and keeps the reported result closer to what the rules actually produced.</p><p>Maximum margin actually used was 1.83x. It got there on the days you would expect.</p><h3>THE PALETTE</h3><p>This is not a system I would hand you and tell you to trade.</p><p>There are no filters on it. Nothing checks the market environment. Nothing avoids earnings. Nothing sizes differently when volatility is high. It buys weakness in the top half of the Nasdaq 100 by range, and that is the entire thought.</p><p>That is on purpose. Filters added early tell you nothing. Layer three conditions onto a signal before you know whether the raw version works and you cannot tell what you found. Maybe there was an edge. Maybe you fit the data. There is no way back from that.</p><p>So you start wide. Establish that the underlying thing works, unprotected, across a large sample and a period the rules never saw. Then you know what you are building on.</p><p>That is what this is. A clean baseline with an obvious list of things to test next.</p><p>The other reason to leave it here is that no single system needs to be the answer. 2020 returned nothing. If this were the only thing you ran, a flat year would feel like a crisis. As one component among many it is just a piece doing what it does while something else carries the load. I <a href="https://backtest.substack.com/p/building-a-better-system-from-a-bunch">wrote about how that works here</a>.</p><p>Head down. Keep building.</p><p><strong>Dave Johnson</strong><br><em>Quantitative Developer</em><br><em><a href="https://www.tradingtimemachine.com/">TradingTimeMachine.com</a></em></p><p></p><div class="subscription-widget-wrap-editor" data-attrs='{"url":"https://backtest.substack.com/subscribe?","text":"Subscribe","language":"en"}' data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Trading Time Machine! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" 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><br><br>Via <a href="https://backtest.substack.com/p/buying-weakness-on-the-nasdaq-100">https://backtest.substack.com/p/buying-weakness-on-the-nasdaq-100</a></div></div>]]></content:encoded></item><item><title><![CDATA[Introducing VIX Kinetic: When the Odds Favor a Rise in Volatility]]></title><link><![CDATA[https://www.tradingtimemachine.com/time-machine-blog/introducing-vix-kinetic-when-the-odds-favor-a-rise-in-volatility6385993]]></link><comments><![CDATA[https://www.tradingtimemachine.com/time-machine-blog/introducing-vix-kinetic-when-the-odds-favor-a-rise-in-volatility6385993#comments]]></comments><pubDate>Sat, 01 Aug 2026 11:10:32 GMT</pubDate><category><![CDATA[Uncategorized]]></category><guid isPermaLink="false">https://www.tradingtimemachine.com/time-machine-blog/introducing-vix-kinetic-when-the-odds-favor-a-rise-in-volatility6385993</guid><description><![CDATA[Introducing VIX KineticI have spent a great deal of time studying volatility and building systems around it. Over the years, I have used volatility signals to make short-term adjustments to portfolios, trading systems, and long-volatility positions.The question that led to VIX Kinetic was fairly narrow. Can we identify, at the end of the day, when the odds have shifted in favor of a short-term rise in VIX?The goal was not to predict a crash. It was not to call a market top or explain why investo [...] ]]></description><content:encoded><![CDATA[<div><div id="537186062152920325" align="left" style="width: 100%; overflow-y: hidden;" class="wcustomhtml"><h2>Introducing VIX Kinetic</h2><p>I have spent a great deal of time studying volatility and building systems around it. Over the years, I have used volatility signals to make short-term adjustments to portfolios, trading systems, and long-volatility positions.</p><p>The question that led to VIX Kinetic was fairly narrow. Can we identify, at the end of the day, when the odds have shifted in favor of a short-term rise in VIX?</p><p>The goal was not to predict a crash. It was not to call a market top or explain why investors should suddenly become bearish. I wanted to know whether there were repeatable conditions where VIX had become sufficiently compressed that a short-term rebound was more likely.</p><p>The answer, at least historically, was yes.</p><h3>The Historical Record</h3><p>From March 1999 through July 2026, VIX Kinetic produced 338 historical signals. VIX finished higher under the system&rsquo;s defined exit rules on 87.9% of them.</p><p>The average positive move was 8.9%. Winning signals were held for an average of 4.7 trading days. Losing signals averaged -5.33% and lasted an average of 12.34 days. The system was historically good at identifying quick volatility rebounds. The Signal has a maximum active window of 22 days.</p><p>Those numbers describe the movement of the VIX Index itself. They show that the system historically identified a repeatable short-term tendency in volatility, not an expressed trade. VIX is an index not a directly tradeable asset.</p><p>The strongest entry regime was when VIX began between 15 and 18. In that range, 92.2% of signals finished higher, the average VIX result was 9.48%, and resolution tended to be quicker than in signals that began with VIX already elevated.</p><p>That matters because it supports the central idea behind the system. The better opportunities often appeared before fear was obvious, not after volatility had already expanded.</p><p>You can see the complete picture in two places on the site: the <a href="https://www.tradingtimemachine.com/vix-kinetic.html">System Page</a>, for how the system works, and the <a href="https://claude.ai/chat/FULL_HISTORY_PAGE_URL_HERE">Full Signal History</a>, for every one of the 338 signals, dates and VIX levels included.</p><h3>System Market Conditions</h3><p>What makes the signal interesting is where it tends to appear. VIX Kinetic often fires after volatility has extended lower inside an otherwise quiet market. Fear is not obvious. The market may feel comfortable. Most traders are not looking for a volatility trade at all.</p><p>That is precisely the point. The system does not wait for volatility to begin rising before recognizing it. It looks for the conditions from which a short-term VIX rebound has historically become more likely.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TCiA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1f18ef9-32a5-4876-8280-0df0699011af_2164x1117.png" data-component-name="Image2ToDOM"><div class="image2-inset"><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-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><figcaption class="image-caption">January through July 2026. Gray triangles mark VIX Kinetic entry signals, green triangles mark exits. The period includes a genuine spike in March, VIX surging from the high teens to nearly 34, alongside the quieter, choppier conditions where most of the signals actually fired.</figcaption></figure></div><p></p><p>Multiple signals can occur in close succession without requiring a major market event.</p><h3>It Is Not a Crash Predictor</h3><p>The system is not forecasting a market collapse every time it fires. It is forecasting a relatively moderate, short-term rise in VIX.</p><p>That narrow objective is part of why the signal is useful. A modest VIX pop can still:</p><ul><li><p>change option pricing</p></li><li><p>widen intraday ranges</p></li><li><p>pressure high-beta stocks</p></li><li><p>weaken crowded momentum names</p></li><li><p>improve the setup for a short candidate</p></li><li><p>make new long exposure less attractive</p></li></ul><p>While in a signal, most periods, though not all, will carry an intraday VIX target of 10.2%. That target is set the evening before, along with everything else. Nothing about the trade is decided after the market opens.</p><h3>The Signal Is Useful Even Without Trading VIX Derivatives</h3><p>You can use it to:</p><ul><li><p>reduce long exposure</p></li><li><p>delay a purchase</p></li><li><p>tighten risk</p></li><li><p>time a short candidate</p></li><li><p>avoid chasing momentum</p></li><li><p>simply become more selective for a few sessions</p></li></ul><h3>Options Are Probably the Most Approachable Expression</h3><p>For most traders, VIX options will probably be the most approachable way to express the signal. A long call offers defined premium risk, while a call spread can reduce the upfront cost and still participate in the type of short-term VIX move the system was designed to identify.</p><p>The synthetic options study suggested that a 35 DTE at-the-money call produced a 77.2% positive rate, an average return of 24.3%, and a median return of 30.7%. A call placed roughly one VIX point in the money produced a 78.1% positive rate, a 21.9% average return, and a 29.7% median return. The defined-risk call spread showed an 82.8% positive rate, with a 16.5% average return and a 23.9% median return.</p><p>Those figures need to be understood correctly. They come from a synthetic pricing model, not from historical option-chain quotes, and they are not realized performance claims. They are also averages built from a full range of outcomes, including trades that lost most or all of the premium paid, not just the winners. Real results will depend on the corresponding VIX futures contract, implied volatility, time decay, strike selection, expiration, bid-ask spreads, and execution. A correct VIX forecast can still produce a disappointing option trade if the contract is too expensive, too far out of the money, or too close to expiration.</p><p>That is why I created a separate implementation manual, included with purchase. It does not present one required trade. It explains how different structures may respond to the same signal, why longer-dated ATM or slightly in-the-money calls may provide a practical starting point, and where call spreads or shorter-dated rolling approaches may fit for more experienced traders.</p><h3>Futures Are Cleaner but Probably Not for Most</h3><p>Experienced and well-funded traders may prefer VX or VXM futures because the exposure is more direct and linear. But they bring leverage, margin, overnight risk, and contract-selection risk that options don&rsquo;t. Options remain the more approachable starting point for most members. Futures are there for the traders who already know what they&rsquo;re taking on.</p><h3>The Signal Is Mechanical</h3><p>After the market closes I update all relevant data and generate the signal for the next day. That signal posts each evening to the password protected page on the site. A quick check gives you what you need to navigate the short to medium term.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fFQa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff471474c-186b-4271-a407-2f182af91abb_1572x753.png" data-component-name="Image2ToDOM"><div class="image2-inset"><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-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><figcaption class="image-caption">Example of the private signal page</figcaption></figure></div><p>If the market is already in a higher volatility regime, the system will generally not fire a new signal. That&rsquo;s normal. The signal requires VIX to reset to lower levels. The exit works the same way: the page will post either an exit for tomorrow or a specific VIX target level, defined the night before. The best way to get a feel for the signal is to go through the full signal history for yourself - <a href="https://www.tradingtimemachine.com/vix-kinetic-history.html">https://www.tradingtimemachine.com/vix-kinetic-history.html</a></p><h3>The Early Adopter Rollout</h3><p>This is a soft launch. I want a core group of subscribers to test the execution, and give me honest feedback on the workflow.</p><p>I also want to be straight about the value here, because it&rsquo;s a little absurd when you actually run the numbers. $97 gets you lifetime access to a signal tested against 27 years of data, the complete history so you can verify every claim yourself, and the options manual, all included. Spread that over ten years and you&rsquo;re under ten dollars a year. Even after the price moves to $149, you&rsquo;re still under fifteen dollars a year for something built the same way I build everything else I sell, tested first, published honestly, nothing held back.</p><p>I build systems for a living, and the same blind spot keeps showing up in almost every portfolio I look at. Plenty of plans for when things go up. Very little alpha extraction in elevated volatility or in this case extended downward volatility. That&rsquo;s the gap this is built to close.</p><p>Because that feedback is worth a lot to me, I&rsquo;m opening it at $97 for the next 14 days. After that, lifetime access moves to $149.</p><p>With purchase you will receive the Getting Started guide with information for accessing the signals and the Option/Futures Guide with some suggested use cases.</p><p>You can review the full breakdown, explore the suggested use cases, and secure your early access spot here: <a href="https://www.tradingtimemachine.com/vix-kinetic.html">https://www.tradingtimemachine.com/vix-kinetic.html</a></p><p>Have a Great Weekend!</p><p>Dave Johnson</p><p><span>Quant Developer at</span> <a href="https://www.tradingtimemachine.com/">TradingTimeMachine.com</a></p><br><br>via Trading Time Machine https://ift.tt/yx9PmkE</div></div>]]></content:encoded></item><item><title><![CDATA[Introducing VIX Kinetic: When the Odds Favor a Rise in Volatility]]></title><link><![CDATA[https://www.tradingtimemachine.com/time-machine-blog/introducing-vix-kinetic-when-the-odds-favor-a-rise-in-volatility]]></link><comments><![CDATA[https://www.tradingtimemachine.com/time-machine-blog/introducing-vix-kinetic-when-the-odds-favor-a-rise-in-volatility#comments]]></comments><pubDate>Sat, 01 Aug 2026 11:07:33 GMT</pubDate><category><![CDATA[Uncategorized]]></category><guid isPermaLink="false">https://www.tradingtimemachine.com/time-machine-blog/introducing-vix-kinetic-when-the-odds-favor-a-rise-in-volatility</guid><description><![CDATA[Introducing VIX KineticI have spent a great deal of time studying volatility and building systems around it. Over the years, I have used volatility signals to make short-term adjustments to portfolios, trading systems, and long-volatility positions.The question that led to VIX Kinetic was fairly narrow. Can we identify, at the end of the day, when the odds have shifted in favor of a short-term rise in VIX?The goal was not to predict a crash. It was not to call a market top or explain why investo [...] ]]></description><content:encoded><![CDATA[<div><div id="900941554379838109" align="left" style="width: 100%; overflow-y: hidden;" class="wcustomhtml"><h2>Introducing VIX Kinetic</h2><p>I have spent a great deal of time studying volatility and building systems around it. Over the years, I have used volatility signals to make short-term adjustments to portfolios, trading systems, and long-volatility positions.</p><p>The question that led to VIX Kinetic was fairly narrow. Can we identify, at the end of the day, when the odds have shifted in favor of a short-term rise in VIX?</p><p>The goal was not to predict a crash. It was not to call a market top or explain why investors should suddenly become bearish. I wanted to know whether there were repeatable conditions where VIX had become sufficiently compressed that a short-term rebound was more likely.</p><p>The answer, at least historically, was yes.</p><h3>The Historical Record</h3><p>From March 1999 through July 2026, VIX Kinetic produced 338 historical signals. VIX finished higher under the system&rsquo;s defined exit rules on 87.9% of them.</p><p>The average positive move was 8.9%. Winning signals were held for an average of 4.7 trading days. Losing signals averaged -5.33% and lasted an average of 12.34 days. The system was historically good at identifying quick volatility rebounds. The Signal has a maximum active window of 22 days.</p><p>Those numbers describe the movement of the VIX Index itself. They show that the system historically identified a repeatable short-term tendency in volatility, not an expressed trade. VIX is an index not a directly tradeable asset.</p><p>The strongest entry regime was when VIX began between 15 and 18. In that range, 92.2% of signals finished higher, the average VIX result was 9.48%, and resolution tended to be quicker than in signals that began with VIX already elevated.</p><p>That matters because it supports the central idea behind the system. The better opportunities often appeared before fear was obvious, not after volatility had already expanded.</p><p>You can see the complete picture in two places on the site: the <a href="https://www.tradingtimemachine.com/vix-kinetic.html">System Page</a>, for how the system works, and the <a href="https://claude.ai/chat/FULL_HISTORY_PAGE_URL_HERE">Full Signal History</a>, for every one of the 338 signals, dates and VIX levels included.</p><h3>System Market Conditions</h3><p>What makes the signal interesting is where it tends to appear. VIX Kinetic often fires after volatility has extended lower inside an otherwise quiet market. Fear is not obvious. The market may feel comfortable. Most traders are not looking for a volatility trade at all.</p><p>That is precisely the point. The system does not wait for volatility to begin rising before recognizing it. It looks for the conditions from which a short-term VIX rebound has historically become more likely.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TCiA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1f18ef9-32a5-4876-8280-0df0699011af_2164x1117.png" data-component-name="Image2ToDOM"><div class="image2-inset"><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-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><figcaption class="image-caption">January through July 2026. Gray triangles mark VIX Kinetic entry signals, green triangles mark exits. The period includes a genuine spike in March, VIX surging from the high teens to nearly 34, alongside the quieter, choppier conditions where most of the signals actually fired.</figcaption></figure></div><p></p><p>Multiple signals can occur in close succession without requiring a major market event.</p><h3>It Is Not a Crash Predictor</h3><p>The system is not forecasting a market collapse every time it fires. It is forecasting a relatively moderate, short-term rise in VIX.</p><p>That narrow objective is part of why the signal is useful. A modest VIX pop can still:</p><ul><li><p>change option pricing</p></li><li><p>widen intraday ranges</p></li><li><p>pressure high-beta stocks</p></li><li><p>weaken crowded momentum names</p></li><li><p>improve the setup for a short candidate</p></li><li><p>make new long exposure less attractive</p></li></ul><p>While in a signal, most periods, though not all, will carry an intraday VIX target of 10.2%. That target is set the evening before, along with everything else. Nothing about the trade is decided after the market opens.</p><h3>The Signal Is Useful Even Without Trading VIX Derivatives</h3><p>You can use it to:</p><ul><li><p>reduce long exposure</p></li><li><p>delay a purchase</p></li><li><p>tighten risk</p></li><li><p>time a short candidate</p></li><li><p>avoid chasing momentum</p></li><li><p>simply become more selective for a few sessions</p></li></ul><h3>Options Are Probably the Most Approachable Expression</h3><p>For most traders, VIX options will probably be the most approachable way to express the signal. A long call offers defined premium risk, while a call spread can reduce the upfront cost and still participate in the type of short-term VIX move the system was designed to identify.</p><p>The synthetic options study suggested that a 35 DTE at-the-money call produced a 77.2% positive rate, an average return of 24.3%, and a median return of 30.7%. A call placed roughly one VIX point in the money produced a 78.1% positive rate, a 21.9% average return, and a 29.7% median return. The defined-risk call spread showed an 82.8% positive rate, with a 16.5% average return and a 23.9% median return.</p><p>Those figures need to be understood correctly. They come from a synthetic pricing model, not from historical option-chain quotes, and they are not realized performance claims. They are also averages built from a full range of outcomes, including trades that lost most or all of the premium paid, not just the winners. Real results will depend on the corresponding VIX futures contract, implied volatility, time decay, strike selection, expiration, bid-ask spreads, and execution. A correct VIX forecast can still produce a disappointing option trade if the contract is too expensive, too far out of the money, or too close to expiration.</p><p>That is why I created a separate implementation manual, included with purchase. It does not present one required trade. It explains how different structures may respond to the same signal, why longer-dated ATM or slightly in-the-money calls may provide a practical starting point, and where call spreads or shorter-dated rolling approaches may fit for more experienced traders.</p><h3>Futures Are Cleaner but Probably Not for Most</h3><p>Experienced and well-funded traders may prefer VX or VXM futures because the exposure is more direct and linear. But they bring leverage, margin, overnight risk, and contract-selection risk that options don&rsquo;t. Options remain the more approachable starting point for most members. Futures are there for the traders who already know what they&rsquo;re taking on.</p><h3>The Signal Is Mechanical</h3><p>After the market closes I update all relevant data and generate the signal for the next day. That signal posts each evening to the password protected page on the site. A quick check gives you what you need to navigate the short to medium term.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fFQa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff471474c-186b-4271-a407-2f182af91abb_1572x753.png" data-component-name="Image2ToDOM"><div class="image2-inset"><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-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><figcaption class="image-caption">Example of the private signal page</figcaption></figure></div><p>If the market is already in a higher volatility regime, the system will generally not fire a new signal. That&rsquo;s normal. The signal requires VIX to reset to lower levels. The exit works the same way: the page will post either an exit for tomorrow or a specific VIX target level, defined the night before. The best way to get a feel for the signal is to go through the full signal history for yourself - <a href="https://www.tradingtimemachine.com/vix-kinetic-history.html">https://www.tradingtimemachine.com/vix-kinetic-history.html</a></p><h3>The Early Adopter Rollout</h3><p>This is a soft launch. I want a core group of subscribers to test the execution, and give me honest feedback on the workflow.</p><p>I also want to be straight about the value here, because it&rsquo;s a little absurd when you actually run the numbers. $97 gets you lifetime access to a signal tested against 27 years of data, the complete history so you can verify every claim yourself, and the options manual, all included. Spread that over ten years and you&rsquo;re under ten dollars a year. Even after the price moves to $149, you&rsquo;re still under fifteen dollars a year for something built the same way I build everything else I sell, tested first, published honestly, nothing held back.</p><p>I build systems for a living, and the same blind spot keeps showing up in almost every portfolio I look at. Plenty of plans for when things go up. Very little alpha extraction in elevated volatility or in this case extended downward volatility. That&rsquo;s the gap this is built to close.</p><p>Because that feedback is worth a lot to me, I&rsquo;m opening it at $97 for the next 14 days. After that, lifetime access moves to $149.</p><p>With purchase you will receive the Getting Started guide with information for accessing the signals and the Option/Futures Guide with some suggested use cases.</p><p>You can review the full breakdown, explore the suggested use cases, and secure your early access spot here: <a href="https://www.tradingtimemachine.com/vix-kinetic.html">https://www.tradingtimemachine.com/vix-kinetic.html</a></p><p>Have a Great Weekend!</p><p>Dave Johnson</p><p><span>Quant Developer at</span> <a href="https://www.tradingtimemachine.com/">TradingTimeMachine.com</a></p><br><br>Via <a href="https://backtest.substack.com/p/introducing-vix-kinetic-when-the">https://backtest.substack.com/p/introducing-vix-kinetic-when-the</a></div></div>]]></content:encoded></item><item><title><![CDATA[When SPY Pulls Back and VIX Spikes. The Numbers Might Surprise You.]]></title><link><![CDATA[https://www.tradingtimemachine.com/time-machine-blog/when-spy-pulls-back-and-vix-spikes-the-numbers-might-surprise-you9791758]]></link><comments><![CDATA[https://www.tradingtimemachine.com/time-machine-blog/when-spy-pulls-back-and-vix-spikes-the-numbers-might-surprise-you9791758#comments]]></comments><pubDate>Thu, 30 Jul 2026 10:17:33 GMT</pubDate><category><![CDATA[Uncategorized]]></category><guid isPermaLink="false">https://www.tradingtimemachine.com/time-machine-blog/when-spy-pulls-back-and-vix-spikes-the-numbers-might-surprise-you9791758</guid><description><![CDATA[In previous articles I’ve shared a simple setup in the SPY ETF. The win rate and profit factors make sense for those looking for exposure in a pullback.The rules are very simple. The 7 period RSI crosses under 30, while the SPY close is also above the 150 period moving average. The system would enter at the open the next day.Thanks for reading Trading Time Machine! Subscribe for free to receive new posts and support my work.The exit is a close above the high of 3 bars ago, denoting a swing out [...] ]]></description><content:encoded><![CDATA[<div><div id="787505617700901427" align="left" style="width: 100%; overflow-y: hidden;" class="wcustomhtml"><p>In previous articles I&rsquo;ve shared a simple setup in the SPY ETF. The win rate and profit factors make sense for those looking for exposure in a pullback.</p><p>The rules are very simple. The 7 period RSI crosses under 30, while the SPY close is also above the 150 period moving average. The system would enter at the open the next day.</p><div class="subscription-widget-wrap-editor" data-attrs='{"url":"https://backtest.substack.com/subscribe?","text":"Subscribe","language":"en"}' data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Trading Time Machine! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" 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><p>The exit is a close above the high of 3 bars ago, denoting a swing out from the low. Again, the exit would be the next day at the market open.</p><p>You can find a deeper description of that exit, along with the statistical history of the system below:</p><div class="digest-post-embed" data-attrs='{"nodeId":"aedeb3a9-021a-441c-a4e1-0fd161092704","caption":"The forecast gauges are a bit mixed with the 5 day gauge rocking in to the Red zone. The only fly in the ointment is that the number of historical matches that we landed on was ONE. For your own reference that date was July 24th, 2024, which would have had an entry the following day. I had to open up the historical aperture a tad to get us to 10 matche&hellip;","cta":null,"showBylines":true,"showDescription":true,"showImage":true,"size":"lg","isEditorNode":true,"title":"Forecast for Wednesday 1/21/26 - Oversold?","publishedBylines":[{"id":5325849,"name":"Dave Johnson","bio":"Former investment advisor. Mechanical trading system developer. I build rules-based systems and share the research behind them at TradingTimeMachine.com.","photo_url":"https://substack-post-media.s3.amazonaws.com/public/images/5cd66da5-9ec4-47ce-a8bf-8d5cd8f751a7_398x398.png","is_guest":false,"bestseller_tier":null}],"post_date":"2026-01-21T00:41:04.978Z","cover_image":"https://substackcdn.com/image/fetch/$s_!XFuA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d8fec38-f2bf-4967-8822-a89f97b9915e_907x918.png","cover_image_alt":null,"canonical_url":"https://backtest.substack.com/p/forecast-for-wednesday-12126-oversold","section_name":null,"video_upload_id":null,"id":185243764,"type":"newsletter","reaction_count":6,"comment_count":2,"publication_id":331109,"publication_name":"Trading Time Machine","publication_logo_url":"https://substackcdn.com/image/fetch/$s_!3tD9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c955a2f-f6f8-40ae-b3f5-1af76a151136_700x700.png","belowTheFold":false,"youtube_url":null,"show_links":null,"feed_url":null}'></div><p>Since that article, the condition triggered 2 times with both being winners.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BVxg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb387ce2c-64f2-4419-92c0-e5908a9b7277_1096x111.png" data-component-name="Image2ToDOM"><div class="image2-inset"><div></div></div></a></figure></div><p>The historical list of trades (not including the 2 shown above) <a href="https://docs.google.com/spreadsheets/d/e/2PACX-1vSdr2DCbzNTXPZVRyj0z2yvhygMy-ojDk3qgePvNi_XpNYMQyUEVbd4vowD4o5tqTK3836fnj0jf-Uf/pubhtml?gid=0&amp;single=true">can be found here</a></p><p>Yesterday the SPY triggered that setup again.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MTmU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F423b8b05-6228-4a8c-8cb8-18445d7c4e6e_2041x1108.png" data-component-name="Image2ToDOM"><div class="image2-inset"><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-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><figcaption class="image-caption">SPY showing the RSI crossing under 30 while the close is above the 150 period moving average</figcaption></figure></div><p>One thing I noted about the current signal is that the VIX is above 20, and that would not always be the case. I tested the system with that particular modification.</p><p>The RSI must cross below the 30 level and the VIX must close above 20. The exit rule is the same.</p><p>What I found were 57 historical triggers.</p><p>The stats are as follows:</p><ul><li><p>85.96% Win Rate</p></li><li><p>Average Winner of 2.08% holding an average of 3.71 days</p></li><li><p>Average Loser of 2.20% holding an average of 9.88 days</p></li><li><p>Profit factor of 5.64</p></li></ul><p>Compared to the original strategy:</p><ul><li><p>81.19% Win rate</p></li><li><p>Average Winner of 1.7% holding an average of 4.29 days</p></li><li><p>Average Loser of 1.84% holding an average of 9.68 days</p></li><li><p>Profit Factor of 3.47</p></li></ul><p>The differences are not huge. The average winner and loser expand as they are triggered in a higher volatility market. One thing I did note is the quicker average exit time for winners. 3.71 days versus 4.29 days, again this is likely due to the extra volatility in the market. In volatility price can cover more ground, more quickly.</p><p>As I&rsquo;ve said with past triggers if you need market exposure, this method could help you gain that exposure. Typically you are in and out relatively quickly. One thing to note is that this is tested with no stop in place. The exit when triggered could be below the entry price. The path getting to an exit can be volatile. But if you need exposure, this is a straightforward way to get it.</p><p>On a sidenote I am putting the finishing touches on a new signal I will be offering on the website. This one is a bit different than my previous systems/signals, as it more of a warning of volatility popping in the near term as indicated by the VIX, rather than participating in long index equity.</p><p>The stats look like this:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eXE-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff755ae8-3d4a-49d0-8fa5-dfbb7f7efa38_1341x228.png" data-component-name="Image2ToDOM"><div class="image2-inset"><div></div></div></a><figcaption class="image-caption">VIX Kinetic signal statistics across 338 historical signals dating back to 1999.</figcaption></figure></div><p>The VIX itself is not a tradeable asset, but the signals can be a very powerful tool for those that want to protect long exposure, trade more selectively, improve the timing of shorts, and use long VIX options for protection.</p><p>Included with the purchase is a suggested use case manual using options and other alts. I&rsquo;m going to make this one at a very approachable price so that as many people as possible can benefit and learn from it.</p><p>This is not meant to be a crash predictor. These signals fire when things are relatively quiet and capture smaller intermediate moves. They can trigger frequently when the market is calm and sidestep all markets that are highly volatile. It is a tool I have found most market participants lack.</p><p>I will be having a future post explaining the system and its use cases very soon.</p><p>Dave Johnson</p><p>Quant Developer at <a href="https://www.tradingtimemachine.com/">TradingTimeMachine.com</a></p><p></p><p></p><div class="subscription-widget-wrap-editor" data-attrs='{"url":"https://backtest.substack.com/subscribe?","text":"Subscribe","language":"en"}' data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Trading Time Machine! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" 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><br><br>Via <a href="https://backtest.substack.com/p/when-spy-pulls-back-and-vix-spikes">https://backtest.substack.com/p/when-spy-pulls-back-and-vix-spikes</a></div></div>]]></content:encoded></item><item><title><![CDATA[When SPY Pulls Back and VIX Spikes. The Numbers Might Surprise You.]]></title><link><![CDATA[https://www.tradingtimemachine.com/time-machine-blog/when-spy-pulls-back-and-vix-spikes-the-numbers-might-surprise-you]]></link><comments><![CDATA[https://www.tradingtimemachine.com/time-machine-blog/when-spy-pulls-back-and-vix-spikes-the-numbers-might-surprise-you#comments]]></comments><pubDate>Thu, 30 Jul 2026 10:15:38 GMT</pubDate><category><![CDATA[Uncategorized]]></category><guid isPermaLink="false">https://www.tradingtimemachine.com/time-machine-blog/when-spy-pulls-back-and-vix-spikes-the-numbers-might-surprise-you</guid><description><![CDATA[In previous articles I’ve shared a simple setup in the SPY ETF. The win rate and profit factors make sense for those looking for exposure in a pullback.The rules are very simple. The 7 period RSI crosses under 30, while the SPY close is also above the 150 period moving average. The system would enter at the open the next day.Thanks for reading Trading Time Machine! Subscribe for free to receive new posts and support my work.The exit is a close above the high of 3 bars ago, denoting a swing out [...] ]]></description><content:encoded><![CDATA[<div><div id="600916297126816937" align="left" style="width: 100%; overflow-y: hidden;" class="wcustomhtml"><p>In previous articles I&rsquo;ve shared a simple setup in the SPY ETF. The win rate and profit factors make sense for those looking for exposure in a pullback.</p><p>The rules are very simple. The 7 period RSI crosses under 30, while the SPY close is also above the 150 period moving average. The system would enter at the open the next day.</p><div class="subscription-widget-wrap-editor" data-attrs='{"url":"https://backtest.substack.com/subscribe?","text":"Subscribe","language":"en"}' data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Trading Time Machine! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" 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><p>The exit is a close above the high of 3 bars ago, denoting a swing out from the low. Again, the exit would be the next day at the market open.</p><p>You can find a deeper description of that exit, along with the statistical history of the system below:</p><div class="digest-post-embed" data-attrs='{"nodeId":"aedeb3a9-021a-441c-a4e1-0fd161092704","caption":"The forecast gauges are a bit mixed with the 5 day gauge rocking in to the Red zone. The only fly in the ointment is that the number of historical matches that we landed on was ONE. For your own reference that date was July 24th, 2024, which would have had an entry the following day. I had to open up the historical aperture a tad to get us to 10 matche&hellip;","cta":null,"showBylines":true,"showDescription":true,"showImage":true,"size":"lg","isEditorNode":true,"title":"Forecast for Wednesday 1/21/26 - Oversold?","publishedBylines":[{"id":5325849,"name":"Dave Johnson","bio":"Former investment advisor. Mechanical trading system developer. I build rules-based systems and share the research behind them at TradingTimeMachine.com.","photo_url":"https://substack-post-media.s3.amazonaws.com/public/images/5cd66da5-9ec4-47ce-a8bf-8d5cd8f751a7_398x398.png","is_guest":false,"bestseller_tier":null}],"post_date":"2026-01-21T00:41:04.978Z","cover_image":"https://substackcdn.com/image/fetch/$s_!XFuA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d8fec38-f2bf-4967-8822-a89f97b9915e_907x918.png","cover_image_alt":null,"canonical_url":"https://backtest.substack.com/p/forecast-for-wednesday-12126-oversold","section_name":null,"video_upload_id":null,"id":185243764,"type":"newsletter","reaction_count":6,"comment_count":2,"publication_id":331109,"publication_name":"Trading Time Machine","publication_logo_url":"https://substackcdn.com/image/fetch/$s_!3tD9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c955a2f-f6f8-40ae-b3f5-1af76a151136_700x700.png","belowTheFold":false,"youtube_url":null,"show_links":null,"feed_url":null}'></div><p>Since that article, the condition triggered 2 times with both being winners.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BVxg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb387ce2c-64f2-4419-92c0-e5908a9b7277_1096x111.png" data-component-name="Image2ToDOM"><div class="image2-inset"><div></div></div></a></figure></div><p>The historical list of trades (not including the 2 shown above) <a href="https://docs.google.com/spreadsheets/d/e/2PACX-1vSdr2DCbzNTXPZVRyj0z2yvhygMy-ojDk3qgePvNi_XpNYMQyUEVbd4vowD4o5tqTK3836fnj0jf-Uf/pubhtml?gid=0&amp;single=true">can be found here</a></p><p>Yesterday the SPY triggered that setup again.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MTmU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F423b8b05-6228-4a8c-8cb8-18445d7c4e6e_2041x1108.png" data-component-name="Image2ToDOM"><div class="image2-inset"><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-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><figcaption class="image-caption">SPY showing the RSI crossing under 30 while the close is above the 150 period moving average</figcaption></figure></div><p>One thing I noted about the current signal is that the VIX is above 20, and that would not always be the case. I tested the system with that particular modification.</p><p>The RSI must cross below the 30 level and the VIX must close above 20. The exit rule is the same.</p><p>What I found were 57 historical triggers.</p><p>The stats are as follows:</p><ul><li><p>85.96% Win Rate</p></li><li><p>Average Winner of 2.08% holding an average of 3.71 days</p></li><li><p>Average Loser of 2.20% holding an average of 9.88 days</p></li><li><p>Profit factor of 5.64</p></li></ul><p>Compared to the original strategy:</p><ul><li><p>81.19% Win rate</p></li><li><p>Average Winner of 1.7% holding an average of 4.29 days</p></li><li><p>Average Loser of 1.84% holding an average of 9.68 days</p></li><li><p>Profit Factor of 3.47</p></li></ul><p>The differences are not huge. The average winner and loser expand as they are triggered in a higher volatility market. One thing I did note is the quicker average exit time for winners. 3.71 days versus 4.29 days, again this is likely due to the extra volatility in the market. In volatility price can cover more ground, more quickly.</p><p>As I&rsquo;ve said with past triggers if you need market exposure, this method could help you gain that exposure. Typically you are in and out relatively quickly. One thing to note is that this is tested with no stop in place. The exit when triggered could be below the entry price. The path getting to an exit can be volatile. But if you need exposure, this is a straightforward way to get it.</p><p>On a sidenote I am putting the finishing touches on a new signal I will be offering on the website. This one is a bit different than my previous systems/signals, as it more of a warning of volatility popping in the near term as indicated by the VIX, rather than participating in long index equity.</p><p>The stats look like this:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eXE-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff755ae8-3d4a-49d0-8fa5-dfbb7f7efa38_1341x228.png" data-component-name="Image2ToDOM"><div class="image2-inset"><div></div></div></a><figcaption class="image-caption">VIX Kinetic signal statistics across 338 historical signals dating back to 1999.</figcaption></figure></div><p>The VIX itself is not a tradeable asset, but the signals can be a very powerful tool for those that want to protect long exposure, trade more selectively, improve the timing of shorts, and use long VIX options for protection.</p><p>Included with the purchase is a suggested use case manual using options and other alts. I&rsquo;m going to make this one at a very approachable price so that as many people as possible can benefit and learn from it.</p><p>This is not meant to be a crash predictor. These signals fire when things are relatively quiet and capture smaller intermediate moves. They can trigger frequently when the market is calm and sidestep all markets that are highly volatile. It is a tool I have found most market participants lack.</p><p>I will be having a future post explaining the system and its use cases very soon.</p><p>Dave Johnson</p><p>Quant Developer at <a href="https://www.tradingtimemachine.com/">TradingTimeMachine.com</a></p><p></p><p></p><div class="subscription-widget-wrap-editor" data-attrs='{"url":"https://backtest.substack.com/subscribe?","text":"Subscribe","language":"en"}' data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Trading Time Machine! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" 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><br><br>via Trading Time Machine https://ift.tt/oWAjadf</div></div>]]></content:encoded></item><item><title><![CDATA[S&P 500 After a 2% Down Day: Historical Forward Returns Across 75 Years]]></title><link><![CDATA[https://www.tradingtimemachine.com/time-machine-blog/sp-500-after-a-2-down-day-historical-forward-returns-across-75-years]]></link><comments><![CDATA[https://www.tradingtimemachine.com/time-machine-blog/sp-500-after-a-2-down-day-historical-forward-returns-across-75-years#comments]]></comments><pubDate>Mon, 08 Jun 2026 00:42:28 GMT</pubDate><category><![CDATA[Uncategorized]]></category><guid isPermaLink="false">https://www.tradingtimemachine.com/time-machine-blog/sp-500-after-a-2-down-day-historical-forward-returns-across-75-years</guid><description><![CDATA[Wayne Whaley posted an interesting study last week and I wanted to dig into it a bit further. Wayne is one of my favorite quantitative researchers. His work is data driven, straightforward, and worth following. The link to his original post is below. What I wanted to add is some context around the numbers using a random entry baseline. Same approach I use in my own research here.Wayne Whaley 2% or greater down day preceded by a &gt;10% 13 week returnThe setup is simple. A 2% or greater down day  [...] ]]></description><content:encoded><![CDATA[<div><div id="703196358192405992" align="left" style="width: 100%; overflow-y: hidden;" class="wcustomhtml"><p>Wayne Whaley posted an interesting study last week and I wanted to dig into it a bit further. Wayne is one of my favorite quantitative researchers. His work is data driven, straightforward, and worth following. The link to his original post is below. What I wanted to add is some context around the numbers using a random entry baseline. Same approach I use in my own research here.</p><div class="twitter-embed" data-attrs='{"url":"https://x.com/WayneWhaley1136/status/2063737516021194828?s=20","full_text":"WHEN A TWO PCT DOWN DAY PRESENTS ITSELF ON THE BACK OF A TEN PCT QTR\n\nOn Friday, June 5th, the S&amp;amp;P experienced a 2.64% Down day which occurred on the back of a 11.03% Qtr (13 wks). \n\nSince 1950, I see 34 prior occasions in which a Down 2% Day occurred on the back of a trailing ","username":"WayneWhaley1136","name":"Wayne Whaley","profile_image_url":"https://pbs.substack.com/profile_images/1861185861292789760/WcPOYwXX_normal.jpg","date":"2026-06-07T21:39:00.000Z","photos":[{"img_url":"https://pbs.substack.com/media/HKPdSgzW8AAta-9.png","link_url":"https://t.co/zI1aGyvUbY"}],"quoted_tweet":{},"reply_count":2,"retweet_count":13,"like_count":97,"impression_count":5080,"expanded_url":null,"video_url":null,"belowTheFold":false}' data-component-name="Twitter2ToDOM"></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!j77i!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda0fcfb0-cf5d-4d94-a107-bba8e5abc237_1147x1285.png" data-component-name="Image2ToDOM"><div class="image2-inset"><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 role="img" width="20" height="20" viewbox="0 0 20 20" fill="none" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><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><figcaption class="image-caption">Wayne Whaley 2% or greater down day preceded by a &gt;10% 13 week return</figcaption></figure></div><p>The setup is simple. A 2% or greater down day that was preceded by a 10% or better 13 week quarter. That combination fired at Friday's close on June 5th. Thirty four prior instances going back to 1950. Small sample size. Worth keeping that in mind throughout. But 75 years of data across a wide range of market environments gives it some credibility.</p><div class="subscription-widget-wrap-editor" data-attrs='{"url":"https://backtest.substack.com/subscribe?","text":"Subscribe","language":"en"}' data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Trading Time Machine! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" 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><p>The first thing worth noting is the short term. After a 2% down day the VIX spikes and near term noise increases. You can see that in the 1 week returns column. Big swings in both directions. In the current case VIX is sitting above 21. Worth keeping in mind.</p><p>But even in that noisy first week the numbers hold up better than you might expect. The setup produces a 67.6% win rate with an average winner of 2.31% and an average loser of 1.74%. A random 1 week hold in SPY produces a 57.43% win rate with an average winner of 1.64% and an average loser of 1.75%. The setup leads on every metric. Profit factor 2.77 versus 1.26 for random entry. That 1% average net gain in a single week annualizes to nearly 68%. There is real power concentrated in a short window of time here.</p><p>At 4 weeks the setup produces a 70.6% win rate with an average winner of 4.77% versus an average loser of 3.23%. Random entry at the same holding period produces a 64.09% win rate with an average winner of 3.31% and an average loser of 3.65%. Profit factor 3.55 versus 1.62 for random entry. That 2.42% average net gain over 4 weeks annualizes to 36.5%.</p><p>At 13 weeks the separation becomes dramatic. 88.2% win rate. Average winner 8.78% versus an average loser of only 3.70%. Only 4 losing instances in 34. Random entry at 13 weeks produces a 69.47% win rate with an average winner of 6.25% and an average loser of 6.07%. Profit factor 17.80 versus 2.34 for random entry. That 7.31% average net gain over 13 weeks annualizes to 32.6%. The sample size caveat applies here more than anywhere given only 4 losing instances driving that profit factor.</p><p>At 1 year the setup produces an 85.3% win rate with an average winner of 21.41% and an average loser of only 6.24%. That average loser of 6.24% against winners averaging 21.41% is the number that stands out. When this setup loses it tends to lose modestly. When it wins it tends to win big. Random entry at 1 year produces a 79.26% win rate with an average winner of 16.47% and an average loser of 14.34%. Profit factor 19.91 versus 4.39 for random entry. At 1 year the annualized returns converge. Setup 17.3% versus random 10.1%. The shorter holding periods are where the edge over random entry is most pronounced.</p><p>A few things worth keeping in mind before drawing any conclusions. Thirty four instances going back to 1950 is a small sample. The profit factors at 13 and 26 weeks are extraordinary but they are being driven by very few losing instances. That cuts both ways. The consistency across 75 years of market history is genuinely impressive. But past setups do not guarantee future outcomes and this is not a trading recommendation.</p><p>What I find useful about Wayne&rsquo;s work is exactly this kind of simple clearly defined setup with a long historical record. No curve fitting. No complex rules. A specific condition that has shown up 34 times in 75 years and produced a consistent forward return profile worth understanding. Credit to Wayne for the original research. His post is worth reading in full.</p><p><a href="https://x.com/WayneWhaley1136">Wayne Whaley on X</a></p><p>Dave Johnson</p><p>Quantitative Developer</p><p>TradingTimeMachine.com</p><p></p><div class="subscription-widget-wrap-editor" data-attrs='{"url":"https://backtest.substack.com/subscribe?","text":"Subscribe","language":"en"}' data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Trading Time Machine! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" 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><br><br>Via <a href="https://backtest.substack.com/p/s-and-p-500-after-a-2-down-day-historical">https://backtest.substack.com/p/s-and-p-500-after-a-2-down-day-historical</a></div></div>]]></content:encoded></item><item><title><![CDATA[A Quick Look at Some of the Free Tools on the Site]]></title><link><![CDATA[https://www.tradingtimemachine.com/time-machine-blog/a-quick-look-at-some-of-the-free-tools-on-the-site7110943]]></link><comments><![CDATA[https://www.tradingtimemachine.com/time-machine-blog/a-quick-look-at-some-of-the-free-tools-on-the-site7110943#comments]]></comments><pubDate>Thu, 04 Jun 2026 22:55:29 GMT</pubDate><category><![CDATA[Uncategorized]]></category><guid isPermaLink="false">https://www.tradingtimemachine.com/time-machine-blog/a-quick-look-at-some-of-the-free-tools-on-the-site7110943</guid><description><![CDATA[Wanted to take a few minutes to walk through some of the tools on the site that do not always get enough attention. A few of them have been particularly relevant lately and worth knowing about if you are following the markets day to day.The trading forecast page at TradingTimeMachine.com is updated every evening. The gauge scans decades of SPY history, finds days that look like today, and measures whether expected returns are running above or below the historical average for those conditions. Th [...] ]]></description><content:encoded><![CDATA[<div><div id="477547798898425264" align="left" style="width: 100%; overflow-y: hidden;" class="wcustomhtml"><p>Wanted to take a few minutes to walk through some of the tools on the site that do not always get enough attention. A few of them have been particularly relevant lately and worth knowing about if you are following the markets day to day.</p><p>The <a href="https://www.tradingtimemachine.com/trading_forecast.html">trading forecast page at TradingTimeMachine.com</a> is updated every evening. The gauge scans decades of SPY history, finds days that look like today, and measures whether expected returns are running above or below the historical average for those conditions. Three zones. Green means conditions have historically produced above average returns. Yellow means close to average, no strong edge either way. Red means conditions have historically leaned bearish. Timeframes run from 1 day out to 10 days. When multiple timeframes are in agreement the signal carries more weight. When they are mixed that is worth paying attention to as well.</p><div class="subscription-widget-wrap-editor" data-attrs='{"url":"https://backtest.substack.com/subscribe?","text":"Subscribe","language":"en"}' data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Trading Time Machine! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" 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><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qTFk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb818af96-2ffe-43db-babc-93fe6ca2d7e6_1566x984.png" data-component-name="Image2ToDOM"><div class="image2-inset"><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 role="img" width="20" height="20" viewbox="0 0 20 20" fill="none" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><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><figcaption class="image-caption">Market Forecast gauge</figcaption></figure></div><p>Yellow is actually the most common state. The gauge spends a lot of time there. Green and red are the rarer conditions and when they show up across multiple timeframes that is when the gauge becomes most actionable. During the recent run it has been sitting mostly in yellow. Normal returns. No strong edge. A lot of other sites were screaming overbought through this whole move. This one stayed neutral because the data did not support a strong call in either direction. Sometimes that is exactly the right read.</p><p>Below the pattern forecast is the volatility structure gauge. This one reads the VIX term structure. Specifically the relationship between VIX9D, VIX, and VIX3M. When near term fear is lower than longer dated fear the curve is in contango. Normal healthy market structure. When near term fear spikes above longer dated fear the curve inverts. That is a stress signal. Most tools stop there and just read the shape of the curve. This one goes further. It tested every combination of term structure shape, VIX level, and spread direction against actual forward SPY returns across more than 121,000 ten minute bars going back to 2013. The result is a regime classification tied to real historical outcomes not just a textbook rule. Strong bull at elevated VIX historically produces the best forward return setups. Full inversion at elevated VIX in the 25 to 30 range is historically the most negative regime in the dataset. And one interesting nuance. At extreme panic levels above VIX 30 a fully inverted structure actually flips to a contrarian bullish signal. Fear at its peak has historically been a mean reversion catalyst. The gauge accounts for that automatically.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6Bff!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b199dd1-58ec-4c9f-80aa-ed54f70d5678_1455x1110.png" data-component-name="Image2ToDOM"><div class="image2-inset"><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 role="img" width="20" height="20" viewbox="0 0 20 20" fill="none" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><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><figcaption class="image-caption">Volatility Term Structure Backtest Viewer</figcaption></figure></div><p>The forward return window this tool is looking at is 1 to 2.5 trading days. Short term lean not a long term call. Worth noting it is still experimental and can be a little clunky with updates. It will be refined over time. Data runs on a 15 minute delay so best used during regular trading hours when VIX9D and VIX3M are getting updated quotes.</p><p>If you follow the markets during the day bookmark <a href="https://www.tradingtimemachine.com/trader_tools.html">the Traders Tools page</a>. Two audio sources running together. TickStrike for price tick audio on SP500, EUR/USD, Oil, and Bitcoin. FinancialJuice voice squawk for live news. Live economic calendar and a text news feed rounding it out. No ads. No noise. Just what you need.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Oo0h!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c5621eb-ac44-46e5-84c2-126e4a91e239_1660x1059.png" data-component-name="Image2ToDOM"><div class="image2-inset"><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 role="img" width="20" height="20" viewbox="0 0 20 20" fill="none" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><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><figcaption class="image-caption">Voice Squawk and Live news with Economic Calendar</figcaption></figure></div><p>One thing worth doing when you first set it up. Make sure both audio sources are set to persistent in your browser. Otherwise the sound fades when you switch tabs and you miss alerts.</p><p>All of these tools are free and live at tradingtimemachine.com. No login required for the forecast page or the trader tools dashboard. A lot of people find the Substack first and never make it to the site. Worth the visit.</p><p>Have a Great Night!</p><p>Dave Johnson</p><p>Quant Developer</p><p>TradingTimeMachine.com</p><div class="subscription-widget-wrap-editor" data-attrs='{"url":"https://backtest.substack.com/subscribe?","text":"Subscribe","language":"en"}' data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Trading Time Machine! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" 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><br><br>via Trading Time Machine https://ift.tt/FYjciq0</div></div>]]></content:encoded></item></channel></rss>