<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Gunnar Thorderson</title>
    <description>The latest articles on DEV Community by Gunnar Thorderson (@gunnarthorderson).</description>
    <link>https://dev.to/gunnarthorderson</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3844221%2Fd42460cc-127f-44bd-829a-7ba9c0f9690f.jpg</url>
      <title>DEV Community: Gunnar Thorderson</title>
      <link>https://dev.to/gunnarthorderson</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gunnarthorderson"/>
    <language>en</language>
    <item>
      <title>Weekly Regime Recap: BULL at 42% — September 25, 2026</title>
      <dc:creator>Gunnar Thorderson</dc:creator>
      <pubDate>Fri, 25 Sep 2026 09:00:10 +0000</pubDate>
      <link>https://dev.to/gunnarthorderson/weekly-regime-recap-bull-at-42-september-25-2026-3h7f</link>
      <guid>https://dev.to/gunnarthorderson/weekly-regime-recap-bull-at-42-september-25-2026-3h7f</guid>
      <description>&lt;h1&gt;
  
  
  Weekly Regime Recap — September 25, 2026
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Current Classification: BULL (42% confidence)
&lt;/h2&gt;

&lt;p&gt;The Regime classifier continues to read &lt;strong&gt;BULL&lt;/strong&gt; with 42% confidence. Here's the weekly breakdown.&lt;/p&gt;

&lt;h2&gt;
  
  
  Market Snapshot
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;BTC&lt;/td&gt;
&lt;td&gt;$84,347&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ETH&lt;/td&gt;
&lt;td&gt;$2,685&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fear &amp;amp; Greed&lt;/td&gt;
&lt;td&gt;71 (Greed)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BTC Dominance&lt;/td&gt;
&lt;td&gt;58.6%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Regime&lt;/td&gt;
&lt;td&gt;BULL at 42%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Signal Breakdown
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Bullish signals: 4&lt;/li&gt;
&lt;li&gt;Bearish signals: 2&lt;/li&gt;
&lt;li&gt;Neutral signals: 1&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Data Moat Update
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;89,500&lt;/strong&gt; market snapshots collected&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;4612&lt;/strong&gt; regime transitions tracked&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;208&lt;/strong&gt; days of continuous monitoring&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What This Means for Traders
&lt;/h2&gt;

&lt;p&gt;Bull regime = risk-on. Trend-following strategies outperform. Full position sizing, let winners run. The SMA crossover flip is your exit signal, not a fixed stop loss.&lt;/p&gt;

&lt;h2&gt;
  
  
  Track This Live
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://getregime.com/api/v1/market/regime
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Free API, no auth needed. &lt;a href="https://getregime.com/quickstart" rel="noopener noreferrer"&gt;Full docs&lt;/a&gt; | &lt;a href="https://getregime.com/pricing" rel="noopener noreferrer"&gt;Pricing&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Try Regime Intelligence
&lt;/h2&gt;

&lt;p&gt;Regime is a real-time crypto market regime detection API. One endpoint tells you if the market is bull, bear, or chop — so your bot only trades when conditions match your strategy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://getregime.com/quickstart?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=weekly-regime-recap-2026-09-25" rel="noopener noreferrer"&gt;Free API access →&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://getregime.com/pricing?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=weekly-regime-recap-2026-09-25" rel="noopener noreferrer"&gt;See pricing →&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://getregime.com/docs?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=weekly-regime-recap-2026-09-25" rel="noopener noreferrer"&gt;API docs →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>crypto</category>
      <category>weekly</category>
      <category>analysis</category>
      <category>regime</category>
    </item>
    <item>
      <title>Weekly Regime Recap: BULL at 100% — September 19, 2026</title>
      <dc:creator>Gunnar Thorderson</dc:creator>
      <pubDate>Sat, 19 Sep 2026 09:00:12 +0000</pubDate>
      <link>https://dev.to/gunnarthorderson/weekly-regime-recap-bull-at-100-september-19-2026-16mk</link>
      <guid>https://dev.to/gunnarthorderson/weekly-regime-recap-bull-at-100-september-19-2026-16mk</guid>
      <description>&lt;h1&gt;
  
  
  Weekly Regime Recap — September 19, 2026
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Current Classification: BULL (100% confidence)
&lt;/h2&gt;

&lt;p&gt;The Regime classifier continues to read &lt;strong&gt;BULL&lt;/strong&gt; with 100% confidence. Here's the weekly breakdown.&lt;/p&gt;

&lt;h2&gt;
  
  
  Market Snapshot
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;BTC&lt;/td&gt;
&lt;td&gt;$81,068&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ETH&lt;/td&gt;
&lt;td&gt;$2,632&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fear &amp;amp; Greed&lt;/td&gt;
&lt;td&gt;71 (Greed)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BTC Dominance&lt;/td&gt;
&lt;td&gt;58.3%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Regime&lt;/td&gt;
&lt;td&gt;BULL at 100%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Signal Breakdown
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Bullish signals: 5&lt;/li&gt;
&lt;li&gt;Bearish signals: 0&lt;/li&gt;
&lt;li&gt;Neutral signals: 3&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Data Moat Update
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;87,759&lt;/strong&gt; market snapshots collected&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;4546&lt;/strong&gt; regime transitions tracked&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;202&lt;/strong&gt; days of continuous monitoring&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What This Means for Traders
&lt;/h2&gt;

&lt;p&gt;Bull regime = risk-on. Trend-following strategies outperform. Full position sizing, let winners run. The SMA crossover flip is your exit signal, not a fixed stop loss.&lt;/p&gt;

&lt;h2&gt;
  
  
  Track This Live
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://getregime.com/api/v1/market/regime
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Free API, no auth needed. &lt;a href="https://getregime.com/quickstart" rel="noopener noreferrer"&gt;Full docs&lt;/a&gt; | &lt;a href="https://getregime.com/pricing" rel="noopener noreferrer"&gt;Pricing&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Try Regime Intelligence
&lt;/h2&gt;

&lt;p&gt;Regime is a real-time crypto market regime detection API. One endpoint tells you if the market is bull, bear, or chop — so your bot only trades when conditions match your strategy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://getregime.com/quickstart?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=weekly-regime-recap-2026-09-19" rel="noopener noreferrer"&gt;Free API access →&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://getregime.com/pricing?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=weekly-regime-recap-2026-09-19" rel="noopener noreferrer"&gt;See pricing →&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://getregime.com/docs?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=weekly-regime-recap-2026-09-19" rel="noopener noreferrer"&gt;API docs →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>crypto</category>
      <category>weekly</category>
      <category>analysis</category>
      <category>regime</category>
    </item>
    <item>
      <title>Weekly Regime Recap: CHOP — September 13, 2026</title>
      <dc:creator>Gunnar Thorderson</dc:creator>
      <pubDate>Sun, 13 Sep 2026 09:00:09 +0000</pubDate>
      <link>https://dev.to/gunnarthorderson/weekly-regime-recap-chop-september-13-2026-5ane</link>
      <guid>https://dev.to/gunnarthorderson/weekly-regime-recap-chop-september-13-2026-5ane</guid>
      <description>&lt;h1&gt;
  
  
  Weekly Regime Recap — September 13, 2026
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Current Classification: CHOP — signals balanced
&lt;/h2&gt;

&lt;p&gt;The Regime classifier reads &lt;strong&gt;CHOP&lt;/strong&gt;: the weighted signals are near-balanced, with no side strong enough to call a trend. (Chop's confidence score is inverted by construction — it measures how &lt;em&gt;evenly matched&lt;/em&gt; the signals are, not how certain the call is, so we report the balance directly instead.)&lt;/p&gt;

&lt;h2&gt;
  
  
  Market Snapshot
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;BTC&lt;/td&gt;
&lt;td&gt;$77,301&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ETH&lt;/td&gt;
&lt;td&gt;$2,524&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fear &amp;amp; Greed&lt;/td&gt;
&lt;td&gt;61 (Greed)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BTC Dominance&lt;/td&gt;
&lt;td&gt;58.7%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Regime&lt;/td&gt;
&lt;td&gt;CHOP (signals balanced)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Signal Breakdown
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Bullish signals: 4&lt;/li&gt;
&lt;li&gt;Bearish signals: 3&lt;/li&gt;
&lt;li&gt;Neutral signals: 2&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Data Moat Update
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;86,019&lt;/strong&gt; market snapshots collected&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;4489&lt;/strong&gt; regime transitions tracked&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;196&lt;/strong&gt; days of continuous monitoring&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What This Means for Traders
&lt;/h2&gt;

&lt;p&gt;Chop regime = range-bound. Reduce position sizes by 50%. Mean reversion outperforms momentum. Wait for the regime to shift before adding significant risk.&lt;/p&gt;

&lt;h2&gt;
  
  
  Track This Live
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://getregime.com/api/v1/market/regime
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Free API, no auth needed. &lt;a href="https://getregime.com/quickstart" rel="noopener noreferrer"&gt;Full docs&lt;/a&gt; | &lt;a href="https://getregime.com/pricing" rel="noopener noreferrer"&gt;Pricing&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Try Regime Intelligence
&lt;/h2&gt;

&lt;p&gt;Regime is a real-time crypto market regime detection API. One endpoint tells you if the market is bull, bear, or chop — so your bot only trades when conditions match your strategy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://getregime.com/quickstart?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=weekly-regime-recap-2026-09-13" rel="noopener noreferrer"&gt;Free API access →&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://getregime.com/pricing?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=weekly-regime-recap-2026-09-13" rel="noopener noreferrer"&gt;See pricing →&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://getregime.com/docs?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=weekly-regime-recap-2026-09-13" rel="noopener noreferrer"&gt;API docs →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>crypto</category>
      <category>weekly</category>
      <category>analysis</category>
      <category>regime</category>
    </item>
    <item>
      <title>Weekly Regime Recap: BULL at 42% — September 7, 2026</title>
      <dc:creator>Gunnar Thorderson</dc:creator>
      <pubDate>Mon, 07 Sep 2026 09:00:21 +0000</pubDate>
      <link>https://dev.to/gunnarthorderson/weekly-regime-recap-bull-at-42-september-7-2026-4noe</link>
      <guid>https://dev.to/gunnarthorderson/weekly-regime-recap-bull-at-42-september-7-2026-4noe</guid>
      <description>&lt;h1&gt;
  
  
  Weekly Regime Recap — September 7, 2026
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Current Classification: BULL (42% confidence)
&lt;/h2&gt;

&lt;p&gt;The Regime classifier continues to read &lt;strong&gt;BULL&lt;/strong&gt; with 42% confidence. Here's the weekly breakdown.&lt;/p&gt;

&lt;h2&gt;
  
  
  Market Snapshot
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;BTC&lt;/td&gt;
&lt;td&gt;$79,842&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ETH&lt;/td&gt;
&lt;td&gt;$2,512&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fear &amp;amp; Greed&lt;/td&gt;
&lt;td&gt;71 (Greed)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BTC Dominance&lt;/td&gt;
&lt;td&gt;59.1%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Regime&lt;/td&gt;
&lt;td&gt;BULL at 42%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Signal Breakdown
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Bullish signals: 5&lt;/li&gt;
&lt;li&gt;Bearish signals: 3&lt;/li&gt;
&lt;li&gt;Neutral signals: 0&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Data Moat Update
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;84,291&lt;/strong&gt; market snapshots collected&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;4420&lt;/strong&gt; regime transitions tracked&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;190&lt;/strong&gt; days of continuous monitoring&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What This Means for Traders
&lt;/h2&gt;

&lt;p&gt;Bull regime = risk-on. Trend-following strategies outperform. Full position sizing, let winners run. The SMA crossover flip is your exit signal, not a fixed stop loss.&lt;/p&gt;

&lt;h2&gt;
  
  
  Track This Live
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://getregime.com/api/v1/market/regime
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Free API, no auth needed. &lt;a href="https://getregime.com/quickstart" rel="noopener noreferrer"&gt;Full docs&lt;/a&gt; | &lt;a href="https://getregime.com/pricing" rel="noopener noreferrer"&gt;Pricing&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Try Regime Intelligence
&lt;/h2&gt;

&lt;p&gt;Regime is a real-time crypto market regime detection API. One endpoint tells you if the market is bull, bear, or chop — so your bot only trades when conditions match your strategy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://getregime.com/quickstart?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=weekly-regime-recap-2026-09-07" rel="noopener noreferrer"&gt;Free API access →&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://getregime.com/pricing?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=weekly-regime-recap-2026-09-07" rel="noopener noreferrer"&gt;See pricing →&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://getregime.com/docs?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=weekly-regime-recap-2026-09-07" rel="noopener noreferrer"&gt;API docs →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>crypto</category>
      <category>weekly</category>
      <category>analysis</category>
      <category>regime</category>
    </item>
    <item>
      <title>Weekly Regime Recap: BULL at 83% — September 1, 2026</title>
      <dc:creator>Gunnar Thorderson</dc:creator>
      <pubDate>Tue, 01 Sep 2026 09:00:18 +0000</pubDate>
      <link>https://dev.to/gunnarthorderson/weekly-regime-recap-bull-at-83-september-1-2026-121g</link>
      <guid>https://dev.to/gunnarthorderson/weekly-regime-recap-bull-at-83-september-1-2026-121g</guid>
      <description>&lt;h1&gt;
  
  
  Weekly Regime Recap — September 1, 2026
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Current Classification: BULL (83% confidence)
&lt;/h2&gt;

&lt;p&gt;The Regime classifier continues to read &lt;strong&gt;BULL&lt;/strong&gt; with 83% confidence. Here's the weekly breakdown.&lt;/p&gt;

&lt;h2&gt;
  
  
  Market Snapshot
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;BTC&lt;/td&gt;
&lt;td&gt;$79,139&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ETH&lt;/td&gt;
&lt;td&gt;$2,481&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fear &amp;amp; Greed&lt;/td&gt;
&lt;td&gt;69 (Greed)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BTC Dominance&lt;/td&gt;
&lt;td&gt;59.2%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Regime&lt;/td&gt;
&lt;td&gt;BULL at 83%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Signal Breakdown
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Bullish signals: 5&lt;/li&gt;
&lt;li&gt;Bearish signals: 1&lt;/li&gt;
&lt;li&gt;Neutral signals: 2&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Data Moat Update
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;82,561&lt;/strong&gt; market snapshots collected&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;4338&lt;/strong&gt; regime transitions tracked&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;184&lt;/strong&gt; days of continuous monitoring&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What This Means for Traders
&lt;/h2&gt;

&lt;p&gt;Bull regime = risk-on. Trend-following strategies outperform. Full position sizing, let winners run. The SMA crossover flip is your exit signal, not a fixed stop loss.&lt;/p&gt;

&lt;h2&gt;
  
  
  Track This Live
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://getregime.com/api/v1/market/regime
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Free API, no auth needed. &lt;a href="https://getregime.com/quickstart" rel="noopener noreferrer"&gt;Full docs&lt;/a&gt; | &lt;a href="https://getregime.com/pricing" rel="noopener noreferrer"&gt;Pricing&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Try Regime Intelligence
&lt;/h2&gt;

&lt;p&gt;Regime is a real-time crypto market regime detection API. One endpoint tells you if the market is bull, bear, or chop — so your bot only trades when conditions match your strategy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://getregime.com/quickstart?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=weekly-regime-recap-2026-09-01" rel="noopener noreferrer"&gt;Free API access →&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://getregime.com/pricing?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=weekly-regime-recap-2026-09-01" rel="noopener noreferrer"&gt;See pricing →&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://getregime.com/docs?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=weekly-regime-recap-2026-09-01" rel="noopener noreferrer"&gt;API docs →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>crypto</category>
      <category>weekly</category>
      <category>analysis</category>
      <category>regime</category>
    </item>
    <item>
      <title>Weekly Regime Recap: CHOP — August 28, 2026</title>
      <dc:creator>Gunnar Thorderson</dc:creator>
      <pubDate>Fri, 28 Aug 2026 09:00:17 +0000</pubDate>
      <link>https://dev.to/gunnarthorderson/weekly-regime-recap-chop-august-28-2026-2751</link>
      <guid>https://dev.to/gunnarthorderson/weekly-regime-recap-chop-august-28-2026-2751</guid>
      <description>&lt;h1&gt;
  
  
  Weekly Regime Recap — August 28, 2026
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Current Classification: CHOP — signals balanced
&lt;/h2&gt;

&lt;p&gt;The Regime classifier reads &lt;strong&gt;CHOP&lt;/strong&gt;: the weighted signals are near-balanced, with no side strong enough to call a trend. (Chop's confidence score is inverted by construction — it measures how &lt;em&gt;evenly matched&lt;/em&gt; the signals are, not how certain the call is, so we report the balance directly instead.)&lt;/p&gt;

&lt;h2&gt;
  
  
  Market Snapshot
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;BTC&lt;/td&gt;
&lt;td&gt;$79,791&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ETH&lt;/td&gt;
&lt;td&gt;$2,494&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fear &amp;amp; Greed&lt;/td&gt;
&lt;td&gt;73 (Greed)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BTC Dominance&lt;/td&gt;
&lt;td&gt;59.3%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Regime&lt;/td&gt;
&lt;td&gt;CHOP (signals balanced)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Signal Breakdown
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Bullish signals: 4&lt;/li&gt;
&lt;li&gt;Bearish signals: 3&lt;/li&gt;
&lt;li&gt;Neutral signals: 1&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Data Moat Update
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;81,406&lt;/strong&gt; market snapshots collected&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;4266&lt;/strong&gt; regime transitions tracked&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;180&lt;/strong&gt; days of continuous monitoring&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What This Means for Traders
&lt;/h2&gt;

&lt;p&gt;Chop regime = range-bound. Reduce position sizes by 50%. Mean reversion outperforms momentum. Wait for the regime to shift before adding significant risk.&lt;/p&gt;

&lt;h2&gt;
  
  
  Track This Live
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://getregime.com/api/v1/market/regime
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Free API, no auth needed. &lt;a href="https://getregime.com/quickstart" rel="noopener noreferrer"&gt;Full docs&lt;/a&gt; | &lt;a href="https://getregime.com/pricing" rel="noopener noreferrer"&gt;Pricing&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Try Regime Intelligence
&lt;/h2&gt;

&lt;p&gt;Regime is a real-time crypto market regime detection API. One endpoint tells you if the market is bull, bear, or chop — so your bot only trades when conditions match your strategy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://getregime.com/quickstart?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=weekly-regime-recap-2026-08-28" rel="noopener noreferrer"&gt;Free API access →&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://getregime.com/pricing?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=weekly-regime-recap-2026-08-28" rel="noopener noreferrer"&gt;See pricing →&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://getregime.com/docs?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=weekly-regime-recap-2026-08-28" rel="noopener noreferrer"&gt;API docs →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>crypto</category>
      <category>weekly</category>
      <category>analysis</category>
      <category>regime</category>
    </item>
    <item>
      <title>Weekly Regime Recap: CHOP — August 21, 2026</title>
      <dc:creator>Gunnar Thorderson</dc:creator>
      <pubDate>Fri, 21 Aug 2026 09:00:19 +0000</pubDate>
      <link>https://dev.to/gunnarthorderson/weekly-regime-recap-chop-august-21-2026-eo7</link>
      <guid>https://dev.to/gunnarthorderson/weekly-regime-recap-chop-august-21-2026-eo7</guid>
      <description>&lt;h1&gt;
  
  
  Weekly Regime Recap — August 21, 2026
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Current Classification: CHOP — signals balanced
&lt;/h2&gt;

&lt;p&gt;The Regime classifier reads &lt;strong&gt;CHOP&lt;/strong&gt;: the weighted signals are near-balanced, with no side strong enough to call a trend. (Chop's confidence score is inverted by construction — it measures how &lt;em&gt;evenly matched&lt;/em&gt; the signals are, not how certain the call is, so we report the balance directly instead.)&lt;/p&gt;

&lt;h2&gt;
  
  
  Market Snapshot
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;BTC&lt;/td&gt;
&lt;td&gt;$74,852&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ETH&lt;/td&gt;
&lt;td&gt;$2,343&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fear &amp;amp; Greed&lt;/td&gt;
&lt;td&gt;72 (Greed)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BTC Dominance&lt;/td&gt;
&lt;td&gt;59.0%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Regime&lt;/td&gt;
&lt;td&gt;CHOP (signals balanced)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Signal Breakdown
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Bullish signals: 3&lt;/li&gt;
&lt;li&gt;Bearish signals: 3&lt;/li&gt;
&lt;li&gt;Neutral signals: 2&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Data Moat Update
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;77,931&lt;/strong&gt; market snapshots collected&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;2571&lt;/strong&gt; regime transitions tracked&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;173&lt;/strong&gt; days of continuous monitoring&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What This Means for Traders
&lt;/h2&gt;

&lt;p&gt;Chop regime = range-bound. Reduce position sizes by 50%. Mean reversion outperforms momentum. Wait for the regime to shift before adding significant risk.&lt;/p&gt;

&lt;h2&gt;
  
  
  Track This Live
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://getregime.com/api/v1/market/regime
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Free API, no auth needed. &lt;a href="https://getregime.com/quickstart" rel="noopener noreferrer"&gt;Full docs&lt;/a&gt; | &lt;a href="https://getregime.com/pricing" rel="noopener noreferrer"&gt;Pricing&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Try Regime Intelligence
&lt;/h2&gt;

&lt;p&gt;Regime is a real-time crypto market regime detection API. One endpoint tells you if the market is bull, bear, or chop — so your bot only trades when conditions match your strategy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://getregime.com/quickstart?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=weekly-regime-recap-2026-08-21" rel="noopener noreferrer"&gt;Free API access →&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://getregime.com/pricing?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=weekly-regime-recap-2026-08-21" rel="noopener noreferrer"&gt;See pricing →&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://getregime.com/docs?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=weekly-regime-recap-2026-08-21" rel="noopener noreferrer"&gt;API docs →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>crypto</category>
      <category>weekly</category>
      <category>analysis</category>
      <category>regime</category>
    </item>
    <item>
      <title>Post-Mortem: Our Bull Regime Was Mathematically Unreachable for 156 Days</title>
      <dc:creator>Gunnar Thorderson</dc:creator>
      <pubDate>Sat, 08 Aug 2026 09:00:09 +0000</pubDate>
      <link>https://dev.to/gunnarthorderson/post-mortem-our-bull-regime-was-mathematically-unreachable-for-156-days-3j3j</link>
      <guid>https://dev.to/gunnarthorderson/post-mortem-our-bull-regime-was-mathematically-unreachable-for-156-days-3j3j</guid>
      <description>&lt;h1&gt;
  
  
  Post-Mortem: Our Bull Regime Was Mathematically Unreachable for 156 Days
&lt;/h1&gt;

&lt;p&gt;We build Regime to classify the crypto market as bull, bear, or chop from a weighted basket of signals. On 2026-08-03, while preparing a data sample for a prospective customer, we found that our classifier had not emitted a single &lt;code&gt;bull&lt;/code&gt; label in 156 days — 68,098 snapshots — despite BTC running from a March low of $65,191 to a May high of $82,782, a +27% rally.&lt;/p&gt;

&lt;p&gt;The label read &lt;code&gt;bear&lt;/code&gt; the entire way up.&lt;/p&gt;

&lt;p&gt;This is the post-mortem. We're publishing it because the alternative — quietly shipping a fix and saying nothing — is exactly the failure mode that let this happen in the first place.&lt;/p&gt;

&lt;h2&gt;
  
  
  The number
&lt;/h2&gt;

&lt;p&gt;Across 2026-03-02 → 2026-08-03:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;63,913 bear labels (93.9%)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;4,186 chop labels (6.1%)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;0 bull labels&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;chop&lt;/code&gt; itself collapsed to 8 observations in June and zero in July and August. So it wasn't just "bull is rare" — the model had degenerated to a single output.&lt;/p&gt;

&lt;h2&gt;
  
  
  Root cause: this was never a bad market call
&lt;/h2&gt;

&lt;p&gt;The first question anyone asks about a "wrong" classification is whether the model was just miscalibrated for the conditions — an aggressive bear read during a choppy market, the kind of thing you'd tune and move on from. That's not what this was. We could prove, from the weights alone, that &lt;code&gt;bull&lt;/code&gt; was &lt;strong&gt;arithmetically impossible&lt;/strong&gt; to reach.&lt;/p&gt;

&lt;p&gt;The classifier is a weighted vote: &lt;code&gt;netScore = bullScore − bearScore&lt;/code&gt;, normalized across whichever signals are currently live, with &lt;code&gt;bull&lt;/code&gt; requiring &lt;code&gt;netScore &amp;gt; +0.20&lt;/code&gt;. Signal weights: BTC SMA 50/200 at 0.20, everything else at 0.10. Over the trailing 30 days before the fix:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Bucket&lt;/th&gt;
&lt;th&gt;Signals&lt;/th&gt;
&lt;th&gt;Weight&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Permanently bearish&lt;/td&gt;
&lt;td&gt;BTC SMA 50/200, Fear &amp;amp; Greed, BTC Dominance&lt;/td&gt;
&lt;td&gt;0.40&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Frozen at neutral (dead weight in the denominator)&lt;/td&gt;
&lt;td&gt;BTC Funding Rate, Agg Funding Rate, Stablecoin Supply, Volatility Regime&lt;/td&gt;
&lt;td&gt;0.40&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Actually variable&lt;/td&gt;
&lt;td&gt;DXY, Volume Profile&lt;/td&gt;
&lt;td&gt;0.20&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Best possible outcome: &lt;code&gt;0.20 (max bullish) − 0.40 (guaranteed bearish) = −0.20&lt;/code&gt;. The ceiling sat exactly on the bear/chop boundary. That's also why &lt;code&gt;chop&lt;/code&gt; vanished — there was no headroom above bear to even reach neutral territory, let alone bull.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why four signals were frozen
&lt;/h2&gt;

&lt;p&gt;Four of our ten signals had been stuck reporting &lt;code&gt;neutral&lt;/code&gt; on every observation for months, silently dropping out of the vote while still occupying denominator weight:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;BTC Funding Rate — a ~100x unit bug.&lt;/strong&gt; Thresholds were written in percent (&lt;code&gt;&amp;gt; 0.01&lt;/code&gt; bearish, &lt;code&gt;&amp;lt; -0.005&lt;/code&gt; bullish) but compared against a decimal rate. The observed 30-day range was &lt;code&gt;[-0.00003, 0.0001]&lt;/code&gt; — three orders of magnitude away from either threshold. Unreachable by construction.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Aggregated Funding Rate — a ~10-20x scale bug.&lt;/strong&gt; Same shape of defect: bounds set at &lt;code&gt;-0.0001 / 0.0003&lt;/code&gt; against an observed range of &lt;code&gt;[-0.000025, 0.000013]&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Volatility Regime — thresholds outside the real distribution.&lt;/strong&gt; Fired on &lt;code&gt;atr20/atr90 &amp;gt; 1.5&lt;/code&gt; or &lt;code&gt;&amp;lt; 0.7&lt;/code&gt;; the observed range was &lt;code&gt;[0.70, 1.00]&lt;/code&gt;, mean 0.85. The bearish threshold sat right at the theoretical minimum of the ratio.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stablecoin Supply — wrong comparison window.&lt;/strong&gt; The ±0.5% move threshold was designed for a multi-day signal but was being computed against the &lt;em&gt;previous poll&lt;/em&gt;, roughly two minutes earlier. The delta was always effectively zero.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A tenth signal, &lt;strong&gt;Liquidation Imbalance&lt;/strong&gt;, had already dropped out entirely — its upstream data dependency lapsed on 2026-04-09, and the classifier silently degraded from 10 signals to 9 with no error and no alarm. HTTP 200 the entire time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why it stayed invisible for 156 days
&lt;/h2&gt;

&lt;p&gt;This is the part that actually matters for anyone running a similar system: &lt;strong&gt;our test suite was green the whole time.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The unit tests asserted that &lt;code&gt;bull&lt;/code&gt; was reachable — using inputs that could not occur in the real market. &lt;code&gt;fundingRate: -0.01&lt;/code&gt; (roughly 300x beyond the observed minimum). &lt;code&gt;dxy: 95&lt;/code&gt; (the observed floor was 99.49). &lt;code&gt;btcDominance: 40&lt;/code&gt; (the observed floor was 55.43). The tests passed against a market that doesn't exist. Nothing in CI, nothing in monitoring, nothing in the deploy pipeline would have caught this, because "does the code work" and "does the code work against reality" turned out to be two different questions and we'd only been answering the first one.&lt;/p&gt;

&lt;h2&gt;
  
  
  What we fixed (v2.0.0, 2026-08-03)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;BTC Funding Rate&lt;/strong&gt;: thresholds rescaled to the actual decimal range — bearish above &lt;code&gt;0.0001&lt;/code&gt;, bullish below &lt;code&gt;0&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Aggregated Funding Rate&lt;/strong&gt;: bearish above &lt;code&gt;0.00001&lt;/code&gt;, bullish below &lt;code&gt;0&lt;/code&gt; — cross-exchange aggregates run roughly an order of magnitude tighter than single-venue.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Volatility Regime&lt;/strong&gt;: recalibrated inside the observed distribution — bullish (compression) below &lt;code&gt;0.80&lt;/code&gt;, bearish (expansion) above &lt;code&gt;0.95&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stablecoin Supply&lt;/strong&gt;: the ±0.5% threshold itself was left unchanged; we fixed the window. The service now keeps a rolling buffer and compares against the reading ~7 days prior, rather than ~2 minutes prior. Until that buffer has a full week of history, the signal is &lt;strong&gt;omitted entirely&lt;/strong&gt; rather than emitting a fabricated &lt;code&gt;neutral&lt;/code&gt; — a temporarily-smaller-but-honest signal set beats a fixed-size dishonest one.&lt;/li&gt;
&lt;li&gt;Every classification now carries a &lt;code&gt;modelVersion&lt;/code&gt; field.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What we explicitly did not do
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;No backfill. No restatement.&lt;/strong&gt; Every v1 label stands exactly as it was recorded, defect included. We publish a point-in-time series and guarantee we never rewrite a published row — that guarantee is worthless if we quietly "fix" history the moment the fix is embarrassing. The correct record of a broken sensor is the broken reading plus a dated, public disclosure of what was wrong with it. Not a smoothed-over history.&lt;/p&gt;

&lt;p&gt;We also left BTC SMA 50/200, Fear &amp;amp; Greed, and BTC Dominance bearish. They were reporting real conditions during that window — a genuine death cross, Fear &amp;amp; Greed in the 20-33 range, dominance at 55-60. Only demonstrably broken signals were touched. (BTC Dominance's &lt;code&gt;&amp;gt;55&lt;/code&gt; bearish threshold sits right at the floor of its observed range and is a legitimate open question for a future version — we deliberately didn't touch it here, to keep this release scoped to fixing defects rather than making a new opinion.)&lt;/p&gt;

&lt;h2&gt;
  
  
  Guardrails so this can't happen silently again
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A regression suite pinned to &lt;strong&gt;observed production ranges&lt;/strong&gt;, not synthetic ones. Two assertions in particular would have caught this in April instead of August: &lt;code&gt;bull&lt;/code&gt; must be reachable using only values the market has actually printed, and no signal may read &lt;code&gt;neutral&lt;/code&gt; at both ends of its real range simultaneously.&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;constant-output guard&lt;/strong&gt; that fails CI when any individual signal returns the same interpretation for N consecutive days — the exact pattern that let four signals sit frozen for months undetected.&lt;/li&gt;
&lt;li&gt;We no longer publish a hardcoded signal count anywhere in our product surfaces or documentation. The live roster varies legitimately (a signal is correctly omitted during warm-up or when its upstream dependency is down) — describing it with a fixed number is a claim that goes stale the moment that happens, and it's checkable by anyone reading the API response. We'd rather point at the live &lt;code&gt;signals[]&lt;/code&gt; array than make a claim we can't keep current.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why we're telling you this
&lt;/h2&gt;

&lt;p&gt;We sell a point-in-time label series with a "never restated" guarantee. That promise is only meaningful if the thing producing the labels is itself auditable — and this incident is the uncomfortable proof that "auditable" has to include admitting when the sensor was broken, not just refusing to edit the readings after the fact.&lt;/p&gt;

&lt;p&gt;If you're running anything that classifies real-world state from a weighted vote of signals — trading systems, alerting, anomaly detection — the actual lesson here isn't "check your thresholds." It's: &lt;strong&gt;test against the range of values your system has actually observed, not the range you assume it might see.&lt;/strong&gt; A green test suite told us nothing for five months because it was testing an imaginary market.&lt;/p&gt;

&lt;p&gt;Full model changelog, including every threshold that changed: &lt;a href="https://github.com/Thordersonjg/crypto-spec-engine/blob/master/docs/REGIME-MODEL-CHANGELOG.md" rel="noopener noreferrer"&gt;docs/REGIME-MODEL-CHANGELOG.md&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Live model version and current signal breakdown: &lt;code&gt;GET /api/v1/market/regime&lt;/code&gt; at &lt;a href="https://getregime.com" rel="noopener noreferrer"&gt;getregime.com&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Try Regime Intelligence
&lt;/h2&gt;

&lt;p&gt;Regime is a real-time crypto market regime detection API. One endpoint tells you if the market is bull, bear, or chop — so your bot only trades when conditions match your strategy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://getregime.com/quickstart?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=post-mortem-bull-was-mathematically-unreachable" rel="noopener noreferrer"&gt;Free API access →&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://getregime.com/pricing?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=post-mortem-bull-was-mathematically-unreachable" rel="noopener noreferrer"&gt;See pricing →&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://getregime.com/docs?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=post-mortem-bull-was-mathematically-unreachable" rel="noopener noreferrer"&gt;API docs →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>engineering</category>
      <category>incident</category>
      <category>regimedetection</category>
      <category>transparency</category>
    </item>
    <item>
      <title>Weekly Regime Recap: BEAR at 71% — March 26, 2026</title>
      <dc:creator>Gunnar Thorderson</dc:creator>
      <pubDate>Sat, 25 Jul 2026 09:00:10 +0000</pubDate>
      <link>https://dev.to/gunnarthorderson/weekly-regime-recap-bear-at-71-march-26-2026-48ie</link>
      <guid>https://dev.to/gunnarthorderson/weekly-regime-recap-bear-at-71-march-26-2026-48ie</guid>
      <description>&lt;h1&gt;
  
  
  Weekly Regime Recap — March 26, 2026
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Current Classification: BEAR (71% confidence)
&lt;/h2&gt;

&lt;p&gt;The Regime classifier continues to read &lt;strong&gt;BEAR&lt;/strong&gt; with 71% confidence. Here's the weekly breakdown.&lt;/p&gt;

&lt;h2&gt;
  
  
  Market Snapshot
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;BTC&lt;/td&gt;
&lt;td&gt;$69,404&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ETH&lt;/td&gt;
&lt;td&gt;$2,074&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fear &amp;amp; Greed&lt;/td&gt;
&lt;td&gt;10 (Extreme Fear)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BTC Dominance&lt;/td&gt;
&lt;td&gt;56.5%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Regime&lt;/td&gt;
&lt;td&gt;BEAR at 71%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Signal Breakdown
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Bullish signals: 1&lt;/li&gt;
&lt;li&gt;Bearish signals: 3&lt;/li&gt;
&lt;li&gt;Neutral signals: 2&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Data Moat Update
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;6,802&lt;/strong&gt; market snapshots collected&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;68&lt;/strong&gt; regime transitions tracked&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;25&lt;/strong&gt; days of continuous monitoring&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What This Means for Traders
&lt;/h2&gt;

&lt;p&gt;Bear regime = capital preservation mode. Reduce long exposure to 10-15% of normal. Don't try to catch the bottom. The regime flip from bear to chop is the first signal to watch for.&lt;/p&gt;

&lt;p&gt;At 10 Fear &amp;amp; Greed (Extreme Fear), sentiment is extremely negative. Historically, extreme fear persists during bear markets — it's a necessary condition for a bottom but not sufficient on its own.&lt;/p&gt;

&lt;h2&gt;
  
  
  Track This Live
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://getregime.com/api/v1/market/regime
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Free API, no auth needed. &lt;a href="https://getregime.com/quickstart" rel="noopener noreferrer"&gt;Full docs&lt;/a&gt; | &lt;a href="https://getregime.com/pricing" rel="noopener noreferrer"&gt;Pricing&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Try Regime Intelligence
&lt;/h2&gt;

&lt;p&gt;Regime is a real-time crypto market regime detection API. One endpoint tells you if the market is bull, bear, or chop — so your bot only trades when conditions match your strategy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://getregime.com/quickstart?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=weekly-regime-recap-2026-03-26" rel="noopener noreferrer"&gt;Free API access →&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://getregime.com/pricing?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=weekly-regime-recap-2026-03-26" rel="noopener noreferrer"&gt;See pricing →&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://getregime.com/docs?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=weekly-regime-recap-2026-03-26" rel="noopener noreferrer"&gt;API docs →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>crypto</category>
      <category>weekly</category>
      <category>analysis</category>
      <category>regime</category>
    </item>
    <item>
      <title>Why Your Crypto Trading Bot Loses Money (And How to Fix It)</title>
      <dc:creator>Gunnar Thorderson</dc:creator>
      <pubDate>Fri, 24 Jul 2026 09:00:15 +0000</pubDate>
      <link>https://dev.to/gunnarthorderson/why-your-crypto-trading-bot-loses-money-and-how-to-fix-it-4oi0</link>
      <guid>https://dev.to/gunnarthorderson/why-your-crypto-trading-bot-loses-money-and-how-to-fix-it-4oi0</guid>
      <description>&lt;h1&gt;
  
  
  Why Your Crypto Trading Bot Loses Money
&lt;/h1&gt;

&lt;p&gt;You've backtested your strategy. It looked amazing on historical data. You went live and it started bleeding money. This happens to almost every crypto bot developer, and the reason is simpler than you think.&lt;/p&gt;

&lt;h2&gt;
  
  
  The #1 Killer: Regime Blindness
&lt;/h2&gt;

&lt;p&gt;Your bot doesn't know what kind of market it's in. It trades the same way whether Bitcoin is in a raging bull run or a grinding bear market.&lt;/p&gt;

&lt;p&gt;This is like driving the same speed on a highway and in a school zone. The vehicle works fine — the problem is context awareness.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Data
&lt;/h2&gt;

&lt;p&gt;We backtested multiple strategies across 302K candles (March 2023 to March 2026):&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Strategy&lt;/th&gt;
&lt;th&gt;Bull Market Return&lt;/th&gt;
&lt;th&gt;Bear Market Return&lt;/th&gt;
&lt;th&gt;Net (Unfiltered)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;SMA 50/200 Crossover&lt;/td&gt;
&lt;td&gt;+89%&lt;/td&gt;
&lt;td&gt;-48%&lt;/td&gt;
&lt;td&gt;+41%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MACD Crossover&lt;/td&gt;
&lt;td&gt;+34%&lt;/td&gt;
&lt;td&gt;-67%&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;-33%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RSI Mean Reversion&lt;/td&gt;
&lt;td&gt;+12%&lt;/td&gt;
&lt;td&gt;-28%&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;-16%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bollinger Band Bounce&lt;/td&gt;
&lt;td&gt;+45%&lt;/td&gt;
&lt;td&gt;-31%&lt;/td&gt;
&lt;td&gt;+14%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Notice the pattern: &lt;strong&gt;every strategy is profitable in bull markets and unprofitable in bear markets.&lt;/strong&gt; The net return depends entirely on whether the bot was running during more bull or bear time.&lt;/p&gt;

&lt;p&gt;MACD loses money overall because the bear losses exceed the bull gains. Most developers blame the strategy, but the real culprit is regime blindness.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Fix: One API Call
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;regime&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://getregime.com/api/v1/market/regime&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;regime&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;regime&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;bear&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;regime&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;confidence&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mf"&gt;0.7&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;position_size&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;  &lt;span class="c1"&gt;# Don't trade in confirmed bear markets
&lt;/span&gt;&lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;regime&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;regime&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;chop&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;position_size&lt;/span&gt; &lt;span class="o"&gt;*=&lt;/span&gt; &lt;span class="mf"&gt;0.4&lt;/span&gt;  &lt;span class="c1"&gt;# Reduce in chop
# else: full size in bull
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. One API call, one if-statement, and your bot stops bleeding money in bear markets.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Results
&lt;/h2&gt;

&lt;p&gt;Adding this regime filter to the SMA 50/200 crossover:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Asset&lt;/th&gt;
&lt;th&gt;Without Filter&lt;/th&gt;
&lt;th&gt;With Filter&lt;/th&gt;
&lt;th&gt;Improvement&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;BTC&lt;/td&gt;
&lt;td&gt;+41%&lt;/td&gt;
&lt;td&gt;+41% (less DD)&lt;/td&gt;
&lt;td&gt;-40% drawdown&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ETH&lt;/td&gt;
&lt;td&gt;+41%&lt;/td&gt;
&lt;td&gt;+166%&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;+305%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SOL&lt;/td&gt;
&lt;td&gt;+312%&lt;/td&gt;
&lt;td&gt;+586%&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;+88%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The filter doesn't make your strategy smarter. It makes your strategy &lt;strong&gt;not stupid&lt;/strong&gt; during the times when being in the market at all is the mistake.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Deeper Insight
&lt;/h2&gt;

&lt;p&gt;Most losses come from three specific failure modes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Trading momentum in chop&lt;/strong&gt; — your trend-following bot gets whipsawed in range-bound markets&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Holding longs in bear&lt;/strong&gt; — your bot bought the "dip" that kept dipping&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Using tight stop losses with leverage&lt;/strong&gt; — 3% SL + 5x leverage gets stopped out by normal volatility&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;All three are solved by regime awareness.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get Started
&lt;/h2&gt;

&lt;p&gt;Free API, no auth needed:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://getregime.com/api/v1/market/regime
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Python bot example: &lt;a href="https://github.com/Thordersonjg/regime-trading-bot" rel="noopener noreferrer"&gt;github.com/Thordersonjg/regime-trading-bot&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Running Freqtrade? There's a drop-in regime filter that adds exactly this gate to your existing strategy — open-source at &lt;a href="https://github.com/Thordersonjg/freqtrade-regime-filter" rel="noopener noreferrer"&gt;github.com/Thordersonjg/freqtrade-regime-filter&lt;/a&gt;. Grab it + a &lt;strong&gt;free API key (auto-provisioned)&lt;/strong&gt; at &lt;strong&gt;&lt;a href="https://getregime.com/freqtrade-strategy" rel="noopener noreferrer"&gt;getregime.com/freqtrade-strategy&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Full tutorial: &lt;a href="https://getregime.com/blog/crypto-regime-detection-python-tutorial" rel="noopener noreferrer"&gt;getregime.com/blog/crypto-regime-detection-python-tutorial&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;npm SDK: &lt;code&gt;npm install getregime&lt;/code&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Try Regime Intelligence
&lt;/h2&gt;

&lt;p&gt;Regime is a real-time crypto market regime detection API. One endpoint tells you if the market is bull, bear, or chop — so your bot only trades when conditions match your strategy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://getregime.com/quickstart?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=why-your-crypto-bot-loses-money" rel="noopener noreferrer"&gt;Free API access →&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://getregime.com/pricing?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=why-your-crypto-bot-loses-money" rel="noopener noreferrer"&gt;See pricing →&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://getregime.com/docs?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=why-your-crypto-bot-loses-money" rel="noopener noreferrer"&gt;API docs →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>crypto</category>
      <category>trading</category>
      <category>bot</category>
      <category>strategy</category>
    </item>
    <item>
      <title>What is Crypto Market Regime Detection? A Complete Guide</title>
      <dc:creator>Gunnar Thorderson</dc:creator>
      <pubDate>Fri, 24 Jul 2026 09:00:11 +0000</pubDate>
      <link>https://dev.to/gunnarthorderson/what-is-crypto-market-regime-detection-a-complete-guide-56en</link>
      <guid>https://dev.to/gunnarthorderson/what-is-crypto-market-regime-detection-a-complete-guide-56en</guid>
      <description>&lt;h1&gt;
  
  
  What is Crypto Market Regime Detection? A Complete Guide
&lt;/h1&gt;

&lt;p&gt;Every profitable crypto trader — whether human or algorithmic — eventually arrives at the same realization: &lt;strong&gt;the strategy that works in a bull market will destroy your capital in a bear market&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Market regime detection is the systematic solution to this problem. Instead of guessing whether "we're in a bull market," regime detection uses quantitative signals to classify the current market environment into distinct states — typically &lt;strong&gt;bull&lt;/strong&gt;, &lt;strong&gt;bear&lt;/strong&gt;, or &lt;strong&gt;chop&lt;/strong&gt; (sideways/ranging) — with a measurable confidence score.&lt;/p&gt;

&lt;p&gt;In this guide, we'll break down exactly what regime detection is, why it matters, how it works under the hood, and how you can integrate it into your trading stack with a single API call.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Market Regime Matters
&lt;/h2&gt;

&lt;p&gt;Consider two simple scenarios:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scenario A — Bull Market (Q4 2024)&lt;/strong&gt;: BTC is trending up, altcoins are outperforming, funding rates are positive but not extreme, and Fear &amp;amp; Greed is at 72. A momentum strategy buying breakouts returns +40% in 3 months.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scenario B — Bear Market (Q2 2022)&lt;/strong&gt;: BTC is in a downtrend, altcoins are bleeding, funding rates are negative, and Fear &amp;amp; Greed is at 15. That same breakout strategy returns -60%.&lt;/p&gt;

&lt;p&gt;The strategy didn't change. &lt;strong&gt;The regime changed.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is why regime detection is the single most valuable input for any systematic trading system. It answers the question every other signal depends on: &lt;em&gt;"What type of market are we in right now?"&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The Cost of Ignoring Regime
&lt;/h3&gt;

&lt;p&gt;Without regime awareness, traders typically:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Run bull-market strategies in bear markets&lt;/strong&gt; — leading to cascading losses&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Size positions uniformly&lt;/strong&gt; — taking the same risk in high-volatility chop as in clean trends&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Miss regime transitions&lt;/strong&gt; — staying long weeks after the market has shifted bearish&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Over-optimize for one regime&lt;/strong&gt; — building strategies that backtest beautifully in trending markets but blow up in chop&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Academic research consistently shows that &lt;strong&gt;regime-conditional strategies outperform static strategies by 30-60%&lt;/strong&gt; on a risk-adjusted basis (Ang &amp;amp; Bekaert, 2002; Guidolin &amp;amp; Timmermann, 2007).&lt;/p&gt;

&lt;h2&gt;
  
  
  How Regime Detection Works
&lt;/h2&gt;

&lt;p&gt;At its core, regime detection combines multiple market signals into a single classification. There are several approaches, ranging from simple to sophisticated.&lt;/p&gt;

&lt;h3&gt;
  
  
  Approach 1: Single-Indicator Rules
&lt;/h3&gt;

&lt;p&gt;The simplest form: "If BTC is above the 200-day moving average, we're bullish."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Problems&lt;/strong&gt;: Whipsaws constantly. A single indicator can't capture the multi-dimensional nature of market regimes. The Fear &amp;amp; Greed Index, for example, has a correlation of only ~0.3 with actual forward returns.&lt;/p&gt;

&lt;h3&gt;
  
  
  Approach 2: Weighted Ensemble Scoring
&lt;/h3&gt;

&lt;p&gt;A more robust approach combines multiple signals with weights:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Trend signals&lt;/strong&gt;: Price vs. moving averages (SMA 50/200), momentum (RSI, MACD)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Volatility signals&lt;/strong&gt;: Realized vol, VIX, Bollinger Band width&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sentiment signals&lt;/strong&gt;: Fear &amp;amp; Greed Index, social sentiment, funding rates&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Macro signals&lt;/strong&gt;: DXY strength, treasury yields, equity correlation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;On-chain signals&lt;/strong&gt;: Exchange flows, active addresses, stablecoin supply&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Futures signals&lt;/strong&gt;: Open interest changes, liquidation imbalances, funding rate skew&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each signal votes bull, bear, or neutral, and a weighted sum produces a composite score that maps to a regime classification with a confidence level.&lt;/p&gt;

&lt;h3&gt;
  
  
  Approach 3: Hidden Markov Models (HMM)
&lt;/h3&gt;

&lt;p&gt;The most mathematically rigorous approach uses Hidden Markov Models to infer unobservable "hidden states" (regimes) from observable market data. The HMM learns:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Transition probabilities&lt;/strong&gt;: How likely is the market to switch from bull to bear?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Emission probabilities&lt;/strong&gt;: What do observable signals look like in each regime?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;State persistence&lt;/strong&gt;: How "sticky" is each regime?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;HMMs are particularly powerful because they capture the empirical observation that regimes are &lt;strong&gt;persistent&lt;/strong&gt; — once a bear market starts, it tends to continue for weeks or months, not days.&lt;/p&gt;

&lt;h3&gt;
  
  
  How Regime Combines All Three
&lt;/h3&gt;

&lt;p&gt;The &lt;a href="https://getregime.com/" rel="noopener noreferrer"&gt;Regime API&lt;/a&gt; uses an &lt;strong&gt;ensemble approach&lt;/strong&gt; that combines weighted scoring with HMM confirmation:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;9 data sources&lt;/strong&gt; feed into signal extraction (Binance, CoinGecko, CoinGlass, DeFiLlama, FRED, Yahoo Finance, Alternative.me, and more)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;13 individual signals&lt;/strong&gt; are extracted and normalized&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Weighted ensemble voting&lt;/strong&gt; produces a primary classification with confidence&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HMM regime detector&lt;/strong&gt; provides an independent Bayesian confirmation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Category caps&lt;/strong&gt; prevent any single signal category from dominating (max 45%)&lt;/li&gt;
&lt;li&gt;Final output: &lt;code&gt;{ regime: "bull" | "bear" | "chop", confidence: 0.0-1.0 }&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The Three Regimes Explained
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Bull Regime
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Characteristics&lt;/strong&gt;: Rising prices, positive momentum, expanding volume, positive funding rates, improving sentiment&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Confidence threshold&lt;/strong&gt;: Typically &amp;gt;0.6 for high-confidence bull&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trading implications&lt;/strong&gt;: Favor long positions, increase position sizes, use wider stops, hold trend-following strategies&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Bear Regime
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Characteristics&lt;/strong&gt;: Falling prices, negative momentum, capitulation volume spikes, negative funding, extreme fear&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Confidence threshold&lt;/strong&gt;: Typically &amp;gt;0.6 for high-confidence bear&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trading implications&lt;/strong&gt;: Reduce exposure or go short, tighten position sizes, use mean-reversion strategies on bounces, increase cash allocation&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Chop Regime
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Characteristics&lt;/strong&gt;: Range-bound prices, mixed signals, moderate volume, oscillating sentiment&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Confidence threshold&lt;/strong&gt;: Often &amp;lt;0.5 (low confidence in either direction)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trading implications&lt;/strong&gt;: Reduce position sizes, use range-bound strategies, avoid trend-following, tighten stops&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Integrating Regime Detection Into Your Stack
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Quick Start: One API Call
&lt;/h3&gt;

&lt;p&gt;The fastest way to add regime awareness to your trading bot:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://getregime.com/api/v1/market/regime
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Response:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"regime"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"bear"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"confidence"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.73&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"signals"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"trend"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;-0.6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"momentum"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;-0.4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"volatility"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"sentiment"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;-0.8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"macro"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;-0.3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"futures"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;-0.5&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"timestamp"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-03-26T14:00:00Z"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Python Integration
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_regime&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://getregime.com/api/v1/market/regime&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;regime&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;confidence&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;regime&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;confidence&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;get_regime&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;regime&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;bear&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;confidence&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mf"&gt;0.6&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;position_size&lt;/span&gt; &lt;span class="o"&gt;*=&lt;/span&gt; &lt;span class="mf"&gt;0.25&lt;/span&gt;  &lt;span class="c1"&gt;# Cut size by 75% in confident bear
&lt;/span&gt;&lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;regime&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;chop&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;position_size&lt;/span&gt; &lt;span class="o"&gt;*=&lt;/span&gt; &lt;span class="mf"&gt;0.5&lt;/span&gt;   &lt;span class="c1"&gt;# Half size in chop
# Bull with high confidence: full size
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  JavaScript/TypeScript (SDK)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;RegimeClient&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;getregime&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;RegimeClient&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;apiKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;your-key&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;regime&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;confidence&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getRegime&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="c1"&gt;// Adjust your strategy based on regime&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;sizeMultiplier&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;bull&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;1.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;bear&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.25&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;chop&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.5&lt;/span&gt;
&lt;span class="p"&gt;}[&lt;/span&gt;&lt;span class="nx"&gt;regime&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;??&lt;/span&gt; &lt;span class="mf"&gt;0.5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Using Regime with Popular Frameworks
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Freqtrade&lt;/strong&gt; — Add regime as a custom indicator in your strategy:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;populate_indicators&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;dataframe&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;metadata&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;regime&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://getregime.com/api/v1/market/regime&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;dataframe&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;regime&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;regime&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;regime&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="n"&gt;dataframe&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;regime_confidence&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;regime&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;confidence&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;dataframe&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;CCXT bots&lt;/strong&gt; — Check regime before every trade decision:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;regime&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;conf&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;get_regime&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;regime&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;bear&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;conf&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mf"&gt;0.7&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;logger&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;info&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Skipping long entry — high-confidence bear regime&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Beyond Simple Classification
&lt;/h2&gt;

&lt;p&gt;Regime detection is just the starting point. Advanced applications include:&lt;/p&gt;

&lt;h3&gt;
  
  
  Regime-Based Position Sizing
&lt;/h3&gt;

&lt;p&gt;Scale position sizes dynamically based on regime confidence. A 90% confidence bull signal warrants larger positions than a 55% confidence bull.&lt;/p&gt;

&lt;h3&gt;
  
  
  Regime Transition Alerts
&lt;/h3&gt;

&lt;p&gt;The most profitable moments often occur at &lt;strong&gt;regime transitions&lt;/strong&gt; — when the market shifts from bear to bull, or bull to chop. Regime's &lt;a href="https://getregime.com/quickstart" rel="noopener noreferrer"&gt;intelligence endpoints&lt;/a&gt; provide historical transition data so you can detect shifts early.&lt;/p&gt;

&lt;h3&gt;
  
  
  Multi-Signal Divergence Detection
&lt;/h3&gt;

&lt;p&gt;When individual signals disagree with the overall regime (e.g., Fear &amp;amp; Greed is euphoric but macro signals are deteriorating), it often signals an upcoming regime change. The Regime API exposes individual signal components for exactly this analysis.&lt;/p&gt;

&lt;h3&gt;
  
  
  Risk Management Overlay
&lt;/h3&gt;

&lt;p&gt;Use regime as a portfolio-level risk overlay:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Bull&lt;/strong&gt;: Normal leverage, full allocation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chop&lt;/strong&gt;: Reduce leverage 50%, increase stablecoin allocation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bear&lt;/strong&gt;: Minimal leverage, defensive allocation, consider hedges&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Not Just Use Fear &amp;amp; Greed?
&lt;/h2&gt;

&lt;p&gt;The Crypto Fear &amp;amp; Greed Index is the most popular single-number market summary. But it has critical limitations:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Lagging&lt;/strong&gt;: It's heavily weighted toward recent price action, so it tells you what already happened&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One-dimensional&lt;/strong&gt;: A single number can't capture trend + volatility + sentiment + macro simultaneously&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No confidence score&lt;/strong&gt;: Fear &amp;amp; Greed of 45 vs. 55 looks similar, but the underlying signals might be completely different&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Poor predictive power&lt;/strong&gt;: Extreme fear/greed readings have only ~55% accuracy for predicting 7-day returns&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Regime detection solves these problems by combining Fear &amp;amp; Greed with 12 other signals and outputting both a classification and a confidence score.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Free tier&lt;/strong&gt;: 30 requests/minute, BTC/ETH/SOL, 15-minute delay — &lt;a href="https://getregime.com/#register" rel="noopener noreferrer"&gt;sign up here&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pro tier ($49/mo)&lt;/strong&gt;: 100 RPM, all assets, real-time, full intelligence suite&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SDK&lt;/strong&gt;: &lt;code&gt;npm install getregime&lt;/code&gt; — TypeScript client with full type safety&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API docs&lt;/strong&gt;: &lt;a href="https://getregime.com/quickstart" rel="noopener noreferrer"&gt;getregime.com/quickstart&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Regime detection is the foundation that every other trading decision should build on. Whether you're running a Freqtrade bot, a custom Python strategy, or managing a crypto portfolio manually — knowing what regime you're in changes everything.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Regime is a real-time crypto market intelligence API. &lt;a href="https://getregime.com/#register" rel="noopener noreferrer"&gt;Get your free API key&lt;/a&gt; and classify markets in one call.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Try Regime Intelligence
&lt;/h2&gt;

&lt;p&gt;Regime is a real-time crypto market regime detection API. One endpoint tells you if the market is bull, bear, or chop — so your bot only trades when conditions match your strategy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://getregime.com/quickstart?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=what-is-crypto-regime-detection" rel="noopener noreferrer"&gt;Free API access →&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://getregime.com/pricing?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=what-is-crypto-regime-detection" rel="noopener noreferrer"&gt;See pricing →&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://getregime.com/docs?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=what-is-crypto-regime-detection" rel="noopener noreferrer"&gt;API docs →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>crypto</category>
      <category>trading</category>
    </item>
    <item>
      <title>Weekly Regime Recap: BEAR (Capitulation) at 74% — April 1, 2026</title>
      <dc:creator>Gunnar Thorderson</dc:creator>
      <pubDate>Thu, 23 Jul 2026 09:00:15 +0000</pubDate>
      <link>https://dev.to/gunnarthorderson/weekly-regime-recap-bear-capitulation-at-74-april-1-2026-18ja</link>
      <guid>https://dev.to/gunnarthorderson/weekly-regime-recap-bear-capitulation-at-74-april-1-2026-18ja</guid>
      <description>&lt;h1&gt;
  
  
  Weekly Regime Recap — April 1, 2026
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Current Classification: BEAR — Capitulation (74% confidence)
&lt;/h2&gt;

&lt;p&gt;The Regime classifier reads &lt;strong&gt;BEAR&lt;/strong&gt; with a &lt;strong&gt;capitulation&lt;/strong&gt; subtype at 74% confidence. This is a shift from last week's 93% standard bear — confidence has dropped while the subtype has worsened.&lt;/p&gt;

&lt;p&gt;Capitulation subtypes historically mark the late stages of a drawdown, where panic selling accelerates but exhaustion is approaching. Not a reversal signal — but the setup that precedes one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Market Snapshot
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;th&gt;Change&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;BTC Price&lt;/td&gt;
&lt;td&gt;$68,124&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ETH Price&lt;/td&gt;
&lt;td&gt;$2,142&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fear &amp;amp; Greed&lt;/td&gt;
&lt;td&gt;8/100&lt;/td&gt;
&lt;td&gt;Extreme Fear&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BTC Dominance&lt;/td&gt;
&lt;td&gt;56.1%&lt;/td&gt;
&lt;td&gt;Elevated&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Total Market Cap&lt;/td&gt;
&lt;td&gt;$2.43T&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DeFi TVL&lt;/td&gt;
&lt;td&gt;$94B&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Signal Breakdown
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Signal Direction&lt;/th&gt;
&lt;th&gt;Count&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Bearish&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Neutral&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bullish&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Four bearish signals still dominate, but three neutral signals suggest the bear pressure is losing conviction. One bullish signal (likely the volume or stablecoin metric) is starting to diverge from the crowd.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Changed This Week
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Fear &amp;amp; Greed collapsed to 8&lt;/strong&gt; — the lowest reading since the regime classification started. This is deep fear territory. Historically, single-digit F&amp;amp;G readings precede 2-4 week reversals, but timing is unreliable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Capitulation subtype&lt;/strong&gt; — the classifier now labels this as capitulation rather than standard bear. This means we're seeing accelerated selling with volume spikes, which typically indicates late-cycle panic.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Confidence dropped from 93% to 74%&lt;/strong&gt; — counterintuitively, this is interesting. Falling confidence in a bear regime means the signals are starting to disagree. Some metrics are turning neutral or bullish while others remain bearish. Regime transitions usually start with confidence erosion.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What To Do
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;If you're running a trading bot:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Regime-based position sizing suggests 40-60% of normal size&lt;/li&gt;
&lt;li&gt;Short-only strategies are still favored, but tighten stops — capitulation phases can reverse violently&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;/api/v1/intelligence/crowd-positioning&lt;/code&gt; endpoint shows funding rate bias — check if shorts are getting crowded&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;If you're a long-term allocator:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Single-digit Fear &amp;amp; Greed + capitulation subtype is historically a strong accumulation zone on a 3-6 month horizon&lt;/li&gt;
&lt;li&gt;DCA timing models favor small entries when F&amp;amp;G &amp;lt; 15&lt;/li&gt;
&lt;li&gt;Wait for regime confidence to drop below 50% before increasing size&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;If you're sitting in cash:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This is what you were waiting for. Capitulation + Extreme Fear is the setup, not the entry signal.&lt;/li&gt;
&lt;li&gt;The entry signal is regime transition: BEAR → CHOP at declining confidence. Set up a &lt;a href="https://dev.to/quickstart#webhooks"&gt;webhook&lt;/a&gt; to get notified when it happens.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Track Record Update
&lt;/h2&gt;

&lt;p&gt;Our &lt;a href="https://dev.to/track-record"&gt;track record page&lt;/a&gt; shows &lt;strong&gt;+9.48% alpha&lt;/strong&gt; over buy-and-hold across 4,941 snapshots (29 days). Regime-following returned +7.59% while BTC buy-and-hold returned -1.89%.&lt;/p&gt;

&lt;h2&gt;
  
  
  New This Week
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Webhook filters&lt;/strong&gt; — filter by asset, regime state, or signal strength&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CSV signal exports&lt;/strong&gt; — download full signal history for backtesting&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;New blog post&lt;/strong&gt;: &lt;a href="https://dev.to/blog/backtesting-with-regime-data"&gt;How to Backtest by Market Regime&lt;/a&gt; — split your backtest performance by bull/bear/chop to find where your edge actually lives&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Get the live regime classification:&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://getregime.com/api/v1/market/regime
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Full intelligence (Pro): &lt;code&gt;GET /api/v1/intelligence/brief&lt;/code&gt; — &lt;a href="https://dev.to/quickstart"&gt;Quickstart&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Try Regime Intelligence
&lt;/h2&gt;

&lt;p&gt;Regime is a real-time crypto market regime detection API. One endpoint tells you if the market is bull, bear, or chop — so your bot only trades when conditions match your strategy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://getregime.com/quickstart?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=weekly-regime-recap-2026-04-01" rel="noopener noreferrer"&gt;Free API access →&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://getregime.com/pricing?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=weekly-regime-recap-2026-04-01" rel="noopener noreferrer"&gt;See pricing →&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://getregime.com/docs?utm_source=devto&amp;amp;utm_medium=blog&amp;amp;utm_campaign=weekly-regime-recap-2026-04-01" rel="noopener noreferrer"&gt;API docs →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>crypto</category>
      <category>weekly</category>
      <category>analysis</category>
      <category>regime</category>
    </item>
  </channel>
</rss>
