<?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: Dry Run</title>
    <description>The latest articles on DEV Community by Dry Run (@thedryrun).</description>
    <link>https://dev.to/thedryrun</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%2F4083479%2F6ca25be6-5b3f-4e96-aa32-198e4db01954.jpg</url>
      <title>DEV Community: Dry Run</title>
      <link>https://dev.to/thedryrun</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/thedryrun"/>
    <language>en</language>
    <item>
      <title>A 100% win rate is a red flag, not a résumé</title>
      <dc:creator>Dry Run</dc:creator>
      <pubDate>Tue, 18 Aug 2026 14:52:18 +0000</pubDate>
      <link>https://dev.to/thedryrun/a-100-win-rate-is-a-red-flag-not-a-resume-50fd</link>
      <guid>https://dev.to/thedryrun/a-100-win-rate-is-a-red-flag-not-a-resume-50fd</guid>
      <description>&lt;p&gt;&lt;em&gt;What running a fleet of autonomous trading bots taught me about picking the right metric.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I run a small fleet of automated trading bots in paper mode. One of them — a mean-reversion strategy on crypto — closed its first 34 trades without a single loss. 34 out of 34. A 100% win rate.&lt;/p&gt;

&lt;p&gt;If I put that number on a landing page, it would sell. It's also close to meaningless. Here's why, and why it changed how I evaluate any autonomous system I put in production.&lt;/p&gt;

&lt;h2&gt;
  
  
  The number is real. The conclusion isn't.
&lt;/h2&gt;

&lt;p&gt;The strategy belongs to the "buy the dip, scale in, exit in profit" family. Two mechanics produce that spotless record:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;It scales into losers.&lt;/strong&gt; When a position moves against it, it adds to the position at a lower price, dragging down the average entry. A trade that would have been a 4% loss becomes a 0.5% win after two add-ons.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It only ever closes in green.&lt;/strong&gt; There's no time-based or loss-based exit in the base logic. A position that's underwater simply... stays open. It isn't a loss until it's realized, and it's never realized at a loss.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Put those together and a 100% win rate isn't evidence of skill. It's the &lt;em&gt;definition&lt;/em&gt; of the strategy. The metric is measuring the exit rule, not the edge.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the risk actually lives
&lt;/h2&gt;

&lt;p&gt;The losses don't disappear — they move to places the win rate doesn't look:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Locked capital / time under water.&lt;/strong&gt; In a bear backtest, this style held some positions for up to 121 days. Capital busy averaging down a bag is capital that isn't compounding. Win rate says nothing about that opportunity cost.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tail risk.&lt;/strong&gt; Scaling into a falling asset works beautifully until the asset doesn't come back. The distribution of outcomes has a fat, ugly left tail that a "100% so far" record hides completely. You don't see it until a trend breaks and the temporary drawdown becomes permanent.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sequence risk.&lt;/strong&gt; 34 trades in a calm, ranging market tells you how the strategy behaves in a calm, ranging market. That's it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of this is a knock on the strategy — scaling in is a legitimate approach. The point is that &lt;strong&gt;win rate is the wrong lens&lt;/strong&gt; for it. It's a vanity metric here, the same way "99.9% of requests return 200" is a vanity metric if you never look at the 0.1% that time out and take the checkout flow down with them.&lt;/p&gt;

&lt;h2&gt;
  
  
  The rule I run by now
&lt;/h2&gt;

&lt;p&gt;Because the flattering metric is worthless, I won't let a bot near real money on the strength of it. The go-live criteria I actually use:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A minimum number of trades&lt;/strong&gt; (I use ≥100), so I'm looking at a distribution, not an anecdote.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Survive at least one real correction in paper mode.&lt;/strong&gt; The entire risk of this strategy lives in a downtrend it can't average out of. If it hasn't lived through one, I haven't seen the number that matters.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Drawdown, time-under-water, and a Monte Carlo reshuffle of the trade sequence&lt;/strong&gt; — because the order the trades happened to arrive in is one sample, and I want the P95/P99 of the drawdown, not the single lucky path.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Win rate isn't on the list. Neither is total P&amp;amp;L over a too-short window.&lt;/p&gt;

&lt;h2&gt;
  
  
  The general lesson (this isn't really about trading)
&lt;/h2&gt;

&lt;p&gt;The bot is just a clean example of a trap that shows up wherever you operate an autonomous system: &lt;strong&gt;the system will happily hand you the metric that looks best, and it's usually the one that hides the failure mode.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An agent that "completes 100% of tasks" might be quietly narrowing what counts as a task. A pipeline with "zero errors" might be swallowing them. A model with a great average score might be catastrophic on the 2% of inputs you actually care about.&lt;/p&gt;

&lt;p&gt;The engineering job isn't to collect the flattering number. It's to design the evaluation so the failure mode has to show itself &lt;em&gt;before&lt;/em&gt; it costs you. For my bot, that means judging it by how it behaves in the drawdown it's built to avoid looking at — not by the streak it produces when nothing goes wrong.&lt;/p&gt;

&lt;p&gt;A 100% win rate didn't make me trust the bot. It's the thing that made me go looking for what it was hiding.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;I document a fleet of autonomous trading agents as an engineering problem — evaluation, risk, reliability — not as trading advice. No signals, no tips; just what breaks and how I try to catch it first. Follow along if that's your thing.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>machinelearning</category>
      <category>trading</category>
    </item>
  </channel>
</rss>
