<?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: Mahesh</title>
    <description>The latest articles on DEV Community by Mahesh (@umam75).</description>
    <link>https://dev.to/umam75</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%2F4047918%2Fbd284938-1a42-443b-915b-8651c73d1de2.png</url>
      <title>DEV Community: Mahesh</title>
      <link>https://dev.to/umam75</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/umam75"/>
    <language>en</language>
    <item>
      <title>I rebuilt a viral "3,888% return" TradingView strategy — it landed almost exactly at coin-flip odds</title>
      <dc:creator>Mahesh</dc:creator>
      <pubDate>Sun, 26 Jul 2026 18:47:15 +0000</pubDate>
      <link>https://dev.to/umam75/i-rebuilt-a-viral-3888-return-tradingview-strategy-it-landed-almost-exactly-at-coin-flip-odds-2hj7</link>
      <guid>https://dev.to/umam75/i-rebuilt-a-viral-3888-return-tradingview-strategy-it-landed-almost-exactly-at-coin-flip-odds-2hj7</guid>
      <description>&lt;p&gt;A trading YouTube channel (&lt;a href="https://www.youtube.com/watch?v=jBkCq0DnHQU" rel="noopener noreferrer"&gt;Trading with DaviddTech&lt;/a&gt;)&lt;br&gt;
posted a video claiming a "strange 63% win rate" TradingView indicator, turned into a full&lt;br&gt;
strategy (three indicators stacked together, nicknamed "Manergy Cloud" in the video), backtested&lt;br&gt;
on BTCUSDT at 1-hour bars with a claimed &lt;strong&gt;3,888% total return, 62.8% win rate, profit factor&lt;br&gt;
2.1, over 237 trades&lt;/strong&gt; — using 10x leverage.&lt;/p&gt;

&lt;p&gt;I wanted to actually test this, not just read the claim. This post walks through what happened&lt;br&gt;
when I tried — including the part where the video's own central indicator turned out not to&lt;br&gt;
actually exist anywhere obtainable.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the video claims
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Strategy name&lt;/strong&gt;: "Manergy Cloud," tested on BTCUSDT, 1-hour timeframe, 10x leverage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Entry indicators&lt;/strong&gt;: an "EWMA" (the video's own term — stated as "Entropy Weighted Moving
Average," not the standard exponentially-weighted moving average) filters for tradeable vs.
choppy conditions; a public Range Filter (by Donovan Wool) sets trend direction; an "LMO"
(Lead-Lag Moving Oscillator) confirms entries.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Risk&lt;/strong&gt;: ATR bands (3x multiple) for the stop, fixed 1:2 reward:risk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Claimed results&lt;/strong&gt;: 3,888% total P&amp;amp;L, profit factor 2.1, 62.8% win rate (149W/88L over 237
trades), 21% max drawdown, longest losing streak 6 trades, longest winning streak 16.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Treat every number above as a claim from the video, not an independently verified fact.&lt;/p&gt;

&lt;h2&gt;
  
  
  The reproducibility problem — this is the actual headline finding
&lt;/h2&gt;

&lt;p&gt;Before writing any code, I checked the video's own comment section. Multiple top comments (6+&lt;br&gt;
likes each) report:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The EWMA Indikator is not on Tradingview or in your website"&lt;br&gt;
"Why post a video to copy a strategy but not provide the indicators?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The video's description pushes a Skool community, a "strategyfactory.ai" resource link, and a&lt;br&gt;
pinned comment offering "all my TradingView strategies &amp;amp; tools... for FREE. LIMITED SPACES!" —&lt;br&gt;
classic lead-gen structure. Neither the "EWMA" nor the "LMO" indicator used in the video is a&lt;br&gt;
standard, publicly-documented technique with a known formula, and per the video's own audience,&lt;br&gt;
neither is actually available anywhere to check.&lt;/p&gt;

&lt;p&gt;This matters more than the headline return number. It means &lt;strong&gt;nobody watching that video can&lt;br&gt;
actually verify the 3,888%/62.8% claim&lt;/strong&gt; — not because the underlying idea is necessarily fake,&lt;br&gt;
but because the specific indicators driving entries were never published. That's worth knowing&lt;br&gt;
before anyone trades real money on the strength of that number.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I actually tested
&lt;/h2&gt;

&lt;p&gt;Given the reproducibility gap, I built the closest honest equivalent I could, being explicit about&lt;br&gt;
what's faithful and what's reconstructed:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Range Filter (Donovan Wool)&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Faithful&lt;/strong&gt; — this is one of TradingView's most widely-used open-source indicators; its formula is public and well-documented.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ATR Bands stop / 1:2 R:R&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Faithful&lt;/strong&gt; — standard Wilder ATR, exactly as the video describes the risk setup.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"LMO" (Lead-Lag Oscillator)&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Reconstructed.&lt;/strong&gt; No public formula exists under this name. I built a plausible lead/lag EMA-crossover oscillator matching the video's &lt;em&gt;description&lt;/em&gt; (green line above zero / red line below zero confirms direction) — not the creator's actual, never-published formula.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"EWMA" regime filter&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Reconstructed.&lt;/strong&gt; Also not obtainable (confirmed by the video's own commenters). I substituted a Kaufman-style efficiency-ratio choppiness filter — a standard, well-documented technique for the same &lt;em&gt;purpose&lt;/em&gt; (filter out sideways/choppy conditions), not a reproduction of whatever the video's version actually computes.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;I also substituted instruments: MES, MNQ, SPY, and QQQ (unlevered), instead of BTCUSDT at 10x&lt;br&gt;
leverage — both because this pipeline focuses on US equity/futures instruments, and because&lt;br&gt;
crypto's 24/7 session structure and leverage assumptions aren't directly comparable to what most&lt;br&gt;
readers of this blog are actually trading.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bottom line on scope: this backtest tests my reconstruction of the described strategy shape, not&lt;br&gt;
a verified port of the video's actual strategy.&lt;/strong&gt; That's a materially weaker claim than&lt;br&gt;
"replicated his results" — and an important distinction, not a footnote.&lt;/p&gt;

&lt;h2&gt;
  
  
  The signal, in Python
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# strategy_logic.py (excerpt)
&lt;/span&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;ManergyCloudSignal&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
    Entry confirmed when: regime filter is &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;green&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt; (trending, not choppy)
    AND Range Filter direction flips AND LMO green/red lines confirm the
    same side. Risk: ATR-band stop (3x ATR), fixed 1:2 reward:risk.
    &lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;signals&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;long_flip&lt;/span&gt; &lt;span class="o"&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;df&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;rf_trend_up&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;amp;&lt;/span&gt; &lt;span class="o"&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;df&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;rf_trend_up&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;fillna&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;short_flip&lt;/span&gt; &lt;span class="o"&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;df&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;rf_trend_down&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;amp;&lt;/span&gt; &lt;span class="o"&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;df&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;rf_trend_down&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;fillna&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="n"&gt;long_confirm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;long_flip&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&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;df&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;lmo_green&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="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&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;df&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;lmo_red&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;lt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&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;df&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_green&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
        &lt;span class="n"&gt;short_confirm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;short_flip&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&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;df&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;lmo_green&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;lt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&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;df&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;lmo_red&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="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&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;df&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_green&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
        &lt;span class="c1"&gt;# ... ATR-band stop distance attached per signal, entry filled at next bar's open
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The Range Filter is a faithful port of Donovan Wool's published stateful smoothing-band algorithm&lt;br&gt;
(a &lt;code&gt;var&lt;/code&gt;-style filter line that only moves when price closes outside its current band, direction&lt;br&gt;
flips tracked via consecutive up/down move counters). The regime filter is a Kaufman efficiency&lt;br&gt;
ratio: net directional displacement over a window, divided by total absolute movement in that&lt;br&gt;
window — high efficiency means trending, low means choppy.&lt;/p&gt;

&lt;p&gt;Backtester is fully event-driven and causal: entries fill at the &lt;em&gt;next&lt;/em&gt; bar's open after a signal&lt;br&gt;
(never the signal bar's own close), stop-vs-target resolved bar-by-bar using only that bar's real&lt;br&gt;
High/Low (stop wins on same-bar ambiguity), commission ($0.85/side) and slippage (1 tick/side)&lt;br&gt;
applied on both entry and exit.&lt;/p&gt;

&lt;h2&gt;
  
  
  The same logic in Pine Script v6
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;//@version=6
strategy("Manergy Cloud-Style (Range Filter + Reconstructed LMO/Regime)", overlay=true)

// Range Filter (Donovan Wool, faithful)
avgRng = ta.ema(math.abs(close - close[1]), rfLen)
smoothRng = ta.ema(avgRng, rfLen * 2 - 1) * rfMult
var float rfFilt = na
rfFilt := na(rfFilt[1]) ? close :
     close &amp;gt; rfFilt[1] ? math.max(rfFilt[1], close - smoothRng) : math.min(rfFilt[1], close + smoothRng)

// Reconstructed regime filter (Kaufman efficiency ratio, stands in for the
// video's unobtainable "EWMA" indicator)
netMove = math.abs(close - close[entropyWindow])
totalMove = math.sum(math.abs(close - close[1]), entropyWindow)
efficiency = totalMove == 0 ? 0.0 : netMove / totalMove
regimeGreen = efficiency &amp;gt; (1 - entropyThreshold)

// Entry + ATR-band stop / 1:2 R:R target
if longEntry
    stopPrice = close - atr[1] * atrMult
    targetPrice = close + atr[1] * atrMult * rr
    strategy.entry("Long", strategy.long)
    strategy.exit("Long Exit", from_entry="Long", stop=stopPrice, limit=targetPrice)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Unlike the earlier CFTC-based post on this blog, this strategy is fully computable bar-by-bar from&lt;br&gt;
OHLCV alone — no external weekly data feed needed — so this is a real &lt;code&gt;strategy()&lt;/code&gt; script, not&lt;br&gt;
just a signal overlay. Same reconstruction caveat applies: the LMO and regime-filter portions are&lt;br&gt;
approximations of the video's description, not verified ports of its actual formulas.&lt;/p&gt;

&lt;h2&gt;
  
  
  Backtest results
&lt;/h2&gt;

&lt;p&gt;Hourly bars, real historical data: MES/MNQ from ~3.25 years of Tiger continuous-futures data&lt;br&gt;
(Apr 2023–Jul 2026), SPY/QQQ from ~1 year of Tiger hourly bars (Jul 2025–Jul 2026 — Tiger's&lt;br&gt;
hourly-history API appears capped around a year, a real data-window limitation worth flagging&lt;br&gt;
rather than hiding).&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Instrument&lt;/th&gt;
&lt;th&gt;Trades&lt;/th&gt;
&lt;th&gt;Win Rate&lt;/th&gt;
&lt;th&gt;Gross P&amp;amp;L&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Net P&amp;amp;L (after costs)&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;Profit Factor&lt;/th&gt;
&lt;th&gt;Max Drawdown&lt;/th&gt;
&lt;th&gt;Sharpe&lt;/th&gt;
&lt;th&gt;Stopped Out&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;MES&lt;/td&gt;
&lt;td&gt;3,563&lt;/td&gt;
&lt;td&gt;34.5%&lt;/td&gt;
&lt;td&gt;$490.99&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;-$5,566.11&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0.99&lt;/td&gt;
&lt;td&gt;-$49,767&lt;/td&gt;
&lt;td&gt;-0.29&lt;/td&gt;
&lt;td&gt;65.0%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MNQ&lt;/td&gt;
&lt;td&gt;3,687&lt;/td&gt;
&lt;td&gt;35.1%&lt;/td&gt;
&lt;td&gt;$17,506.78&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;+$11,238.88&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1.01&lt;/td&gt;
&lt;td&gt;-$111,396&lt;/td&gt;
&lt;td&gt;0.29&lt;/td&gt;
&lt;td&gt;64.8%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SPY&lt;/td&gt;
&lt;td&gt;310&lt;/td&gt;
&lt;td&gt;32.9%&lt;/td&gt;
&lt;td&gt;$186.75&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;-$340.25&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0.81&lt;/td&gt;
&lt;td&gt;-$561&lt;/td&gt;
&lt;td&gt;-1.68&lt;/td&gt;
&lt;td&gt;66.5%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;QQQ&lt;/td&gt;
&lt;td&gt;315&lt;/td&gt;
&lt;td&gt;33.7%&lt;/td&gt;
&lt;td&gt;$97.77&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;-$437.73&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0.81&lt;/td&gt;
&lt;td&gt;-$820&lt;/td&gt;
&lt;td&gt;-1.73&lt;/td&gt;
&lt;td&gt;66.3%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;All trade counts (310–3,687) are comfortably above the ~50-trade threshold I use to trust a result&lt;br&gt;
at all — MES and MNQ especially so.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The actual finding&lt;/strong&gt;: win rates cluster tightly at 33–35% — almost exactly the mathematical&lt;br&gt;
breakeven point for a fixed 1:2 reward:risk setup (1 ÷ (1+2) = 33.3%). Before costs, this strategy&lt;br&gt;
lands right at coin-flip-adjusted-for-payout. After realistic commission and slippage, three of&lt;br&gt;
four instruments go net negative. MNQ's apparent "win" (+$11,239 net) comes with a &lt;strong&gt;-$111,396 max&lt;br&gt;
drawdown&lt;/strong&gt; — over 9x the eventual profit — which is nowhere close to a usable risk-adjusted result&lt;br&gt;
regardless of the headline sign.&lt;/p&gt;

&lt;p&gt;The ~65% stop-out rate across all four instruments is consistent with a strategy sitting almost&lt;br&gt;
exactly at its own breakeven line: neither a clear edge nor a clear failure at the entry-logic&lt;br&gt;
level, just costs and drawdown doing what they do to a coin flip run thousands of times.&lt;/p&gt;

&lt;h2&gt;
  
  
  Honest caveats
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;This tests a reconstruction, not the original strategy.&lt;/strong&gt; The LMO and "EWMA" components are
approximations built from the video's description, not verified ports of the creator's actual
(never-published) formulas. A genuinely faithful test isn't possible with what's public.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Instrument and leverage mismatch with the source video.&lt;/strong&gt; Tested on unlevered MES/MNQ/SPY/QQQ
hourly bars, not BTCUSDT at 10x leverage — a fundamentally different risk profile than the
video's claimed 3,888% figure, which should be read as a leveraged-crypto number, not
comparable to an unlevered-equity-index number.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SPY/QQQ only got ~1 year of hourly data&lt;/strong&gt; (a Tiger API history limit for hourly bars, not a
choice) — meaningfully less than MES/MNQ's 3.25 years. Their trade counts (310, 315) still clear
the reliability floor, but with a shorter, more recent sample.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Costs are estimates&lt;/strong&gt; ($0.85/side commission, 1 tick slippage/side), not a confirmed real fee
schedule.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No partial exits or trailing stops&lt;/strong&gt; — a fixed stop and fixed 1:2 target only, matching what
the video described, though a real trader might manage the position differently.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Bottom line
&lt;/h2&gt;

&lt;p&gt;The video's headline claim (3,888% return, 62.8% win rate) can't actually be independently&lt;br&gt;
verified — its central indicators aren't publicly available, a fact confirmed by the video's own&lt;br&gt;
audience in the comments, not just my own search. When I rebuilt the described strategy &lt;em&gt;shape&lt;/em&gt;&lt;br&gt;
using faithful public components (Range Filter, ATR bands) plus honest reconstructions for the&lt;br&gt;
unavailable pieces, on real MES/MNQ/SPY/QQQ hourly data, the result landed almost exactly at the&lt;br&gt;
mathematical breakeven win rate for its own reward:risk ratio — and lost money after costs on&lt;br&gt;
three of four instruments tested, with the fourth "winning" instrument carrying a drawdown far&lt;br&gt;
larger than its eventual profit.&lt;/p&gt;

&lt;p&gt;This doesn't prove the original video's claim is false — it's possible the real, unpublished&lt;br&gt;
indicators genuinely do something meaningfully different from my reconstruction. But it does mean&lt;br&gt;
nobody can currently verify that claim from the outside, and the closest honest attempt at&lt;br&gt;
rebuilding it didn't show an edge.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Full code and trade logs for this post are private for now — ask if you want them.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>trading</category>
      <category>python</category>
      <category>pinescript</category>
      <category>quant</category>
    </item>
    <item>
      <title>I tried to port an Indian FII/DII trading strategy to MNQ, MES, SPY, and QQQ — it lost money on all four</title>
      <dc:creator>Mahesh</dc:creator>
      <pubDate>Sun, 26 Jul 2026 17:22:43 +0000</pubDate>
      <link>https://dev.to/umam75/i-tried-to-port-an-indian-fiidii-trading-strategy-to-mnq-mes-spy-and-qqq-it-lost-money-on-all-5g56</link>
      <guid>https://dev.to/umam75/i-tried-to-port-an-indian-fiidii-trading-strategy-to-mnq-mes-spy-and-qqq-it-lost-money-on-all-5g56</guid>
      <description>&lt;p&gt;A trading YouTube podcast (&lt;a href="https://www.youtube.com/watch?v=65_-M-icfK0" rel="noopener noreferrer"&gt;Upsurge Club, ft. Amit Dhamija&lt;/a&gt;)&lt;br&gt;
describes a strategy built entirely around India's NSE exchange data: daily FII (Foreign&lt;br&gt;
Institutional Investor) / DII (Domestic Institutional Investor) / Proprietary / Retail&lt;br&gt;
participant-wise open interest. The claim is that tracking whether "smart money" is building or&lt;br&gt;
unwinding positions gives a real edge over price action alone.&lt;/p&gt;

&lt;p&gt;I wanted to know: does anything like this exist for US markets, and if you build the closest&lt;br&gt;
honest equivalent, does it actually work? This post walks through the whole process — including&lt;br&gt;
the part where the answer is no.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the video claims
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Four participant categories move the market: FIIs, DIIs, Proprietary traders, and Retail.&lt;/li&gt;
&lt;li&gt;Retail traders lose money overwhelmingly — the video cites SEBI data putting this above 90%.&lt;/li&gt;
&lt;li&gt;The edge comes from &lt;strong&gt;daily&lt;/strong&gt; participant-wise open interest, published by NSE, tracked
day-over-day to see who's adding vs. unwinding positions.&lt;/li&gt;
&lt;li&gt;A second, separate signal comes from &lt;strong&gt;option open-interest concentration at specific strikes&lt;/strong&gt;
(e.g. Nifty 24,000) as support/resistance.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Treat all of the above as claims from the video, not independently verified facts — in&lt;br&gt;
particular I have not verified the "90% of retail traders lose money" SEBI figure myself, I'm&lt;br&gt;
relaying what the video states.&lt;/p&gt;

&lt;h2&gt;
  
  
  Does this exist for US markets?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Short answer: not at the same frequency, and not from any single source.&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;NSE data Dhamija uses&lt;/th&gt;
&lt;th&gt;Closest US equivalent&lt;/th&gt;
&lt;th&gt;What's lost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Daily FII/DII/Pro/Retail open interest&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://publicreporting.cftc.gov/resource/yw9f-hn96.json" rel="noopener noreferrer"&gt;CFTC Traders in Financial Futures (TFF)&lt;/a&gt; — free, no-auth Socrata API&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Weekly, not daily.&lt;/strong&gt; Report is "as of" Tuesday, released the following Friday — a multi-day-old read vs. NSE's next-day data.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Strike-level option OI walls&lt;/td&gt;
&lt;td&gt;SPY/QQQ/SPX option chain OI (available live via most broker APIs, including Tiger Brokers, which I already had wired up)&lt;/td&gt;
&lt;td&gt;Broker APIs expose &lt;strong&gt;current&lt;/strong&gt; OI only — no historical time series by strike, so this piece can't be backtested, only paper-traded going forward.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;I found this out by actually grepping my environment for existing broker credentials rather than&lt;br&gt;
assuming — turns out I already had Tiger Brokers' API configured for live trading, and CFTC&lt;br&gt;
publishes their institutional positioning report as a completely free public API. No new&lt;br&gt;
accounts or paid data vendors needed.&lt;/p&gt;

&lt;p&gt;Because the strike-OI piece isn't backtestable with data I actually have, &lt;strong&gt;this post only tests&lt;br&gt;
the weekly institutional-bias half of the strategy.&lt;/strong&gt; That's an important, honest limitation, not&lt;br&gt;
a footnote — it's entirely possible the real edge (if any) lives in the untested timing piece.&lt;/p&gt;

&lt;h2&gt;
  
  
  The signal, in Python
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# strategy_logic_fii.py
&lt;/span&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;WeeklyBiasSignal&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
    Each week, CFTC reports the leveraged-fund community&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;s net change in
    long/short S&amp;amp;P 500 or Nasdaq-100 futures positioning.

    bias = +1 if leveraged funds net-ADDED to longs this week
           -1 if they net-ADDED to shorts
            0 if flat -&amp;gt; no trade that week

    usable_from = report_date + 6 days: the Monday after the Friday public
    release -- the first day this information could causally be acted on.
    &lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;__init__&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;tff_df&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;tff&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tff_df&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;copy&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;tff&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;report_date&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;pd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;to_datetime&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;tff&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;report_date&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;utc&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&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;tff&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;usable_from&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;pd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;to_datetime&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;tff&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;usable_from&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;utc&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&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;tff&lt;/span&gt; &lt;span class="o"&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;tff&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sort_values&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;usable_from&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;reset_index&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;drop&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;signals&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="k"&gt;return&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;tff&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;tff&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;bias&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="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;
            &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;report_date&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;usable_from&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;bias&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;lev_money_net_change&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;open_interest_all&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
        &lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;reset_index&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;drop&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Trade rule: enter at Monday's open in the direction of &lt;code&gt;bias&lt;/code&gt;, hold to that week's Friday close,&lt;br&gt;
one position at a time. A 2×ATR(14) stop-loss is applied — sized using only &lt;em&gt;prior&lt;/em&gt; days' ATR&lt;br&gt;
(shifted, so Monday's stop never peeks at Friday-or-later data) and walked day-by-day through the&lt;br&gt;
week with proper gap-fill handling if price opens beyond the stop.&lt;/p&gt;

&lt;p&gt;The full backtester is event-driven and causal throughout: no signal is ever used before its real&lt;br&gt;
public-release date, no fill is assumed instantly at the signal price, and every trade accounts&lt;br&gt;
for commission ($0.85/side, an estimate) and slippage (1 tick/side).&lt;/p&gt;

&lt;h2&gt;
  
  
  The same signal in Pine Script v6
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;//@version=6
indicator("Weekly Leveraged-Fund Bias (CFTC TFF)", overlay=true)

// Pine can't call an external REST API mid-script, so the weekly CFTC bias
// has to be injected as an external data series -- e.g. via a CSV-backed
// custom symbol imported into TradingView, or manually via input.int() for
// manual/replay use. This is NOT equivalent to the live Python pipeline,
// which pulls CFTC's API directly -- treat this Pine version as a chart
// overlay for eyeballing the signal against price action, not a
// self-contained backtestable strategy.

bias = input.int(0, "Weekly bias (+1/-1/0, set manually per CFTC release)", minval=-1, maxval=1)

atrLen = input.int(14, "ATR length")
atrMult = input.float(2.0, "Stop ATR multiple")

atr = ta.atr(atrLen)
isMonday = dayofweek == dayofweek.monday

var float stopPrice = na
if isMonday and bias != 0
    stopPrice := bias == 1 ? close - atrMult * atr : close + atrMult * atr

plotshape(isMonday and bias == 1, style=shape.triangleup, location=location.belowbar, color=color.green, title="Long bias")
plotshape(isMonday and bias == -1, style=shape.triangledown, location=location.abovebar, color=color.red, title="Short bias")
plot(stopPrice, title="ATR Stop", color=color.orange, style=plot.style_circles)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I want to flag this plainly: &lt;strong&gt;the Pine version is a simplification of the Python one&lt;/strong&gt;, not an&lt;br&gt;
independent implementation of the same thing. It can't fetch CFTC's weekly report on its own, so&lt;br&gt;
the bias has to be fed in manually or via an imported custom series. If you're going to trust one&lt;br&gt;
of these two versions, trust the Python backtest below — that's the one that actually ran against&lt;br&gt;
real historical data end to end.&lt;/p&gt;

&lt;h2&gt;
  
  
  Backtest results
&lt;/h2&gt;

&lt;p&gt;Four instruments, same signal, same 2×ATR(14) stop, real cost assumptions. All figures are trade&lt;br&gt;
counts × real historical daily bars — MES/MNQ from ~3.25 years of Tiger continuous-futures data&lt;br&gt;
(Apr 2023–Jul 2026), SPY/QQQ from ~6 years of Tiger daily bars (Jul 2020–Jul 2026).&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Instrument&lt;/th&gt;
&lt;th&gt;Trades&lt;/th&gt;
&lt;th&gt;Win Rate&lt;/th&gt;
&lt;th&gt;Gross P&amp;amp;L&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Net P&amp;amp;L (after costs)&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;Profit Factor&lt;/th&gt;
&lt;th&gt;Sharpe&lt;/th&gt;
&lt;th&gt;Stopped Out&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;MES&lt;/td&gt;
&lt;td&gt;166&lt;/td&gt;
&lt;td&gt;47.0%&lt;/td&gt;
&lt;td&gt;-$1,725.70&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;-$2,007.90&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0.94&lt;/td&gt;
&lt;td&gt;-0.15&lt;/td&gt;
&lt;td&gt;18.7%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MNQ&lt;/td&gt;
&lt;td&gt;166&lt;/td&gt;
&lt;td&gt;52.4%&lt;/td&gt;
&lt;td&gt;-$6,459.35&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;-$6,741.55&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0.91&lt;/td&gt;
&lt;td&gt;-0.26&lt;/td&gt;
&lt;td&gt;18.1%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SPY&lt;/td&gt;
&lt;td&gt;312&lt;/td&gt;
&lt;td&gt;42.6%&lt;/td&gt;
&lt;td&gt;+$114.12&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;-$416.28&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0.71&lt;/td&gt;
&lt;td&gt;-0.99&lt;/td&gt;
&lt;td&gt;16.3%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;QQQ&lt;/td&gt;
&lt;td&gt;312&lt;/td&gt;
&lt;td&gt;42.0%&lt;/td&gt;
&lt;td&gt;+$23.67&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;-$506.73&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0.69&lt;/td&gt;
&lt;td&gt;-1.02&lt;/td&gt;
&lt;td&gt;17.0%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Every instrument loses money net of costs.&lt;/strong&gt; Trade counts (166-312) are comfortably above the&lt;br&gt;
~50-trade threshold I use to trust a result at all, so this isn't a small-sample fluke — it's a&lt;br&gt;
real, if modest, negative edge for this specific version of the signal.&lt;/p&gt;

&lt;p&gt;The stop-loss barely moved the needle versus no stop at all. Only 16-19% of trades ever hit it —&lt;br&gt;
the problem here isn't blown-up losing trades, it's that the underlying win rate (42-52%) combined&lt;br&gt;
with the payoff structure doesn't clear its own costs. A stop fixes tail risk; it doesn't fix a&lt;br&gt;
weak base rate.&lt;/p&gt;

&lt;h2&gt;
  
  
  Honest caveats
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;This tests roughly half of Dhamija's actual method.&lt;/strong&gt; The strike-level option-OI timing piece
— arguably where his edge, if real, actually lives — isn't backtestable with any data source I
have access to (broker APIs only expose current OI, not history). It would need forward
paper-testing, not a backtest, to evaluate.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CFTC's reporting lag is real and large relative to NSE's.&lt;/strong&gt; A multi-day-old institutional
positioning read is a fundamentally weaker signal than next-day data, independent of whether
the underlying idea has merit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Costs are estimates&lt;/strong&gt; ($0.85/side commission, 1 tick slippage/side), not a confirmed real fee
schedule.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fixed weekly hold, no intra-week profit-taking&lt;/strong&gt; — a real implementation might manage this
differently, though I'd want to see it tested rather than assumed to help.&lt;/li&gt;
&lt;li&gt;MNQ's Tiger continuous-contract data initially had a gap that cut it off ~3 months before the
final "as of" date; caught and re-pulled before finalizing these numbers, but worth mentioning
as a reminder to always sanity-check a data pull's actual date range rather than trust the fetch
script silently.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Bottom line
&lt;/h2&gt;

&lt;p&gt;The honest finding: weekly CFTC leveraged-fund positioning, on its own, is not a profitable&lt;br&gt;
signal on MNQ, MES, SPY, or QQQ. This doesn't disprove Dhamija's method on its home turf (NSE) —&lt;br&gt;
it means the specific piece of it that's actually testable with public US data doesn't hold up by&lt;br&gt;
itself. If you want to take this further, the two real next steps are (1) get a historical&lt;br&gt;
options-OI-by-strike dataset to test the timing layer this post couldn't touch, or (2) forward&lt;br&gt;
paper-trade that layer live since it can't be validated historically.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Full code, trade logs, and data-fetch scripts for this post are private for now — ask if you&lt;br&gt;
want them.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>trading</category>
      <category>python</category>
      <category>pinescript</category>
      <category>quant</category>
    </item>
  </channel>
</rss>
