<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="rss.xsl"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Vaanam Blog</title>
        <link>https://docs.vaanam.app/blog</link>
        <description>Vaanam Blog</description>
        <lastBuildDate>Wed, 22 Apr 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <item>
            <title><![CDATA[Vaanam vs TradingView Screener: A Feature-by-Feature Comparison]]></title>
            <link>https://docs.vaanam.app/blog/vaanam-vs-tradingview-screener</link>
            <guid>https://docs.vaanam.app/blog/vaanam-vs-tradingview-screener</guid>
            <pubDate>Wed, 22 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[How does Vaanam's stock screener compare to TradingView's? An honest, side-by-side comparison of filters, alerts, automation, and what each platform is actually good at.]]></description>
            <content:encoded><![CDATA[<p>TradingView's screener is widely used and well-built. So is Vaanam's. They're not the same product — and depending on what you're trying to do, one will serve you much better than the other.</p>
<p>This is an honest, feature-by-feature comparison. No marketing fluff. Where TradingView wins, we'll say so. Where Vaanam wins, we'll back it with specifics.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="tldr">TL;DR<a href="https://docs.vaanam.app/blog/vaanam-vs-tradingview-screener#tldr" class="hash-link" aria-label="Direct link to TL;DR" title="Direct link to TL;DR" translate="no">​</a></h2>
<table><thead><tr><th>If you want to...</th><th>Use</th></tr></thead><tbody><tr><td>Look at charts across many asset classes</td><td>TradingView</td></tr><tr><td>Filter stocks by fundamentals (P/E, dividends, market cap)</td><td>TradingView</td></tr><tr><td>Build complex technical conditions in plain text</td><td>Vaanam</td></tr><tr><td>Run the same logic across screen → backtest → bot</td><td>Vaanam</td></tr><tr><td>Get email/webhook alerts on a scheduled screener</td><td>Vaanam</td></tr><tr><td>Trade forex, futures, bonds, or DEX pairs</td><td>TradingView</td></tr><tr><td>Detect Opening Range Breakouts automatically</td><td>Vaanam</td></tr><tr><td>Compete in a weekly trading championship for cash</td><td>Vaanam</td></tr></tbody></table>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="side-by-side-comparison">Side-by-Side Comparison<a href="https://docs.vaanam.app/blog/vaanam-vs-tradingview-screener#side-by-side-comparison" class="hash-link" aria-label="Direct link to Side-by-Side Comparison" title="Direct link to Side-by-Side Comparison" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="filtering--conditions">Filtering &amp; Conditions<a href="https://docs.vaanam.app/blog/vaanam-vs-tradingview-screener#filtering--conditions" class="hash-link" aria-label="Direct link to Filtering &amp; Conditions" title="Direct link to Filtering &amp; Conditions" translate="no">​</a></h3>
<table><thead><tr><th>Feature</th><th style="text-align:center">TradingView</th><th style="text-align:center">Vaanam</th></tr></thead><tbody><tr><td>Pre-built filters via UI</td><td style="text-align:center">✓</td><td style="text-align:center">✓</td></tr><tr><td>Custom filter builder</td><td style="text-align:center">✓ (form-based)</td><td style="text-align:center">✓ (visual builder)</td></tr><tr><td>Plain-text expression language</td><td style="text-align:center">—</td><td style="text-align:center">✓ (DSL)</td></tr><tr><td>Compound conditions (AND/OR/parens)</td><td style="text-align:center">✓ (UI)</td><td style="text-align:center">✓ (text + UI)</td></tr><tr><td>Lookback functions (PREV, HIGH, LOW, AVG over N bars)</td><td style="text-align:center">Limited</td><td style="text-align:center">✓</td></tr><tr><td>Consecutive condition (true for N bars in a row)</td><td style="text-align:center">—</td><td style="text-align:center">✓</td></tr><tr><td>Today's session high/low for ORB strategies</td><td style="text-align:center">—</td><td style="text-align:center">✓</td></tr><tr><td>Math operators in conditions (<code>*</code>, <code>/</code>, <code>+</code>, <code>-</code>)</td><td style="text-align:center">Limited</td><td style="text-align:center">✓</td></tr><tr><td>Custom indicators in screener</td><td style="text-align:center">Pine Screener (separate)</td><td style="text-align:center">Same DSL across screen, backtest, bot</td></tr><tr><td>AI natural language → filter</td><td style="text-align:center">—</td><td style="text-align:center">✓</td></tr></tbody></table>
<p><strong>What this means:</strong> TradingView's screener is excellent for "show me stocks where X is above Y." Vaanam handles that too — and also "show me stocks where RSI has been below 30 for 3 consecutive days, volume is 1.5x its 20-day average, and price is above the 200-day SMA" in a single line of expression.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="asset-coverage">Asset Coverage<a href="https://docs.vaanam.app/blog/vaanam-vs-tradingview-screener#asset-coverage" class="hash-link" aria-label="Direct link to Asset Coverage" title="Direct link to Asset Coverage" translate="no">​</a></h3>
<table><thead><tr><th>Asset class</th><th style="text-align:center">TradingView</th><th style="text-align:center">Vaanam</th></tr></thead><tbody><tr><td>US stocks</td><td style="text-align:center">✓</td><td style="text-align:center">✓</td></tr><tr><td>ETFs</td><td style="text-align:center">✓</td><td style="text-align:center">✓</td></tr><tr><td>Bonds</td><td style="text-align:center">✓</td><td style="text-align:center">—</td></tr><tr><td>Crypto (CEX)</td><td style="text-align:center">✓</td><td style="text-align:center">Bots only (Delta)</td></tr><tr><td>Crypto (DEX)</td><td style="text-align:center">✓</td><td style="text-align:center">—</td></tr><tr><td>Forex</td><td style="text-align:center">✓</td><td style="text-align:center">—</td></tr><tr><td>Futures</td><td style="text-align:center">✓</td><td style="text-align:center">—</td></tr><tr><td>International stocks</td><td style="text-align:center">✓</td><td style="text-align:center">—</td></tr></tbody></table>
<p><strong>Honest take:</strong> TradingView is the clear winner here. If you trade anything other than US equities, this isn't even a contest.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="universe--watchlist-filtering">Universe &amp; Watchlist Filtering<a href="https://docs.vaanam.app/blog/vaanam-vs-tradingview-screener#universe--watchlist-filtering" class="hash-link" aria-label="Direct link to Universe &amp; Watchlist Filtering" title="Direct link to Universe &amp; Watchlist Filtering" translate="no">​</a></h3>
<table><thead><tr><th>Feature</th><th style="text-align:center">TradingView</th><th style="text-align:center">Vaanam</th></tr></thead><tbody><tr><td>Filter by index (S&amp;P 500, NASDAQ 100, etc.)</td><td style="text-align:center">✓</td><td style="text-align:center">✓</td></tr><tr><td>Filter by sector</td><td style="text-align:center">✓</td><td style="text-align:center">✓ (11 sectors as native universe)</td></tr><tr><td>Filter by your custom watchlist</td><td style="text-align:center">Limited</td><td style="text-align:center">✓ (Custom Basket as native universe)</td></tr><tr><td>Filter by industry / sub-sector</td><td style="text-align:center">✓</td><td style="text-align:center">—</td></tr><tr><td>Filter by market cap</td><td style="text-align:center">✓</td><td style="text-align:center">— (no fundamentals)</td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="results--display">Results &amp; Display<a href="https://docs.vaanam.app/blog/vaanam-vs-tradingview-screener#results--display" class="hash-link" aria-label="Direct link to Results &amp; Display" title="Direct link to Results &amp; Display" translate="no">​</a></h3>
<table><thead><tr><th>Feature</th><th style="text-align:center">TradingView</th><th style="text-align:center">Vaanam</th></tr></thead><tbody><tr><td>Tabular view</td><td style="text-align:center">✓</td><td style="text-align:center">✓</td></tr><tr><td>Mini-chart grid view</td><td style="text-align:center">✓</td><td style="text-align:center">—</td></tr><tr><td>Custom column sets (performance, risk, etc.)</td><td style="text-align:center">✓</td><td style="text-align:center">—</td></tr><tr><td>Sort by any column</td><td style="text-align:center">✓</td><td style="text-align:center">✓</td></tr><tr><td>Export to CSV</td><td style="text-align:center">✓</td><td style="text-align:center">✓</td></tr><tr><td>Rank by indicator + Top N</td><td style="text-align:center">Sort only</td><td style="text-align:center">✓ (native)</td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="alerts--automation">Alerts &amp; Automation<a href="https://docs.vaanam.app/blog/vaanam-vs-tradingview-screener#alerts--automation" class="hash-link" aria-label="Direct link to Alerts &amp; Automation" title="Direct link to Alerts &amp; Automation" translate="no">​</a></h3>
<table><thead><tr><th>Feature</th><th style="text-align:center">TradingView</th><th style="text-align:center">Vaanam</th></tr></thead><tbody><tr><td>Alerts on screener results</td><td style="text-align:center">Via watchlist alerts</td><td style="text-align:center">✓ (native, on screener)</td></tr><tr><td>Email alerts</td><td style="text-align:center">✓ (paid tiers)</td><td style="text-align:center">✓ (all plans)</td></tr><tr><td>Webhook alerts</td><td style="text-align:center">✓ (Premium+)</td><td style="text-align:center">✓ (Essential &amp; Pro)</td></tr><tr><td>Scheduled screener runs (cron / interval)</td><td style="text-align:center">Limited</td><td style="text-align:center">✓</td></tr><tr><td>Pre-market / post-market data toggle</td><td style="text-align:center">✓ (paid)</td><td style="text-align:center">✓</td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-happens-next">What Happens Next<a href="https://docs.vaanam.app/blog/vaanam-vs-tradingview-screener#what-happens-next" class="hash-link" aria-label="Direct link to What Happens Next" title="Direct link to What Happens Next" translate="no">​</a></h3>
<p>This is where the platforms really diverge.</p>
<table><thead><tr><th>Feature</th><th style="text-align:center">TradingView</th><th style="text-align:center">Vaanam</th></tr></thead><tbody><tr><td>Backtest the screener's logic</td><td style="text-align:center">Separate tool, rewrite logic in Pine Script</td><td style="text-align:center">Same query → one-click to backtest</td></tr><tr><td>Optimize parameters</td><td style="text-align:center">Strategy Tester (limited)</td><td style="text-align:center">Strategy Optimizer (up to 2000 combos)</td></tr><tr><td>Deploy as a paper trading bot</td><td style="text-align:center">—</td><td style="text-align:center">✓ (one-click from screen or backtest)</td></tr><tr><td>Connect to a live broker</td><td style="text-align:center">Pine + webhook hacks</td><td style="text-align:center">✓ (TradersPost integration)</td></tr><tr><td>Public weekly trading championship</td><td style="text-align:center">—</td><td style="text-align:center">✓ (<code>/contest</code>)</td></tr></tbody></table>
<p><strong>This is the real story.</strong> TradingView treats screening, backtesting, and trading as separate products. Vaanam treats them as one workflow with the same query language. If you want to go from "I have an idea" to "I'm running it live" without rewriting your logic three times, that's the meaningful difference.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="where-tradingview-is-better">Where TradingView Is Better<a href="https://docs.vaanam.app/blog/vaanam-vs-tradingview-screener#where-tradingview-is-better" class="hash-link" aria-label="Direct link to Where TradingView Is Better" title="Direct link to Where TradingView Is Better" translate="no">​</a></h2>
<p>Let's be direct about it.</p>
<ul>
<li class=""><strong>Multi-asset coverage</strong> — forex, futures, bonds, DEX crypto. Vaanam doesn't touch these.</li>
<li class=""><strong>Fundamentals</strong> — P/E, EPS, dividends, financials. Not in Vaanam's DSL.</li>
<li class=""><strong>Charting</strong> — TradingView's charting is the industry benchmark. Ours is functional, not exceptional.</li>
<li class=""><strong>Mobile apps</strong> — native iOS and Android. Vaanam is web-only.</li>
<li class=""><strong>Community</strong> — millions of public scripts and shared ideas. Vaanam is newer.</li>
<li class=""><strong>Mini-chart grid view</strong> of screener results.</li>
<li class=""><strong>Pre-built column sets</strong> for fundamental and risk views.</li>
</ul>
<p>If charting and asset breadth are what you need, TradingView is the right tool.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="where-vaanam-is-better">Where Vaanam Is Better<a href="https://docs.vaanam.app/blog/vaanam-vs-tradingview-screener#where-vaanam-is-better" class="hash-link" aria-label="Direct link to Where Vaanam Is Better" title="Direct link to Where Vaanam Is Better" translate="no">​</a></h2>
<ul>
<li class=""><strong>DSL expressiveness</strong> — express compound, multi-bar, technical conditions in one line.</li>
<li class=""><strong>Same query, three outputs</strong> — screen → backtest → bot deployment without rewriting.</li>
<li class=""><strong>Native scheduled screeners</strong> with email and webhook alerts on every plan tier (webhook from Essential).</li>
<li class=""><strong>Custom basket as universe</strong> — native first-class feature, not a workaround.</li>
<li class=""><strong>Strategy optimizer</strong> — sweep up to 2000 parameter combinations to find the best version of your strategy.</li>
<li class=""><strong>AI natural language</strong> — describe what you want; we generate the query.</li>
<li class=""><strong>Opening Range Breakout support</strong> — <code>TODAY_HIGH_</code> and <code>TODAY_LOW_</code> operands built into the DSL.</li>
<li class=""><strong>Live broker execution via TradersPost</strong> — paste a webhook URL, run real trades.</li>
<li class=""><strong>Weekly $100 championship</strong> — public leaderboard, real-time competition.</li>
</ul>
<p>If systematic, automatable trading on US equities is what you need, Vaanam is purpose-built for that.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-honest-conclusion">The Honest Conclusion<a href="https://docs.vaanam.app/blog/vaanam-vs-tradingview-screener#the-honest-conclusion" class="hash-link" aria-label="Direct link to The Honest Conclusion" title="Direct link to The Honest Conclusion" translate="no">​</a></h2>
<p><strong>TradingView</strong> is a charting platform that includes a screener. It serves a broad audience across every asset class, with great visuals and a huge community.</p>
<p><strong>Vaanam</strong> is a strategy execution platform where the screener is a workflow step. It serves systematic traders on US equities who want their screen, backtest, and bot to share the same logic.</p>
<p>Different tools for different jobs. The right answer depends on what you actually do.</p>
<p>If you're a chart-first multi-asset trader, stay on TradingView.</p>
<p>If you're tired of rebuilding the same logic across three different tools, <a href="https://vaanam.app/" target="_blank" rel="noopener noreferrer" class="">try Vaanam — free</a>.</p>
<hr>
<p>© 2026 Vaanam, Inc. All rights reserved.</p>]]></content:encoded>
            <category>comparisons</category>
        </item>
        <item>
            <title><![CDATA[A Mean Reversion Strategy Using IBS That Hits 75% Win Rate on SPY]]></title>
            <link>https://docs.vaanam.app/blog/mean-reversion-strategy-ibs</link>
            <guid>https://docs.vaanam.app/blog/mean-reversion-strategy-ibs</guid>
            <pubDate>Wed, 04 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Backtesting a mean reversion strategy combining a 10-day high breakout filter with Internal Bar Strength (IBS) across SPY, QQQ, AAPL, and ABNB. 75% win rate, 15% max drawdown, and only 21% time in market.]]></description>
            <content:encoded><![CDATA[<p>I stumbled upon a mean reversion strategy that shows some potential. I'll get straight into it.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="entry-condition">Entry Condition<a href="https://docs.vaanam.app/blog/mean-reversion-strategy-ibs#entry-condition" class="hash-link" aria-label="Direct link to Entry Condition" title="Direct link to Entry Condition" translate="no">​</a></h2>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">close &lt; (10 day high - 2.5 * (25 day avg high - 25 day avg low))</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">and</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">IBS &lt; 0.3</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-this-means">What This Means<a href="https://docs.vaanam.app/blog/mean-reversion-strategy-ibs#what-this-means" class="hash-link" aria-label="Direct link to What This Means" title="Direct link to What This Means" translate="no">​</a></h3>
<p>Today's close should be less than the highest high of the last 10 bars minus 2.5 times the last 25 days average stock movement.</p>
<p>Additionally, IBS should be below 0.3.</p>
<p>What's IBS? Not irritable bowel syndrome.</p>
<p><strong>IBS (Internal Bar Strength)</strong> = <code>(close - low) / (high - low)</code></p>
<p>This gives a 0–1 range. 0 means close = low (weakness), 1 means close = high (strength). Below 0.3 = the stock closed in the bottom 30% of the day's range.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="exit-condition">Exit Condition<a href="https://docs.vaanam.app/blog/mean-reversion-strategy-ibs#exit-condition" class="hash-link" aria-label="Direct link to Exit Condition" title="Direct link to Exit Condition" translate="no">​</a></h2>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">close &gt; yesterday's high</span><br></span></code></pre></div></div>
<p>Yep, very simple.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="backtest-spy-20062026">Backtest: SPY (2006–2026)<a href="https://docs.vaanam.app/blog/mean-reversion-strategy-ibs#backtest-spy-20062026" class="hash-link" aria-label="Direct link to Backtest: SPY (2006–2026)" title="Direct link to Backtest: SPY (2006–2026)" translate="no">​</a></h2>
<p>Testing parameters:</p>
<ul>
<li class=""><strong>Timeframe</strong>: Daily</li>
<li class=""><strong>Ticker</strong>: SPY</li>
<li class=""><strong>Slippage</strong>: $0.01 per share</li>
<li class=""><strong>Commission</strong>: $0.01 per share</li>
<li class=""><strong>Duration</strong>: March 2006 – March 2026</li>
<li class=""><strong>Capital</strong>: $100,000</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="core-returns">Core Returns<a href="https://docs.vaanam.app/blog/mean-reversion-strategy-ibs#core-returns" class="hash-link" aria-label="Direct link to Core Returns" title="Direct link to Core Returns" translate="no">​</a></h3>
<table><thead><tr><th>Metric</th><th>Value</th></tr></thead><tbody><tr><td>Total Return</td><td>334.84%</td></tr><tr><td><a class="" href="https://docs.vaanam.app/blog/what-is-cagr">CAGR</a> (annualized return)</td><td>7.75%</td></tr><tr><td><a class="" href="https://docs.vaanam.app/blog/what-is-profit-factor">Profit Factor</a></td><td>2.02</td></tr><tr><td>Win Rate</td><td>75.00% (180W / 60L)</td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="risk-metrics">Risk Metrics<a href="https://docs.vaanam.app/blog/mean-reversion-strategy-ibs#risk-metrics" class="hash-link" aria-label="Direct link to Risk Metrics" title="Direct link to Risk Metrics" translate="no">​</a></h3>
<table><thead><tr><th>Metric</th><th>Value</th></tr></thead><tbody><tr><td><a class="" href="https://docs.vaanam.app/blog/what-is-max-drawdown">Max Drawdown</a></td><td>15.26%</td></tr><tr><td><a class="" href="https://docs.vaanam.app/blog/what-is-calmar-ratio">Calmar Ratio</a> (return ÷ drawdown)</td><td>0.51</td></tr><tr><td><a class="" href="https://docs.vaanam.app/blog/what-is-sharpe-ratio">Sharpe Ratio</a> (return per unit of risk)</td><td>0.46</td></tr><tr><td><a class="" href="https://docs.vaanam.app/blog/what-is-sortino-ratio">Sortino Ratio</a> (return per unit of downside risk)</td><td>0.81</td></tr><tr><td>Avg Profit</td><td>$3,677.39</td></tr><tr><td>Avg Loss</td><td>-$5,451.58</td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="position-and-efficiency">Position and Efficiency<a href="https://docs.vaanam.app/blog/mean-reversion-strategy-ibs#position-and-efficiency" class="hash-link" aria-label="Direct link to Position and Efficiency" title="Direct link to Position and Efficiency" translate="no">​</a></h3>
<table><thead><tr><th>Metric</th><th>Value</th></tr></thead><tbody><tr><td>Time in Market</td><td>21.02%</td></tr><tr><td>Avg Hold Time</td><td>5.4 days</td></tr><tr><td>Longest Trade</td><td>29.0 days</td></tr><tr><td>Shortest Trade</td><td>1.0 day</td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="execution-and-friction">Execution and Friction<a href="https://docs.vaanam.app/blog/mean-reversion-strategy-ibs#execution-and-friction" class="hash-link" aria-label="Direct link to Execution and Friction" title="Direct link to Execution and Friction" translate="no">​</a></h3>
<table><thead><tr><th>Metric</th><th>Value</th></tr></thead><tbody><tr><td>Total Trades</td><td>240</td></tr><tr><td>Total Costs (Fees/Slippage)</td><td>$11,870.20</td></tr><tr><td>Initial Capital</td><td>$100,000</td></tr><tr><td>Final Capital</td><td>$434,835.64</td></tr></tbody></table>
<p><img decoding="async" loading="lazy" alt="SPY equity curve" src="https://docs.vaanam.app/assets/images/spy-equity-curve-09ad29da5173ec40cc82b83a843a9a6e.png" width="1719" height="682" class="img_ev3q">
<img decoding="async" loading="lazy" alt="SPY trade analysis" src="https://docs.vaanam.app/assets/images/spy-trade-analysis-a1a9c9079fcfb94715dca12b4497cf56.png" width="1720" height="1559" class="img_ev3q"></p>
<p>75% win rate with only 15% max drawdown is solid. The 7.75% CAGR isn't spectacular, but you're only in the market 21% of the time. The remaining 79% of time could run a different strategy or the same strategy on other instruments.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-it-performs-across-other-instruments">How It Performs Across Other Instruments<a href="https://docs.vaanam.app/blog/mean-reversion-strategy-ibs#how-it-performs-across-other-instruments" class="hash-link" aria-label="Direct link to How It Performs Across Other Instruments" title="Direct link to How It Performs Across Other Instruments" translate="no">​</a></h2>
<p>I ran the same strategy on QQQ, AAPL, and ABNB. Here's how the key numbers compare:</p>
<table><thead><tr><th>Metric</th><th>SPY (2006–2026)</th><th>QQQ (2011–2026)</th><th>AAPL (2006–2026)</th><th>ABNB (2020–2026)</th></tr></thead><tbody><tr><td><strong>Total Return</strong></td><td>334.84%</td><td>265.74%</td><td>809.61%</td><td>26.35%</td></tr><tr><td><strong><a class="" href="https://docs.vaanam.app/blog/what-is-cagr">CAGR</a></strong></td><td>7.75%</td><td>9.18%</td><td>11.77%</td><td>4.74%</td></tr><tr><td><strong>Win Rate</strong></td><td>75.00%</td><td>70.74%</td><td>70.27%</td><td>56.52%</td></tr><tr><td><strong><a class="" href="https://docs.vaanam.app/blog/what-is-profit-factor">Profit Factor</a></strong></td><td>2.02</td><td>2.15</td><td>2.07</td><td>1.16</td></tr><tr><td><strong><a class="" href="https://docs.vaanam.app/blog/what-is-max-drawdown">Max Drawdown</a></strong></td><td>15.26%</td><td>11.92%</td><td>29.56%</td><td>28.53%</td></tr><tr><td><strong><a class="" href="https://docs.vaanam.app/blog/what-is-calmar-ratio">Calmar Ratio</a></strong></td><td>0.51</td><td>0.77</td><td>0.40</td><td>0.17</td></tr><tr><td><strong><a class="" href="https://docs.vaanam.app/blog/what-is-sharpe-ratio">Sharpe Ratio</a></strong></td><td>0.46</td><td>0.42</td><td>0.67</td><td>0.00</td></tr><tr><td><strong><a class="" href="https://docs.vaanam.app/blog/what-is-sortino-ratio">Sortino Ratio</a></strong></td><td>0.81</td><td>0.79</td><td>1.07</td><td>0.00</td></tr><tr><td><strong>Time in Market</strong></td><td>21.02%</td><td>16.41%</td><td>25.18%</td><td>7.28%</td></tr><tr><td><strong>Total Trades</strong></td><td>240</td><td>188</td><td>259</td><td>69</td></tr><tr><td><strong>Avg Hold Time</strong></td><td>5.4 days</td><td>5.4 days</td><td>6.1 days</td><td>6.7 days</td></tr><tr><td><strong>Final Capital</strong></td><td>$434,835</td><td>$365,740</td><td>$909,613</td><td>$126,349</td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="qqq">QQQ<a href="https://docs.vaanam.app/blog/mean-reversion-strategy-ibs#qqq" class="hash-link" aria-label="Direct link to QQQ" title="Direct link to QQQ" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="QQQ equity curve" src="https://docs.vaanam.app/assets/images/qqq-equity-curve-a921680937546406795eb1428302ea3d.png" width="1719" height="682" class="img_ev3q">
<img decoding="async" loading="lazy" alt="QQQ trade analysis" src="https://docs.vaanam.app/assets/images/qqq-trade-analysis-2059f96530238d8227127a9dc1fef2cd.png" width="1716" height="1558" class="img_ev3q"></p>
<p>The ~70% win rate holds just like it did with SPY, and a CAGR of ~9% is not bad at all. But here too the time invested is very low — only 16% of the time the capital was utilized.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="aapl">AAPL<a href="https://docs.vaanam.app/blog/mean-reversion-strategy-ibs#aapl" class="hash-link" aria-label="Direct link to AAPL" title="Direct link to AAPL" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="AAPL equity curve" src="https://docs.vaanam.app/assets/images/aapl-equity-curve-0416d2b23254afb7709d2ffbfe11821d.png" width="1719" height="682" class="img_ev3q">
<img decoding="async" loading="lazy" alt="AAPL trade analysis" src="https://docs.vaanam.app/assets/images/aapl-trade-analysis-5d97fcefc739ee8327d25f1839a02b89.png" width="1717" height="1559" class="img_ev3q"></p>
<p>Interestingly, the ~70% win rate holds here too, with only 25% time invested. The 11.77% CAGR looks great, but note the 29.56% max drawdown — that's nearly double what we saw with SPY.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="abnb">ABNB<a href="https://docs.vaanam.app/blog/mean-reversion-strategy-ibs#abnb" class="hash-link" aria-label="Direct link to ABNB" title="Direct link to ABNB" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="ABNB equity curve" src="https://docs.vaanam.app/assets/images/abnb-equity-curve-762447ab5d0494a053715fd65de03345.png" width="1719" height="682" class="img_ev3q">
<img decoding="async" loading="lazy" alt="ABNB trade analysis" src="https://docs.vaanam.app/assets/images/abnb-trade-analysis-1d6ea626d963d3a66ac2d0cf887ff292.png" width="1717" height="1560" class="img_ev3q"></p>
<p>Win rate dropped to 56%, which is weak for mean reversion. But ABNB only IPO'd in late 2020 and has been in a downtrend since — just 69 trades and 7% time invested. Hard to draw conclusions from such limited data. The fact that it's still slightly profitable on a falling stock is something, I guess.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="takeaways">Takeaways<a href="https://docs.vaanam.app/blog/mean-reversion-strategy-ibs#takeaways" class="hash-link" aria-label="Direct link to Takeaways" title="Direct link to Takeaways" translate="no">​</a></h2>
<ul>
<li class=""><strong>~70% win rate</strong> held across SPY, QQQ, and AAPL</li>
<li class=""><strong>Profit factor consistently around 2.0</strong> on ETFs</li>
<li class=""><strong>Time invested stays low</strong> (16–25%) — capital efficient</li>
<li class=""><strong>Individual stocks</strong> = higher returns but higher drawdowns</li>
<li class=""><strong>Doesn't work on everything</strong> (ABNB struggled)</li>
</ul>
<p>The low time-in-market is the real story here. You're making 7–12% CAGR while only deploying capital a fifth of the time. Stack this with another uncorrelated strategy or run it across multiple instruments and the numbers get more interesting.</p>]]></content:encoded>
            <category>Backtesting</category>
            <category>Mean Reversion</category>
            <category>Trading Strategies</category>
            <category>SPY</category>
            <category>QQQ</category>
        </item>
        <item>
            <title><![CDATA[What Is Max Drawdown? The Number That Tells You If You Can Stomach a Strategy]]></title>
            <link>https://docs.vaanam.app/blog/what-is-max-drawdown</link>
            <guid>https://docs.vaanam.app/blog/what-is-max-drawdown</guid>
            <pubDate>Tue, 03 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Max drawdown measures the largest peak-to-trough decline in your portfolio. Learn why it's the most important risk metric for any trading strategy.]]></description>
            <content:encoded><![CDATA[<p>Max drawdown is the <strong>largest peak-to-trough drop</strong> in your portfolio value. It answers: "What's the worst it's ever gotten?"</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-formula">The Formula<a href="https://docs.vaanam.app/blog/what-is-max-drawdown#the-formula" class="hash-link" aria-label="Direct link to The Formula" title="Direct link to The Formula" translate="no">​</a></h2>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">Max Drawdown = (Trough Value - Peak Value) / Peak Value</span><br></span></code></pre></div></div>
<p><strong>Example:</strong> Your portfolio peaks at $150,000, then drops to $127,110 before recovering.</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">Max Drawdown = (127,110 - 150,000) / 150,000 = -15.26%</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-it-matters-more-than-you-think">Why It Matters More Than You Think<a href="https://docs.vaanam.app/blog/what-is-max-drawdown#why-it-matters-more-than-you-think" class="hash-link" aria-label="Direct link to Why It Matters More Than You Think" title="Direct link to Why It Matters More Than You Think" translate="no">​</a></h2>
<p>Every strategy looks great on a returns chart. But returns don't tell you what it <em>felt like</em> to trade it.</p>
<p>A 15% drawdown means watching $15,000 of every $100,000 disappear — with no guarantee it'll come back. A 30% drawdown means $30,000 gone. A 50% drawdown means you need a 100% gain just to break even.</p>
<table><thead><tr><th>Max Drawdown</th><th>Gain Needed to Recover</th></tr></thead><tbody><tr><td>10%</td><td>11.1%</td></tr><tr><td>20%</td><td>25.0%</td></tr><tr><td>30%</td><td>42.9%</td></tr><tr><td>50%</td><td>100.0%</td></tr><tr><td>75%</td><td>300.0%</td></tr></tbody></table>
<p>The math gets ugly fast. This is why drawdown matters more than return for most traders — it determines whether you'll actually stick with the strategy.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-acceptable">What's Acceptable?<a href="https://docs.vaanam.app/blog/what-is-max-drawdown#whats-acceptable" class="hash-link" aria-label="Direct link to What's Acceptable?" title="Direct link to What's Acceptable?" translate="no">​</a></h2>
<p>It depends on the strategy type:</p>
<table><thead><tr><th>Strategy</th><th>Typical Max Drawdown</th></tr></thead><tbody><tr><td>Mean reversion (ETFs)</td><td>10–20%</td></tr><tr><td>Trend following</td><td>20–40%</td></tr><tr><td>Buy and hold S&amp;P 500</td><td>~55% (2008)</td></tr><tr><td>Individual stocks</td><td>30–60%</td></tr></tbody></table>
<p>Generally, if you think your max drawdown tolerance is 20%, it's probably 10% in practice. Backtests don't capture the psychological pain of watching your money evaporate in real time.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="drawdown-duration-matters-too">Drawdown Duration Matters Too<a href="https://docs.vaanam.app/blog/what-is-max-drawdown#drawdown-duration-matters-too" class="hash-link" aria-label="Direct link to Drawdown Duration Matters Too" title="Direct link to Drawdown Duration Matters Too" translate="no">​</a></h2>
<p>A 15% drawdown that recovers in 2 weeks is very different from one that takes 18 months. When evaluating strategies, check both the <strong>depth</strong> and <strong>duration</strong> of the worst drawdown.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="key-takeaway">Key Takeaway<a href="https://docs.vaanam.app/blog/what-is-max-drawdown#key-takeaway" class="hash-link" aria-label="Direct link to Key Takeaway" title="Direct link to Key Takeaway" translate="no">​</a></h2>
<p>Max drawdown is the reality check for any backtest. A strategy that makes 20% a year but drops 50% along the way will be abandoned by most traders before it pays off. Always check drawdown first — if you can't survive it, the returns don't matter.</p>]]></content:encoded>
            <category>Backtesting</category>
            <category>Trading Strategies</category>
        </item>
        <item>
            <title><![CDATA[What Is Calmar Ratio? Measuring Return vs. Worst-Case Drawdown]]></title>
            <link>https://docs.vaanam.app/blog/what-is-calmar-ratio</link>
            <guid>https://docs.vaanam.app/blog/what-is-calmar-ratio</guid>
            <pubDate>Tue, 03 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[The Calmar Ratio divides CAGR by maximum drawdown. Learn how it helps evaluate whether a strategy's returns justify its worst-case pain.]]></description>
            <content:encoded><![CDATA[<p>The Calmar Ratio answers a simple question: <strong>is the return worth the pain?</strong> It divides your annualized return by the worst drawdown you experienced.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-formula">The Formula<a href="https://docs.vaanam.app/blog/what-is-calmar-ratio#the-formula" class="hash-link" aria-label="Direct link to The Formula" title="Direct link to The Formula" translate="no">​</a></h2>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">Calmar Ratio = CAGR / Max Drawdown</span><br></span></code></pre></div></div>
<p>That's it. Two numbers you probably already have from any backtest.</p>
<p><strong>Example:</strong> Strategy has a <a class="" href="https://docs.vaanam.app/blog/what-is-cagr">CAGR</a> of 7.75% and a <a class="" href="https://docs.vaanam.app/blog/what-is-max-drawdown">max drawdown</a> of 15.26%.</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">Calmar = 7.75% / 15.26% = 0.51</span><br></span></code></pre></div></div>
<p>For every 1% of max drawdown, you earned about 0.51% annually.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-to-read-it">How to Read It<a href="https://docs.vaanam.app/blog/what-is-calmar-ratio#how-to-read-it" class="hash-link" aria-label="Direct link to How to Read It" title="Direct link to How to Read It" translate="no">​</a></h2>
<table><thead><tr><th>Calmar Ratio</th><th>Interpretation</th></tr></thead><tbody><tr><td>Below 0.5</td><td>Return doesn't justify the drawdown</td></tr><tr><td>0.5–1.0</td><td>Acceptable</td></tr><tr><td>1.0–2.0</td><td>Strong — good return for the risk</td></tr><tr><td>2.0+</td><td>Excellent (double-check it's not overfitted)</td></tr></tbody></table>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-calmar-is-practical">Why Calmar Is Practical<a href="https://docs.vaanam.app/blog/what-is-calmar-ratio#why-calmar-is-practical" class="hash-link" aria-label="Direct link to Why Calmar Is Practical" title="Direct link to Why Calmar Is Practical" translate="no">​</a></h2>
<p>Unlike <a class="" href="https://docs.vaanam.app/blog/what-is-sharpe-ratio">Sharpe</a> and <a class="" href="https://docs.vaanam.app/blog/what-is-sortino-ratio">Sortino</a>, Calmar uses max drawdown — something every trader viscerally understands. You don't need to think about "standard deviation of returns." You just ask yourself:</p>
<p><em>"Would I sit through a 15% drawdown to earn 7.75% per year?"</em></p>
<p>That's the Calmar ratio in human terms.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-catch">The Catch<a href="https://docs.vaanam.app/blog/what-is-calmar-ratio#the-catch" class="hash-link" aria-label="Direct link to The Catch" title="Direct link to The Catch" translate="no">​</a></h2>
<p>Max drawdown is a <strong>single worst-case event</strong>. If your strategy had one bad month in 20 years, that one month dominates the Calmar ratio forever. It doesn't tell you about the typical drawdown experience.</p>
<p>For this reason, some traders also look at the <strong>average drawdown</strong> or <strong>drawdown duration</strong> alongside Calmar.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="key-takeaway">Key Takeaway<a href="https://docs.vaanam.app/blog/what-is-calmar-ratio#key-takeaway" class="hash-link" aria-label="Direct link to Key Takeaway" title="Direct link to Key Takeaway" translate="no">​</a></h2>
<p>Calmar ratio is the most intuitive risk-adjusted metric because it directly compares return to worst-case pain. If Calmar is below 0.5, the strategy probably isn't worth the stress. Above 1.0, you're getting well-compensated for the risk.</p>]]></content:encoded>
            <category>Backtesting</category>
            <category>Trading Strategies</category>
        </item>
        <item>
            <title><![CDATA[What Is CAGR? Compound Annual Growth Rate Explained for Traders]]></title>
            <link>https://docs.vaanam.app/blog/what-is-cagr</link>
            <guid>https://docs.vaanam.app/blog/what-is-cagr</guid>
            <pubDate>Tue, 03 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[CAGR (Compound Annual Growth Rate) measures the smoothed annual return of a trading strategy or investment. Learn how to calculate it and why it matters for backtesting.]]></description>
            <content:encoded><![CDATA[<p>CAGR stands for <strong>Compound Annual Growth Rate</strong>. It tells you what your strategy's annualized return would be if it grew at a steady rate every year.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-not-just-use-total-return">Why Not Just Use Total Return?<a href="https://docs.vaanam.app/blog/what-is-cagr#why-not-just-use-total-return" class="hash-link" aria-label="Direct link to Why Not Just Use Total Return?" title="Direct link to Why Not Just Use Total Return?" translate="no">​</a></h2>
<p>Say a strategy returns 100% over 10 years. Sounds okay, right? But another returns 100% over 3 years. Clearly different — but "100% total return" doesn't tell you that.</p>
<p>CAGR normalizes returns to a per-year basis so you can compare strategies across different time periods.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-formula">The Formula<a href="https://docs.vaanam.app/blog/what-is-cagr#the-formula" class="hash-link" aria-label="Direct link to The Formula" title="Direct link to The Formula" translate="no">​</a></h2>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">CAGR = (Final Value / Initial Value) ^ (1 / Years) - 1</span><br></span></code></pre></div></div>
<p><strong>Example:</strong> You start with $100,000 and end with $434,835 after 20 years.</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">CAGR = (434,835 / 100,000) ^ (1/20) - 1</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">     = 4.3483 ^ 0.05 - 1</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">     = 0.0775</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">     = 7.75%</span><br></span></code></pre></div></div>
<p>So even though the total return is 334%, the annualized growth rate is 7.75%.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="whats-a-good-cagr">What's a Good CAGR?<a href="https://docs.vaanam.app/blog/what-is-cagr#whats-a-good-cagr" class="hash-link" aria-label="Direct link to What's a Good CAGR?" title="Direct link to What's a Good CAGR?" translate="no">​</a></h2>
<p>It depends on context:</p>
<table><thead><tr><th>Benchmark</th><th>Typical CAGR</th></tr></thead><tbody><tr><td>S&amp;P 500 (long-term)</td><td>~10%</td></tr><tr><td>Risk-free rate (T-bills)</td><td>~4-5%</td></tr><tr><td>Hedge funds (average)</td><td>~8-12%</td></tr></tbody></table>
<p>But CAGR alone doesn't tell the full story. A 15% CAGR with 50% max drawdown is very different from 15% CAGR with 10% max drawdown. Always pair CAGR with risk metrics like <a class="" href="https://docs.vaanam.app/blog/what-is-max-drawdown">max drawdown</a>, <a class="" href="https://docs.vaanam.app/blog/what-is-sharpe-ratio">Sharpe ratio</a>, or <a class="" href="https://docs.vaanam.app/blog/what-is-calmar-ratio">Calmar ratio</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="cagr-vs-average-return">CAGR vs. Average Return<a href="https://docs.vaanam.app/blog/what-is-cagr#cagr-vs-average-return" class="hash-link" aria-label="Direct link to CAGR vs. Average Return" title="Direct link to CAGR vs. Average Return" translate="no">​</a></h2>
<p>These are not the same. Average return ignores compounding.</p>
<ul>
<li class="">Year 1: +50%, Year 2: -50%</li>
<li class="">Average return: 0%</li>
<li class="">Actual result: $100 → $150 → $75 (you lost 25%)</li>
<li class="">CAGR: -13.4%</li>
</ul>
<p>CAGR reflects what actually happened to your money. Average return can be misleading.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="key-takeaway">Key Takeaway<a href="https://docs.vaanam.app/blog/what-is-cagr#key-takeaway" class="hash-link" aria-label="Direct link to Key Takeaway" title="Direct link to Key Takeaway" translate="no">​</a></h2>
<p>CAGR is the single best number for comparing strategy returns across different time periods. But never look at it in isolation — pair it with drawdown and risk-adjusted metrics for the full picture.</p>]]></content:encoded>
            <category>Trading Strategies</category>
        </item>
        <item>
            <title><![CDATA[What Is Sharpe Ratio? Risk-Adjusted Returns Explained]]></title>
            <link>https://docs.vaanam.app/blog/what-is-sharpe-ratio</link>
            <guid>https://docs.vaanam.app/blog/what-is-sharpe-ratio</guid>
            <pubDate>Tue, 03 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[The Sharpe Ratio measures how much return you earn per unit of risk. Learn how it works, what's a good value, and when to use it vs Sortino ratio.]]></description>
            <content:encoded><![CDATA[<p>The Sharpe Ratio measures <strong>return per unit of risk</strong>. It answers: "Am I being compensated enough for the volatility I'm taking on?"</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-formula">The Formula<a href="https://docs.vaanam.app/blog/what-is-sharpe-ratio#the-formula" class="hash-link" aria-label="Direct link to The Formula" title="Direct link to The Formula" translate="no">​</a></h2>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">Sharpe Ratio = (Strategy Return - Risk-Free Rate) / Standard Deviation of Returns</span><br></span></code></pre></div></div>
<ul>
<li class=""><strong>Strategy Return:</strong> Your <a class="" href="https://docs.vaanam.app/blog/what-is-cagr">CAGR</a> or average return</li>
<li class=""><strong>Risk-Free Rate:</strong> What you'd earn doing nothing (T-bills, ~4-5%)</li>
<li class=""><strong>Standard Deviation:</strong> How much your returns bounce around (volatility)</li>
</ul>
<p><strong>Example:</strong> Strategy earns 12% annually, risk-free rate is 4%, standard deviation is 15%.</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">Sharpe = (12% - 4%) / 15% = 0.53</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-to-read-it">How to Read It<a href="https://docs.vaanam.app/blog/what-is-sharpe-ratio#how-to-read-it" class="hash-link" aria-label="Direct link to How to Read It" title="Direct link to How to Read It" translate="no">​</a></h2>
<table><thead><tr><th>Sharpe Ratio</th><th>Interpretation</th></tr></thead><tbody><tr><td>Below 0</td><td>You'd be better off in T-bills</td></tr><tr><td>0–0.5</td><td>Low risk-adjusted return</td></tr><tr><td>0.5–1.0</td><td>Decent</td></tr><tr><td>1.0–2.0</td><td>Strong</td></tr><tr><td>2.0+</td><td>Excellent (verify it's not overfitted)</td></tr></tbody></table>
<p>For context, the S&amp;P 500's long-term Sharpe ratio is roughly 0.4–0.6.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-problem-with-sharpe">The Problem with Sharpe<a href="https://docs.vaanam.app/blog/what-is-sharpe-ratio#the-problem-with-sharpe" class="hash-link" aria-label="Direct link to The Problem with Sharpe" title="Direct link to The Problem with Sharpe" translate="no">​</a></h2>
<p>Sharpe treats <strong>all</strong> volatility as risk — both up and down. If your strategy has occasional huge winning days, that increases standard deviation and <em>lowers</em> your Sharpe ratio. That feels wrong.</p>
<p>This is exactly why the <a class="" href="https://docs.vaanam.app/blog/what-is-sortino-ratio">Sortino ratio</a> exists — it only penalizes downside volatility.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="when-sharpe-is-useful">When Sharpe Is Useful<a href="https://docs.vaanam.app/blog/what-is-sharpe-ratio#when-sharpe-is-useful" class="hash-link" aria-label="Direct link to When Sharpe Is Useful" title="Direct link to When Sharpe Is Useful" translate="no">​</a></h2>
<ul>
<li class="">Comparing strategies with similar return profiles</li>
<li class="">Evaluating how much risk you're taking for your returns</li>
<li class="">Quick screening of backtest results</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="when-its-not">When It's Not<a href="https://docs.vaanam.app/blog/what-is-sharpe-ratio#when-its-not" class="hash-link" aria-label="Direct link to When It's Not" title="Direct link to When It's Not" translate="no">​</a></h2>
<ul>
<li class="">Strategies with infrequent but large gains (trend following)</li>
<li class="">Strategies that are mostly in cash (low volatility inflates Sharpe)</li>
<li class="">Comparing strategies with very different time-in-market</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="key-takeaway">Key Takeaway<a href="https://docs.vaanam.app/blog/what-is-sharpe-ratio#key-takeaway" class="hash-link" aria-label="Direct link to Key Takeaway" title="Direct link to Key Takeaway" translate="no">​</a></h2>
<p>Sharpe ratio is the most widely used risk-adjusted metric, but it punishes upside volatility the same as downside. Use it as a starting point, then check <a class="" href="https://docs.vaanam.app/blog/what-is-sortino-ratio">Sortino</a> for a fairer picture.</p>]]></content:encoded>
            <category>Backtesting</category>
            <category>Trading Strategies</category>
        </item>
        <item>
            <title><![CDATA[What Is Sortino Ratio? A Better Risk Metric Than Sharpe]]></title>
            <link>https://docs.vaanam.app/blog/what-is-sortino-ratio</link>
            <guid>https://docs.vaanam.app/blog/what-is-sortino-ratio</guid>
            <pubDate>Tue, 03 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[The Sortino Ratio improves on Sharpe by only penalizing downside volatility. Learn how it works and why it gives a fairer picture of strategy risk.]]></description>
            <content:encoded><![CDATA[<p>The Sortino Ratio is like the <a class="" href="https://docs.vaanam.app/blog/what-is-sharpe-ratio">Sharpe ratio</a>, but smarter. Instead of penalizing all volatility, it only penalizes <strong>downside</strong> volatility.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-sortino-over-sharpe">Why Sortino Over Sharpe?<a href="https://docs.vaanam.app/blog/what-is-sortino-ratio#why-sortino-over-sharpe" class="hash-link" aria-label="Direct link to Why Sortino Over Sharpe?" title="Direct link to Why Sortino Over Sharpe?" translate="no">​</a></h2>
<p>The Sharpe ratio treats a +5% day and a -5% day as equally "risky" because both increase standard deviation. But as a trader, you don't mind upside volatility — you only care about the losses.</p>
<p>Sortino fixes this by only looking at negative returns when calculating risk.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-formula">The Formula<a href="https://docs.vaanam.app/blog/what-is-sortino-ratio#the-formula" class="hash-link" aria-label="Direct link to The Formula" title="Direct link to The Formula" translate="no">​</a></h2>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">Sortino Ratio = (Strategy Return - Risk-Free Rate) / Downside Deviation</span><br></span></code></pre></div></div>
<p>The only difference from Sharpe: the denominator uses <strong>downside deviation</strong> (standard deviation of only negative returns) instead of total standard deviation.</p>
<p><strong>Example:</strong> Strategy earns 12%, risk-free rate is 4%, downside deviation is 8%.</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">Sortino = (12% - 4%) / 8% = 1.0</span><br></span></code></pre></div></div>
<p>Compare to the same strategy's Sharpe of 0.53 (from our <a class="" href="https://docs.vaanam.app/blog/what-is-sharpe-ratio">Sharpe ratio</a> post). Same strategy, but Sortino gives a better score because it doesn't penalize the upside moves.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-to-read-it">How to Read It<a href="https://docs.vaanam.app/blog/what-is-sortino-ratio#how-to-read-it" class="hash-link" aria-label="Direct link to How to Read It" title="Direct link to How to Read It" translate="no">​</a></h2>
<table><thead><tr><th>Sortino Ratio</th><th>Interpretation</th></tr></thead><tbody><tr><td>Below 0</td><td>Losing money</td></tr><tr><td>0–1.0</td><td>Weak to average</td></tr><tr><td>1.0–2.0</td><td>Good</td></tr><tr><td>2.0+</td><td>Excellent</td></tr></tbody></table>
<p>Sortino values are typically higher than Sharpe for the same strategy, because you're dividing by a smaller number (downside-only deviation &lt; total deviation).</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="when-to-use-sortino">When to Use Sortino<a href="https://docs.vaanam.app/blog/what-is-sortino-ratio#when-to-use-sortino" class="hash-link" aria-label="Direct link to When to Use Sortino" title="Direct link to When to Use Sortino" translate="no">​</a></h2>
<p>Sortino shines for strategies where returns are <strong>asymmetric</strong> — meaning big wins and small losses (or vice versa). Mean reversion strategies often fit this profile: frequent small wins with occasional larger losses. Sortino captures this more accurately than Sharpe.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="key-takeaway">Key Takeaway<a href="https://docs.vaanam.app/blog/what-is-sortino-ratio#key-takeaway" class="hash-link" aria-label="Direct link to Key Takeaway" title="Direct link to Key Takeaway" translate="no">​</a></h2>
<p>Sortino ratio gives you a fairer read on risk-adjusted performance than Sharpe because it only counts the volatility that actually hurts you. If you're only going to look at one risk-adjusted metric, make it Sortino.</p>]]></content:encoded>
            <category>Backtesting</category>
            <category>Trading Strategies</category>
        </item>
        <item>
            <title><![CDATA[What Is Profit Factor? The Simplest Way to Judge a Trading Strategy]]></title>
            <link>https://docs.vaanam.app/blog/what-is-profit-factor</link>
            <guid>https://docs.vaanam.app/blog/what-is-profit-factor</guid>
            <pubDate>Tue, 03 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Profit Factor measures gross profits divided by gross losses. Learn what it means, what's a good value, and why it's one of the first metrics to check in any backtest.]]></description>
            <content:encoded><![CDATA[<p>Profit Factor is one of the simplest and most useful metrics in backtesting. It answers a straightforward question: <strong>for every dollar you lost, how many dollars did you make?</strong></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-formula">The Formula<a href="https://docs.vaanam.app/blog/what-is-profit-factor#the-formula" class="hash-link" aria-label="Direct link to The Formula" title="Direct link to The Formula" translate="no">​</a></h2>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">Profit Factor = Gross Profits / Gross Losses</span><br></span></code></pre></div></div>
<p>That's it. Add up all your winning trades. Add up all your losing trades (as a positive number). Divide.</p>
<p><strong>Example:</strong> Your strategy made $50,000 in winning trades and lost $25,000 in losing trades.</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">Profit Factor = 50,000 / 25,000 = 2.0</span><br></span></code></pre></div></div>
<p>For every $1 lost, you made $2 back.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-to-read-it">How to Read It<a href="https://docs.vaanam.app/blog/what-is-profit-factor#how-to-read-it" class="hash-link" aria-label="Direct link to How to Read It" title="Direct link to How to Read It" translate="no">​</a></h2>
<table><thead><tr><th>Profit Factor</th><th>Interpretation</th></tr></thead><tbody><tr><td>Below 1.0</td><td>Losing strategy — losses exceed profits</td></tr><tr><td>1.0</td><td>Breakeven</td></tr><tr><td>1.0–1.5</td><td>Marginally profitable, may not survive real-world friction</td></tr><tr><td>1.5–2.0</td><td>Solid strategy</td></tr><tr><td>2.0+</td><td>Strong edge</td></tr><tr><td>3.0+</td><td>Exceptional (or possibly overfitted)</td></tr></tbody></table>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-its-useful">Why It's Useful<a href="https://docs.vaanam.app/blog/what-is-profit-factor#why-its-useful" class="hash-link" aria-label="Direct link to Why It's Useful" title="Direct link to Why It's Useful" translate="no">​</a></h2>
<p>Profit Factor combines win rate and risk-reward into a single number. Two very different strategies can have the same profit factor:</p>
<ul>
<li class=""><strong>Strategy A:</strong> 80% win rate, small wins, occasional big loss → PF 2.0</li>
<li class=""><strong>Strategy B:</strong> 40% win rate, big wins, frequent small losses → PF 2.0</li>
</ul>
<p>Both make $2 for every $1 lost. Profit factor doesn't care how you get there.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="watch-out-for">Watch Out For<a href="https://docs.vaanam.app/blog/what-is-profit-factor#watch-out-for" class="hash-link" aria-label="Direct link to Watch Out For" title="Direct link to Watch Out For" translate="no">​</a></h2>
<ul>
<li class=""><strong>Low trade count:</strong> A profit factor of 3.0 on 15 trades means almost nothing. You need enough trades for the number to be statistically meaningful.</li>
<li class=""><strong>Very high values (5.0+):</strong> Usually a sign of curve-fitting or too few trades rather than a genuinely amazing strategy.</li>
<li class=""><strong>Doesn't account for drawdown:</strong> A strategy can have a great profit factor but still have gut-wrenching drawdowns. Pair it with <a class="" href="https://docs.vaanam.app/blog/what-is-max-drawdown">max drawdown</a> and <a class="" href="https://docs.vaanam.app/blog/what-is-calmar-ratio">Calmar ratio</a>.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="key-takeaway">Key Takeaway<a href="https://docs.vaanam.app/blog/what-is-profit-factor#key-takeaway" class="hash-link" aria-label="Direct link to Key Takeaway" title="Direct link to Key Takeaway" translate="no">​</a></h2>
<p>Profit Factor is the quickest sanity check for any backtest. Above 1.5 is decent, above 2.0 is strong. But always verify with enough trades and check the drawdown profile too.</p>]]></content:encoded>
            <category>Backtesting</category>
            <category>Trading Strategies</category>
        </item>
    </channel>
</rss>