<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Raahi Bhushan, Lessons Learned while Trading]]></title><description><![CDATA[Substack on learnings while trading options in Indian Stock Market]]></description><link>https://raahibhushan.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!JVfK!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe75f0d15-64af-4150-8cd1-26eb48ab0ac3_1024x1024.png</url><title>Raahi Bhushan, Lessons Learned while Trading</title><link>https://raahibhushan.substack.com</link></image><generator>Substack</generator><lastBuildDate>Tue, 03 Nov 2026 21:15:19 GMT</lastBuildDate><atom:link href="iframe.php?url=https%3A%2F%2Fraahibhushan.substack.com%2Ffeed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Raahi Bhushan]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[raahi@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[raahi@substack.com]]></itunes:email><itunes:name><![CDATA[Raahi Bhushan]]></itunes:name></itunes:owner><itunes:author><![CDATA[Raahi Bhushan]]></itunes:author><googleplay:owner><![CDATA[raahi@substack.com]]></googleplay:owner><googleplay:email><![CDATA[raahi@substack.com]]></googleplay:email><googleplay:author><![CDATA[Raahi Bhushan]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Backtest & Automate any Trading Strategy Without Writing any Code]]></title><description><![CDATA[Describe the rules in plain English. Get back a data pipeline, a backtester, a dashboard and a paper-and-live execution engine. I did this on camera with Groww in under 2 hours.]]></description><link>https://raahibhushan.substack.com/p/step-by-step-guide-to-backtest-and</link><guid isPermaLink="false">https://raahibhushan.substack.com/p/step-by-step-guide-to-backtest-and</guid><dc:creator><![CDATA[Raahi Bhushan]]></dc:creator><pubDate>Sat, 31 Oct 2026 14:37:11 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15018fce-899f-4f0d-be84-82a52ebb3dca_1920x1080.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Every trader has a notebook of strategy ideas that never got tested. Usually the reason isn&#8217;t the idea. It&#8217;s the work in between: getting the data, coding the backtest, checking the trades, then writing the order logic to run it live.</p><p>That work used to take weeks or months. It doesn&#8217;t anymore.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading my Substack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><p>I recently recorded a session with Groww to show exactly how this works now. I started by downloading Claude, with nothing but an idea. I ended with a tested backtester, a dashboard that audits every trade, and an engine that can paper trade or place real orders through the Groww API. I didn&#8217;t write a single line of code by hand.</p><p>The strategy we used was a simple 9/21 EMA crossover on NIFTY options. The strategy isn&#8217;t the point. The workflow is, and it works for any rule-based idea you have. You can have a look at the <a href="iframe.php?url=http%3A%2F%2Fgroww.raahibhushan.in">dashboard created here. </a>(<a href="iframe.php?url=http%3A%2F%2Fgroww.raahibhushan.in">groww.raahibhushan.in</a>)</p><p><strong>Watch the full video here:</strong></p><div id="youtube2-mYIgtixNPBk" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;mYIgtixNPBk&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="iframe.php?url=https%3A%2F%2Fwww.youtube-nocookie.com%2Fembed%2FmYIgtixNPBk%3Frel%3D0%26amp%3Bautoplay%3D0%26amp%3Bshowinfo%3D0%26amp%3Benablejsapi%3D0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2>Then vs now</h2><p>My first algos were hand-written, and each took a couple of month to write and test them throughly. With AI, the same kind of build now takes less than a day.</p><div id="datawrapper-iframe" class="datawrapper-wrap outer" data-attrs="{&quot;url&quot;:&quot;https://datawrapper.dwcdn.net/aFZXE/1/&quot;,&quot;thumbnail_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/df08d771-4f04-45f8-93ca-79ce08477a07_1220x780.png&quot;,&quot;thumbnail_url_full&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/502af7b9-46ed-436e-aee1-c81fdfecc670_1220x780.png&quot;,&quot;height&quot;:386,&quot;title&quot;:&quot;Created with Datawrapper&quot;,&quot;description&quot;:&quot;&quot;,&quot;belowTheFold&quot;:true}" data-component-name="DatawrapperToDOM"><iframe id="iframe-datawrapper" class="datawrapper-iframe" src="iframe.php?url=https%3A%2F%2Fdatawrapper.dwcdn.net%2FaFZXE%2F1%2F" width="730" height="386" frameborder="0" scrolling="no" loading="lazy"></iframe><script type="text/javascript">!function(){"use strict";window.addEventListener("message",(function(e){if(void 0!==e.data["datawrapper-height"]){var t=document.querySelectorAll("iframe");for(var a in e.data["datawrapper-height"])for(var r=0;r<t.length;r++){if(t[r].contentWindow===e.source)t[r].style.height=e.data["datawrapper-height"][a]+"px"}}}))}();</script></div><p>Your job moves from writing code to writing rules. That&#8217;s a much better use of a trader&#8217;s time. And now it has become super simple for traders who don&#8217;t know how to code.</p><div><hr></div><h2>Steps 1 and 2: Install Claude, connect your broker</h2><p><strong>Install Claude.</strong> Download the desktop app and sign in. This takes a few minutes. Codex or another coding agent works too; the workflow is the same.</p><p><strong>Connect the Groww API.</strong> You create an API key on Groww. There are two ways to authenticate: an access token you regenerate by hand every day, or an API key with TOTP, which lets your system log in on its own. Use TOTP if you want anything to run unattended.</p><p>Then ask Claude for a small first app: log in to Groww and show my profile and funds. It sounds trivial, but it proves the connection works before you build anything on top of it. In the video, Claude:</p><ul><li><p>set up the project and Groww&#8217;s official SDK</p></li><li><p>kept the keys in a local file that is never logged, copied or committed to git</p></li><li><p>made the app read-only, so it could not place orders</p></li><li><p>tested it against my account and wrote 7 passing tests</p></li></ul><p>That&#8217;s your foundation. Everything after this reuses it.</p><div><hr></div><h2>Step 3: Describe the strategy</h2><p>This is the only step that needs real thought. Claude writes the code, but you still write the rules. A good prompt covers six things:</p><div id="datawrapper-iframe" class="datawrapper-wrap outer" data-attrs="{&quot;url&quot;:&quot;https://datawrapper.dwcdn.net/epqry/1/&quot;,&quot;thumbnail_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9d98229e-55b4-4263-974b-25a6b8938167_1220x940.png&quot;,&quot;thumbnail_url_full&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ef0f0f2f-4faa-43eb-ad4b-e4e00b6fb151_1220x940.png&quot;,&quot;height&quot;:468,&quot;title&quot;:&quot;Created with Datawrapper&quot;,&quot;description&quot;:&quot;&quot;,&quot;belowTheFold&quot;:true}" data-component-name="DatawrapperToDOM"><iframe id="iframe-datawrapper" class="datawrapper-iframe" src="iframe.php?url=https%3A%2F%2Fdatawrapper.dwcdn.net%2Fepqry%2F1%2F" width="730" height="468" frameborder="0" scrolling="no" loading="lazy"></iframe><script type="text/javascript">!function(){"use strict";window.addEventListener("message",(function(e){if(void 0!==e.data["datawrapper-height"]){var t=document.querySelectorAll("iframe");for(var a in e.data["datawrapper-height"])for(var r=0;r<t.length;r++){if(t[r].contentWindow===e.source)t[r].style.height=e.data["datawrapper-height"][a]+"px"}}}))}();</script></div><p>Add two lines to every prompt, whatever the strategy:</p><ul><li><p><strong>&#8220;Make every ambiguity explicit.&#8221;</strong> Does the signal fill on the close of the bar or the next open? What if two signals tie? What about days with missing data? If you don&#8217;t ask, the code quietly picks an answer for you.</p></li><li><p><strong>&#8220;Plan first, show me the plan, then build.&#8221;</strong> You review the plan before any code exists. Fixing a misunderstanding there costs a sentence. Fixing it later costs a rebuild.</p></li></ul><p>Here is the full prompt I used, lightly trimmed. Swap the strategy rules for yours and keep the rest:</p><pre><code>I want to build a 9/21 EMA crossover options strategy to live trade
during market hours, and a backtester + trade-viewer web app.

Build an app that can run an intraday 9/21 EMA crossover on NIFTY
index options. Create a webpage where I can see the results of the
strategy using 1-minute historical data downloaded from the Groww API.
Also create a dashboard where I can audit every simulated trade on a
candlestick chart. Plan first, show me the plan, then build.

Strategy rules
- Signal: 9 EMA crosses 21 EMA on closed spot bars. Timeframe is
  selectable: 5m, 15m or 30m, resampled from 1m bars aligned to the
  09:15 open.
- Entry window: start time every 30 mins from 09:30 till 10:30, and a
  cutoff from 11:30 till 14:30 (configurable). Signals outside it are
  ignored.
- Exit: opposite crossover, or mandatory square-off at 15:00.
  Immediate reversal: an opposite cross inside the window closes the
  trade and opens the reverse trade.
- Execution modes (all compared in the UI): Deep ITM buy (ITM 5),
  ATM buy, ATM sell.
- Sizing: lot size 65, 1 lot.

Make every ambiguity explicit (which bar triggers the fill, tie
handling, no-trade days).

Data: get the data using Groww APIs and store it in a Postgres
database. If Postgres is not available, install it locally.

Other things
- Friction: slippage (0.5% of premium plus fixed points; sell price
  floored at the 0.05 tick) and the full Indian options cost stack
  (brokerage, STT, exchange charges, SEBI fee, stamp duty, GST).
  Show gross PnL, friction and net PnL.
- Metrics: trades, win rate, net/gross PnL, profit factor, payoff
  ratio, expectancy, max drawdown (&#8377; and %).
- Test everything thoroughly so that there are no bugs.</code></pre><div><hr></div><h2>Step 4: Backtest and audit</h2><p>Claude showed me the plan, I approved it, and it built the rest on its own:</p><ul><li><p>Downloaded two years of 1-minute NIFTY spot and option candles from Groww and stored them in a local Postgres database</p></li><li><p>Built the backtester and precomputed all 189 combinations of timeframe, mode, entry window and cutoff, so every filter on the dashboard is instant</p></li><li><p>Wrote 61 automated tests, and checked one trade by hand against the raw candles</p></li><li><p>Built a dashboard showing net and gross P&amp;L, win rate, profit factor, drawdown and the full cost breakdown, with equity curves for each mode side by side</p></li><li><p>Put every trade on its own candlestick chart, with both EMAs, the entry and exit markers, and the option&#8217;s 1-minute premium</p></li><li><p>Flagged where the data was thin: 24 days with no option data in one mode, and 15 of about 59,000 trades filled from a later bar</p></li></ul><p>The trade-by-trade view is the most valuable part. It&#8217;s how you catch a bug, or a rule that doesn&#8217;t do what you meant.</p><p>You can view the <a href="iframe.php?url=http%3A%2F%2Fgroww.raahibhushan.in">dashboard created by Claude here.</a> (<a href="iframe.php?url=http%3A%2F%2Fgroww.raahibhushan.in">groww.raahibhushan.in</a>)</p><p>As for this particular strategy, the backtest was honest with me. Only one of nine variants made money after costs, and that result is still in-sample. That&#8217;s exactly what a backtest is for: you find out in a day, not with real money.</p><div><hr></div><h2>Step 5: From backtest to execution engine</h2><p>A backtest only matters if you can trade it. I asked Claude to make the strategy tradeable, and it built a Live page on top of the same app.</p><p>The key design choice: <strong>the backtest, paper trading and live trading all share one decision core.</strong> The code that decides when to enter and exit is the same in every mode. What you tested is exactly what trades.</p><p>The engine has three modes:</p><div id="datawrapper-iframe" class="datawrapper-wrap outer" data-attrs="{&quot;url&quot;:&quot;https://datawrapper.dwcdn.net/NzR7Q/1/&quot;,&quot;thumbnail_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2bb1af6d-9946-45ef-9cc1-8223d4ee6f65_1220x686.png&quot;,&quot;thumbnail_url_full&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d4167d43-c207-4806-bab3-6787796a45a0_1220x756.png&quot;,&quot;height&quot;:375,&quot;title&quot;:&quot;[ Insert title here ]&quot;,&quot;description&quot;:&quot;&quot;,&quot;belowTheFold&quot;:true}" data-component-name="DatawrapperToDOM"><iframe id="iframe-datawrapper" class="datawrapper-iframe" src="iframe.php?url=https%3A%2F%2Fdatawrapper.dwcdn.net%2FNzR7Q%2F1%2F" width="730" height="375" frameborder="0" scrolling="no" loading="lazy"></iframe><script type="text/javascript">!function(){"use strict";window.addEventListener("message",(function(e){if(void 0!==e.data["datawrapper-height"]){var t=document.querySelectorAll("iframe");for(var a in e.data["datawrapper-height"])for(var r=0;r<t.length;r++){if(t[r].contentWindow===e.source)t[r].style.height=e.data["datawrapper-height"][a]+"px"}}}))}();</script></div><p>Live trading sits behind three locks. It is switched off on the server by default. You must tick a box saying you understand the risk. Then you type TRADE LIVE to confirm.</p><p>Each session also has risk limits you set up front: a maximum daily loss (&#8377;10,000 in the video), a maximum number of trades per day, lot size and product type. The engine passed 100 automated tests, including browser tests.</p><p>Claude was also upfront about what it hadn&#8217;t done. We recorded on a Saturday, so the engine had never run against the live Groww API. It said the order and quote handling was written from the SDK docs and covered only by simulated tests, and asked me to run a full paper session on Monday before turning live on. That&#8217;s the kind of note you want from a developer.</p><div><hr></div><h2>What still needs you</h2><p>The code is no longer the hard part. These still are:</p><ul><li><p><strong>The rules.</strong> A vague prompt gets you a vague strategy. Spell out every edge case.</p></li><li><p><strong>The costs.</strong> If your backtest ignores slippage and charges, it will flatter you. Put them in the prompt from day one.</p></li><li><p><strong>The review.</strong> Read the plan before the build. Click through the trades after. Read the notes about data gaps and untested parts.</p></li><li><p><strong>The patience.</strong> Paper trade before you go live, and judge a strategy on forward results, not just the backtest.</p></li></ul><p>The tools changed. Trading discipline didn&#8217;t.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading my Substack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h2>Try it yourself</h2><p>You don&#8217;t need to be a developer. You need:</p><ul><li><p>A Groww account with Trade API access</p></li><li><p>Claude (or another coding agent) on your laptop</p></li><li><p>A strategy you can explain in plain English, edge cases included</p></li><li><p>The prompt above, with your rules swapped in</p></li></ul><p>Start with a setup you already trade by hand. Write the rules as if you were explaining them to a new trader. Ask for the plan first. Audit the trades. Paper trade it. Only then think about going live.</p><p>The full walkthrough, from installing Claude to the live trading page, is in the video: </p><div id="youtube2-mYIgtixNPBk" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;mYIgtixNPBk&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="iframe.php?url=https%3A%2F%2Fwww.youtube-nocookie.com%2Fembed%2FmYIgtixNPBk%3Frel%3D0%26amp%3Bautoplay%3D0%26amp%3Bshowinfo%3D0%26amp%3Benablejsapi%3D0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>If you build something with this, reply and tell me what you automated.</p><div><hr></div><p><em>This post is for education only. It is not investment advice. Backtested results don&#8217;t guarantee future returns, and automated trading carries real risk, including losses from bugs and bad fills.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Raahi Bhushan, Lessons Learned while Trading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[I Open-Sourced My Zerodha Algo-Trading Dashboard]]></title><description><![CDATA[Self-hosted Flask dashboard for algorithmic options trading]]></description><link>https://raahibhushan.substack.com/p/i-open-sourced-my-zerodha-algo-trading</link><guid isPermaLink="false">https://raahibhushan.substack.com/p/i-open-sourced-my-zerodha-algo-trading</guid><dc:creator><![CDATA[Raahi Bhushan]]></dc:creator><pubDate>Mon, 13 Jul 2026 08:59:57 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21fzlD%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fad84c4bd-043f-4f81-9ec8-22326f0b193f_2816x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>TL;DR</strong><span> &#8212; </span><a href="iframe.php?url=https%3A%2F%2Fgithub.com%2FRaahi-Bhushan%2Fui-trading-system"><mark data-color="#d9d2e9" style="background-color: rgb(217, 210, 233); color: rgb(0, 0, 0);">ui-trading-system</mark></a> <span>is a self-hosted Flask dashboard for algorithmic options trading on NIFTY and SENSEX, built on the Zerodha Kite Connect API. It's live on GitHub, MIT-licensed, and this post walks through what it is, how to run your own copy, and what I learned building it. </span><strong>This is shared for educational purposes</strong><span> &#8212; to show one way of building a self-hosted trading setup, not as investment advice or a plug-and-play money-maker. Read the caveats below before you touch a live order.</span></p><p><strong>Jump to:</strong><span> </span><a href="iframe.php?url=https%3A%2F%2Fraahibhushan.substack.com%2Fi%2F206801050%2Fwhy-i-built-this">Why I built this</a><span> &#183; </span><a href="iframe.php?url=https%3A%2F%2Fraahibhushan.substack.com%2Fi%2F206801050%2Fwhat-it-does-existing-modules">What it does</a><span> &#183; </span><a href="iframe.php?url=https%3A%2F%2Fraahibhushan.substack.com%2Fi%2F206801050%2Farchitecture">Architecture</a><span> &#183; </span><a href="iframe.php?url=https%3A%2F%2Fraahibhushan.substack.com%2Fi%2F206801050%2Finstalling-on-your-own-server">Installing on your own server</a><span> &#183; </span><a href="iframe.php?url=https%3A%2F%2Fraahibhushan.substack.com%2Fi%2F206801050%2Fsecurity-by-default-not-as-an-afterthought">Security</a><span> &#183; </span><a href="iframe.php?url=https%3A%2F%2Fraahibhushan.substack.com%2Fi%2F206801050%2Fbuilding-on-top-of-it">Building on top of it</a><span> &#183; </span><a href="iframe.php?url=https%3A%2F%2Fraahibhushan.substack.com%2Fi%2F206801050%2Flessons-learned">Lessons learned</a><span> &#183; </span><a href="iframe.php?url=https%3A%2F%2Fraahibhushan.substack.com%2Fi%2F206801050%2Fa-note-on-compliance">Compliance note</a><span> &#183; </span><a href="iframe.php?url=https%3A%2F%2Fraahibhushan.substack.com%2Fi%2F206801050%2Frunning-into-issues">Issues</a><span> </span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21fzlD%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fad84c4bd-043f-4f81-9ec8-22326f0b193f_2816x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fzlD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad84c4bd-043f-4f81-9ec8-22326f0b193f_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!fzlD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad84c4bd-043f-4f81-9ec8-22326f0b193f_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!fzlD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad84c4bd-043f-4f81-9ec8-22326f0b193f_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!fzlD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad84c4bd-043f-4f81-9ec8-22326f0b193f_2816x1536.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21fzlD%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fad84c4bd-043f-4f81-9ec8-22326f0b193f_2816x1536.png" width="1456" height="794" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ad84c4bd-043f-4f81-9ec8-22326f0b193f_2816x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:794,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:6663113,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://raahibhushan.substack.com/i/206801050?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad84c4bd-043f-4f81-9ec8-22326f0b193f_2816x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!fzlD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad84c4bd-043f-4f81-9ec8-22326f0b193f_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!fzlD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad84c4bd-043f-4f81-9ec8-22326f0b193f_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!fzlD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad84c4bd-043f-4f81-9ec8-22326f0b193f_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!fzlD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad84c4bd-043f-4f81-9ec8-22326f0b193f_2816x1536.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading this post! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h4><strong>Why I built this</strong></h4><p>I&#8217;ve been trading NIFTY and SENSEX options for a while, and the manual parts of it &#8212; watching gaps, re-placing orders as price moves, tracking Greeks across positions, remembering to exit before expiry decay eats the premium &#8212; were exactly the kind of repetitive, rules-based work that should be automated. So I built myself a Flask dashboard on top of Zerodha&#8217;s Kite Connect API: live positions with Greeks, a few automated strategies, GTT monitoring, a trade journal.</p><p>Over time it grew into something I actually run every trading day. And once I had something real and working, it felt worth sharing &#8212; not because it&#8217;s a polished product, but because the shape of the problem (broker API &#8594; order engine &#8594; dashboard &#8594; strategies) is one a lot of people trading through Zerodha run into, and there wasn&#8217;t an open reference implementation I could point people to. So I cleaned it up, stripped out my personal/experimental strategies, added the safety rails a stranger&#8217;s install would need, and put it up.</p><div><hr></div><h4><strong>What it does (Existing Modules)</strong></h4><div id="datawrapper-iframe" class="datawrapper-wrap outer" data-attrs="{&quot;url&quot;:&quot;https://datawrapper.dwcdn.net/Z4dob/1/&quot;,&quot;thumbnail_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a8cc9bae-2390-46f7-9d24-af4dcf33ae6c_1220x1332.png&quot;,&quot;thumbnail_url_full&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fc85f43b-1bcb-4081-bb43-a8de261f9e0e_1220x1332.png&quot;,&quot;height&quot;:656,&quot;title&quot;:&quot;Created with Datawrapper&quot;,&quot;description&quot;:&quot;&quot;,&quot;belowTheFold&quot;:true}" data-component-name="DatawrapperToDOM"><iframe id="iframe-datawrapper" class="datawrapper-iframe" src="iframe.php?url=https%3A%2F%2Fdatawrapper.dwcdn.net%2FZ4dob%2F1%2F" width="730" height="656" frameborder="0" scrolling="no" loading="lazy"></iframe><script type="text/javascript">!function(){"use strict";window.addEventListener("message",(function(e){if(void 0!==e.data["datawrapper-height"]){var t=document.querySelectorAll("iframe");for(var a in e.data["datawrapper-height"])for(var r=0;r<t.length;r++){if(t[r].contentWindow===e.source)t[r].style.height=e.data["datawrapper-height"][a]+"px"}}}))}();</script></div><p>Everything runs as a single process on your own machine, against your own Zerodha account. Nothing phones home, nothing routes through a third-party server.</p><div><hr></div><h4><strong>Architecture</strong></h4><p>It&#8217;s one Flask process (served by waitress, bound to 127.0.0.1 only) plus a handful of strategy subprocesses it spawns and tracks by PID:</p><div class="preformatted-block" data-component-name="PreformattedTextBlockToDOM"><label class="hide-text" contenteditable="false">Text within this block will maintain its original spacing when published</label><pre class="text">Auth:                    Browser &#8594; Flask gatekeeper login &#8594; Kite Connect OAuth
                              &#8594; access_token &#8594; Flask session + instruments.db (restart recovery)

Orders:                strategy process &#8594; common_lib.place_order()
                             &#8594; [safety] live_trading gate &#8594; Kite Connect API
                             &#8594; on_order_update() WebSocket callback &#8594; JSON state file

Positions:           KiteConnect.positions() &#8594; positions_lib &#8594; Greeks (Black-Scholes)
                             &#8594; dashboard

Instruments:     daily 9 AM IST &#8594; instrument_cache.sync_instruments()
                           &#8594; SQLite, atomic swap</pre></div><p>The core engine (common_lib.py) handles order placement/cancellation with retry-with-backoff, gap management, delta calculations, and order-state persistence. Everything reads instrument tokens through instrument_cache.py rather than hardcoding them &#8212; tokens change after corporate actions, and lot sizes change too (NIFTY&#8217;s lot size, for instance, has changed more than once).</p><p>Strategies that trade continuously &#8212; Wave Extractor, Survivor &#8212; run as separate OS processes rather than threads inside the Flask app, one per symbol, each writing its own log. The dashboard tracks them by PID and refuses to double-spawn a scraper for a symbol that already has one running.</p><div><hr></div><h3><strong>Installing on your own server</strong></h3><p>The quickstart is genuinely three commands:</p><pre><code><code>git clone https://github.com/Raahi-Bhushan/ui-trading-system.git
cd ui-trading-system
python -m venv venv &amp;&amp; source venv/bin/activate
pip install -r requirements.txt
python flask_app.py
</code></code></pre><p>Open <mark data-color="#d9d2e9" style="background-color: rgb(217, 210, 233); color: rgb(0, 0, 0);">http://127.0.0.1:5010/</mark> and you land in a <strong>setup wizard</strong> &#8212; it collects your Kite Connect API key/secret and a dashboard username/password, and writes <mark data-color="#d9d2e9" style="background-color: rgb(217, 210, 233); color: rgb(0, 0, 0);">configfile.ini</mark> for you. No hand-editing an INI file. When you submit the form, the app restarts itself in place automatically (same process, same port) &#8212; the wizard page polls in the background and redirects you to login the moment it&#8217;s back up.</p><p>That&#8217;s enough to run it locally. If you want it always-on, here&#8217;s the version of the setup I actually run:</p><p><strong>1. A small always-on VM.</strong> I run mine on GCP; AWS works the same way. An <mark data-color="#d9d2e9" style="background-color: rgb(217, 210, 233); color: rgb(0, 0, 0);">e2-small</mark> (or equivalent burstable instance) is plenty &#8212; this isn&#8217;t compute-heavy, it&#8217;s mostly waiting on WebSocket ticks and making occasional API calls.</p><p><strong>2. A static external IP.</strong> Reserve one (<mark data-color="#d9d2e9" style="background-color: rgb(217, 210, 233); color: rgb(0, 0, 0);">gcloud compute addresses create</mark> on GCP, an Elastic IP on AWS) and attach it to the instance. You need this because the Kite Connect app&#8217;s redirect URL is fixed &#8212; if your IP changes on every reboot, your OAuth login breaks every time the instance restarts.</p><p><strong>3. Put a TLS-terminating reverse proxy in front, don&#8217;t expose the Flask port directly.</strong> The app deliberately binds to <mark data-color="#d9d2e9" style="background-color: rgb(217, 210, 233); color: rgb(0, 0, 0);">127.0.0.1</mark> only &#8212; that&#8217;s not a limitation, it&#8217;s the point. Run Caddy or nginx on the box, forward your domain (or https://your-ip) to <mark data-color="#d9d2e9" style="background-color: rgb(217, 210, 233); color: rgb(0, 0, 0);">127.0.0.1:5010</mark>, and only open 80/443 in your firewall, not 5010. A minimal Caddy config:</p><pre><code><code>trading.example.com {
    reverse_proxy 127.0.0.1:5010
}</code></code></pre><p><strong>4. Configure the Kite Connect app&#8217;s redirect URL to match.</strong> In the <a href="iframe.php?url=https%3A%2F%2Fdevelopers.kite.trade%2F">Kite Connect developer console</a>, set the redirect URL for your app to <mark data-color="#d9d2e9" style="background-color: rgb(217, 210, 233); color: rgb(0, 0, 0);">https://trading.example.com/login </mark>(or <mark data-color="#d9d2e9" style="background-color: rgb(217, 210, 233); color: rgb(0, 0, 0);">https://&lt;static-ip&gt;/login</mark> if you&#8217;re not using a domain yet). This has to match exactly what your reverse proxy serves, or the OAuth callback lands nowhere. If you run more than one instance of this app (say, a local dev copy and a server copy) against the <em>same</em> Kite Connect app, be aware that browsers scope cookies by hostname only &#8212; not by port &#8212; so the OAuth redirect always lands wherever that fixed URL points, regardless of which instance initiated the login. Either use separate Kite Connect apps for separate environments, or only run one at a time.</p><p><strong>5. Run it under systemd, not a raw terminal.</strong> A simple unit file that restarts on failure:</p><pre><code><code>[Unit]
Description=Trading Dashboard
After=network.target

[Service]
WorkingDirectory=/home/you/ui-trading-system
ExecStart=/home/you/ui-trading-system/venv/bin/python flask_app.py
Restart=always
User=you

[Install]
WantedBy=multi-user.target</code></code></pre><p>Because the setup wizard restarts the app via <code>os.execv</code> (an in-place process replacement, not a fresh spawn), it keeps the same PID &#8212; systemd doesn&#8217;t even register it as a restart event, so this works cleanly under a service manager too.</p><div><hr></div><h4><strong>Security by default, not as an afterthought</strong></h4><p>This is code that, if you enable live trading, can place real orders on your account. I didn&#8217;t want &#8220;here&#8217;s a GitHub repo, good luck&#8221; to be the trust model, so a few things are deliberate:</p><ul><li><p><strong>Dry-run by default.</strong> Every fresh install starts with <mark data-color="#d9d2e9" style="background-color: rgb(217, 210, 233); color: rgb(0, 0, 0);">[safety] live_trading = false</mark>. Every order-placement call is logged with full parameters, but nothing reaches Zerodha. The header shows a yellow <strong>DRY-RUN</strong> badge until you explicitly flip it (and it turns red <strong>LIVE</strong> when you do).</p></li><li><p><strong>CSRF protection</strong> on every state-changing request (Flask-WTF), with a JS shim that attaches tokens to fetch/XHR calls automatically so it doesn&#8217;t leak into every template.</p></li><li><p><strong>Rate limiting</strong> on order-affecting endpoints &#8212; generous enough (up to 120/min) that an emergency stop-all is never itself rate-limited, but enough to blunt a runaway script or leaked credential.</p></li><li><p><strong>Input validation</strong> on trading parameters &#8212; symbol allowlist regex, numeric range checks &#8212; before anything reaches a filename or a subprocess call.</p></li><li><p><strong>Login lockout</strong>: 5 failed attempts per IP triggers a 15-minute lockout.</p></li></ul><p>The known, accepted trade-offs (documented, not hidden): it&#8217;s single-user with one shared gatekeeper credential, lockout/rate-limit state is in-memory and resets on restart, and <code>configfile.ini</code> holds your API key/secret in plaintext on disk. This is a self-hosted single-operator tool, not a multi-tenant SaaS &#8212; restrict filesystem access accordingly, and always run it behind HTTPS if you expose it beyond localhost.</p><div><hr></div><h3><strong>Building on top of it</strong></h3><p>The reason I structured it the way I did &#8212; a core engine (<mark data-color="#d9d2e9" style="background-color: rgb(217, 210, 233); color: rgb(0, 0, 0);">common_lib.py, positions_lib.py, instrument_cache.py, greeks_lib.py</mark>) cleanly separated from the Flask routes and the strategy scripts &#8212; is so it&#8217;s a base, not a finished product. A few ways to build on it:</p><ul><li><p><strong>New strategies as standalone scripts.</strong> Look at <mark data-color="#d9d2e9" style="background-color: rgb(217, 210, 233); color: rgb(0, 0, 0);">place_order_at_nifty.py or ticker_single_scraper_new.py</mark> as templates &#8212; they import <mark data-color="#d9d2e9" style="background-color: rgb(217, 210, 233); color: rgb(0, 0, 0);">common_lib</mark>, use <mark data-color="#d9d2e9" style="background-color: rgb(217, 210, 233); color: rgb(0, 0, 0);">retry_with_backoff( )</mark> for every Kite call, and persist state as JSON via <mark data-color="#d9d2e9" style="background-color: rgb(217, 210, 233); color: rgb(0, 0, 0);">save_executed_order()/load_todays_orders( )</mark>. A new strategy is mostly &#8220;when should I call <mark data-color="#d9d2e9" style="background-color: rgb(217, 210, 233); color: rgb(0, 0, 0);">place_order( )</mark>&#8221;, not new infrastructure.</p></li><li><p><strong>The core library is pip-installable on its own</strong>, if you just want the primitives (order placement with retries, instrument cache, Greeks) without the dashboard: <mark data-color="#d9d2e9" style="background-color: rgb(217, 210, 233); color: rgb(0, 0, 0);">bash pip install . python -c &#8220;import instrument_cache, positions_lib, greeks_lib&#8221;</mark></p></li><li><p><strong>Greeks are pluggable.</strong> <mark data-color="#d9d2e9" style="background-color: rgb(217, 210, 233); color: rgb(0, 0, 0);">greeks_lib.py</mark> is a facade over either the embedded Black-Scholes implementation or the faster <mark data-color="#d9d2e9" style="background-color: rgb(217, 210, 233); color: rgb(0, 0, 0);">opengreeks</mark> package, selected via config &#8212; swap the backend without touching strategy code.</p></li><li><p><strong>Notifications are a drop-in hook.</strong> The <mark data-color="#d9d2e9" style="background-color: rgb(217, 210, 233); color: rgb(0, 0, 0);">notifications </mark><code>/</code> blueprint already wires Telegram and browser Web Push into order events; a new strategy gets alerting for free by going through the same event path.</p></li></ul><p>If you build something interesting on top of it, I&#8217;d genuinely like to hear about it.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading this post! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3><strong>Lessons learned</strong></h3><p>A few of the more interesting bugs from actually running this on a fresh server, for anyone building something similar:</p><p><strong>Cookies are scoped by hostname, not port.</strong> I hit a very confusing session bug where logging in on one running instance of the app would silently log out a <em>different</em> instance running on another port on the same machine. The cause: browsers scope cookies by hostname only (RFC 6265) &#8212; port is irrelevant. Since the Kite Connect redirect URL is fixed to one host:port, any OAuth flow always lands there regardless of which instance kicked it off, and two Flask processes with different secret keys stomp on each other&#8217;s session cookie. Fix: separate Kite Connect apps per environment, or run one instance at a time.</p><p><strong>SQLite atomic swaps aren&#8217;t automatically race-free.</strong> The instrument cache syncs by writing to a staging table and doing an atomic rename &#8212; but with no locking, a background auto-sync and a manual &#8220;Sync Instruments&#8221; click could race on the same staging table, with one thread&#8217;s <code>DROP TABLE</code> pulling the rug out from under the other&#8217;s <code>INSERT</code>. Fixed with a simple non-blocking <code>threading.Lock()</code>: if a sync is already in flight, the second caller backs off cleanly instead of racing.</p><p><strong>WebSocket order updates don&#8217;t arrive in the order you&#8217;d expect.</strong> A <code>COMPLETE</code> callback can arrive <em>before</em> the corresponding <code>OPEN</code> callback &#8212; especially for GTT-fired orders. If your state machine assumes <code>OPEN</code> always comes first, it&#8217;ll silently drop completions. The fix wasn&#8217;t in the callback logic at all &#8212; it&#8217;s a 180-second polling loop that&#8217;s the <em>authoritative</em> source of truth, with the WebSocket as a fast-path optimization, not the other way around.</p><div><hr></div><h3><strong>A note on compliance</strong></h3><p>This is India, trading through Zerodha, so it&#8217;s worth being explicit: automated/algorithmic order placement may fall under SEBI and exchange rules around algo trading, separate from the general &#8220;you can lose money&#8221; risk disclaimer. This project doesn&#8217;t make any claim about regulatory compliance on your behalf &#8212; it&#8217;s your responsibility to understand what rules apply to how you use it, same as if you wrote the code yourself.</p><div><hr></div><h3><strong>Running into issues</strong></h3><p>If you hit a bug or get stuck setting it up, ping me on X &#8212; <a href="iframe.php?url=https%3A%2F%2Fx.com%2Fraahi_bhushan">@raahi_bhushan</a>. I&#8217;d rather you ask than silently give up or, worse, run something you don&#8217;t understand.</p><div><hr></div><h3><strong>FAQ</strong></h3><p><em>(I&#8217;ll keep adding to this as people ask questions &#8212; these are the ones that have come up already.)</em></p><p><strong>Do I need a paid Zerodha API subscription?</strong> Yes. Kite Connect is a paid add-on from <a href="iframe.php?url=https%3A%2F%2Fdevelopers.kite.trade%2F">developers.kite.trade</a> &#8212; the free Kite web login doesn&#8217;t give you API access.</p><p><strong>Why does the header say DRY-RUN and won&#8217;t go away?</strong> Because <code>live_trading = false</code> is the default, on purpose. Flip it in <code>configfile.ini</code> (or re-run the setup wizard) and restart once you&#8217;ve verified your setup.</p><p><strong>Orders return -1 in dry-run &#8212; is that a bug?</strong> No &#8212; that&#8217;s the established &#8220;not placed&#8221; sentinel so strategy code follows its no-fill path cleanly instead of tracking a phantom order.</p><p><strong>Why do I have to log in every morning?</strong> Zerodha invalidates access tokens daily, around 6 AM IST. Click <strong>Connect Kite</strong> each trading morning. The token&#8217;s cached so restarts within the day don&#8217;t need a fresh login.</p><p><strong>Can I run this on a VPS / cloud VM?</strong> Yes &#8212; see the installation section above. Keep the Flask port on localhost, put a TLS reverse proxy in front, use a strong gatekeeper password.</p><p><strong>Where&#8217;s the copy-trading / ML predictor / backtesting code you&#8217;ve mentioned elsewhere?</strong> This public repo is exported from a larger private codebase. Those modules are personal/experimental and intentionally weren&#8217;t included in the public release.</p><h3><strong>What&#8217;s next</strong></h3><p>The core library is already pip-installable; I&#8217;d like to publish it properly. A hosted docs site (architecture reference, per-module guides, full FAQ) is in progress. And I&#8217;ll keep adding strategies as I build them for myself &#8212; the point of open-sourcing this was never to freeze it, it&#8217;s to have a base that keeps growing.</p><p>If you found this useful: star the <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2FRaahi-Bhushan%2Fui-trading-system">repo</a>, follow <a href="iframe.php?url=https%3A%2F%2Fx.com%2Fraahi_bhushan">@raahi_bhushan</a> on X, and subscribe here for updates as the project grows.</p><div><hr></div><p><strong>Disclaimer:</strong><span> This project is shared for educational purposes &#8212; to demonstrate one way to build a self-hosted trading setup, not as investment advice or a guaranteed money-making system. It can place real orders with real money when live trading is enabled and may contain bugs. The author accepts no responsibility for any financial loss arising from its use. Read the code, understand what it does, and test thoroughly in dry-run mode before you ever enable live trading &#8212; everything it does in your account after that is your responsibility. Full disclaimer: </span><a href="iframe.php?url=https%3A%2F%2Fgithub.com%2FRaahi-Bhushan%2Fui-trading-system%2Fblob%2Fmain%2FDISCLAIMER.md">DISCLAIMER.md</a><span>.</span></p><h2></h2><p></p><p>You can also connect with me directly on <strong><a href="iframe.php?url=https%3A%2F%2Fx.com%2Fintent%2Ffollow%3Fregion%3Dfollow_link%26amp%3Bscreen_name%3Draahi_bhushan">X (Twitter)</a></strong> &#8212; my DMs are open!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://x.com/intent/follow?region=follow_link&amp;screen_name=raahi_bhushan&quot;,&quot;text&quot;:&quot;Connect with me on X&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="iframe.php?url=https%3A%2F%2Fx.com%2Fintent%2Ffollow%3Fregion%3Dfollow_link%26amp%3Bscreen_name%3Draahi_bhushan"><span>Connect with me on X</span></a></p><p>Let&#8217;s exchange ideas. That&#8217;s how we all grow &#128640;</p><div><hr></div>]]></content:encoded></item><item><title><![CDATA[Feb 3rd Nifty "Firefighting" Diary — Surviving a > -₹10L Opening]]></title><description><![CDATA[Because 'Hope' is Not a Strategy, but Selling 10,000 Puts Into a Panic Is]]></description><link>https://raahibhushan.substack.com/p/feb-3rd-nifty-firefighting-diary</link><guid isPermaLink="false">https://raahibhushan.substack.com/p/feb-3rd-nifty-firefighting-diary</guid><dc:creator><![CDATA[Raahi Bhushan]]></dc:creator><pubDate>Wed, 04 Feb 2026 07:58:04 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1b784bc-c62d-4f14-89e9-9074aab00ecd_2848x1504.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Most traders see a massive gap-up and think "Profit." But for an option seller positioned on the wrong side, the 9:15 AM bell sounds like a siren. </p><p>On <strong>Feb 3, 2026</strong>, following the landmark India-US Trade Deal announcement, the Nifty didn't just move&#8212;it leaped. I opened my terminal to see a sea of red: an MTM staring back at me at <strong>&gt;-&#8377;10,00,000</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21-GUB%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fa2eb08fb-52d9-443e-b0b7-a9208d529681_2848x1504.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-GUB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2eb08fb-52d9-443e-b0b7-a9208d529681_2848x1504.png 424w, https://substackcdn.com/image/fetch/$s_!-GUB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2eb08fb-52d9-443e-b0b7-a9208d529681_2848x1504.png 848w, https://substackcdn.com/image/fetch/$s_!-GUB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2eb08fb-52d9-443e-b0b7-a9208d529681_2848x1504.png 1272w, https://substackcdn.com/image/fetch/$s_!-GUB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2eb08fb-52d9-443e-b0b7-a9208d529681_2848x1504.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21-GUB%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fa2eb08fb-52d9-443e-b0b7-a9208d529681_2848x1504.png" width="1456" height="769" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a2eb08fb-52d9-443e-b0b7-a9208d529681_2848x1504.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:769,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:8290141,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://raahibhushan.substack.com/i/186830921?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2eb08fb-52d9-443e-b0b7-a9208d529681_2848x1504.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-GUB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2eb08fb-52d9-443e-b0b7-a9208d529681_2848x1504.png 424w, https://substackcdn.com/image/fetch/$s_!-GUB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2eb08fb-52d9-443e-b0b7-a9208d529681_2848x1504.png 848w, https://substackcdn.com/image/fetch/$s_!-GUB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2eb08fb-52d9-443e-b0b7-a9208d529681_2848x1504.png 1272w, https://substackcdn.com/image/fetch/$s_!-GUB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2eb08fb-52d9-443e-b0b7-a9208d529681_2848x1504.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading this post! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h4><strong>The &#8220;Trap&#8221; Positions</strong></h4><p>Going into the day, I was carrying short Call positions that were effectively "blown out" by the 1,200-point gap. Here is what the damage looked like:</p><div id="datawrapper-iframe" class="datawrapper-wrap outer" data-attrs="{&quot;url&quot;:&quot;https://datawrapper.dwcdn.net/YtL1e/1/&quot;,&quot;thumbnail_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/77dc1e45-583b-460e-bf6e-3b3c3e46700a_1220x434.png&quot;,&quot;thumbnail_url_full&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/db6dae58-ef54-4f6f-95a1-d3bec36bbcc8_1220x558.png&quot;,&quot;height&quot;:269,&quot;title&quot;:&quot;How the day Started&quot;,&quot;description&quot;:&quot;A gap-up of 1200+ points resulted in the starting loss of 10L+&quot;,&quot;belowTheFold&quot;:false}" data-component-name="DatawrapperToDOM"><iframe id="iframe-datawrapper" class="datawrapper-iframe" src="iframe.php?url=https%3A%2F%2Fdatawrapper.dwcdn.net%2FYtL1e%2F1%2F" width="730" height="269" frameborder="0" scrolling="no"></iframe><script type="text/javascript">!function(){"use strict";window.addEventListener("message",(function(e){if(void 0!==e.data["datawrapper-height"]){var t=document.querySelectorAll("iframe");for(var a in e.data["datawrapper-height"])for(var r=0;r<t.length;r++){if(t[r].contentWindow===e.source)t[r].style.height=e.data["datawrapper-height"][a]+"px"}}}))}();</script></div><p>While the initial gap and IV spike made the MTM feel like <strong>-13L</strong> at the peak, I eventually booked these at a total loss of <strong>&#8377;5,79,126</strong> (relative to the previous close).</p><p><strong>The question was: How do I recover from a 6-figure hole?</strong> Using my tradebook and AI-assisted insights, here is the session-by-session breakdown of the "Firefighting" that saved the day.</p><p>Here is the trades breakdown in different sessions during the day</p><div id="datawrapper-iframe" class="datawrapper-wrap outer" data-attrs="{&quot;url&quot;:&quot;https://datawrapper.dwcdn.net/zMaDr/3/&quot;,&quot;thumbnail_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/13b2b4c3-3712-4341-a50f-006b13694ea3_1220x470.png&quot;,&quot;thumbnail_url_full&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d9ebe3c4-7058-4d4e-89e1-b738cbde1840_1220x540.png&quot;,&quot;height&quot;:260,&quot;title&quot;:&quot;Session Breakdown &amp; New Trade Statistics&quot;,&quot;description&quot;:&quot;&quot;,&quot;belowTheFold&quot;:true}" data-component-name="DatawrapperToDOM"><iframe id="iframe-datawrapper" class="datawrapper-iframe" src="iframe.php?url=https%3A%2F%2Fdatawrapper.dwcdn.net%2FzMaDr%2F3%2F" width="730" height="260" frameborder="0" scrolling="no" loading="lazy"></iframe><script type="text/javascript">!function(){"use strict";window.addEventListener("message",(function(e){if(void 0!==e.data["datawrapper-height"]){var t=document.querySelectorAll("iframe");for(var a in e.data["datawrapper-height"])for(var r=0;r<t.length;r++){if(t[r].contentWindow===e.source)t[r].style.height=e.data["datawrapper-height"][a]+"px"}}}))}();</script></div><div><hr></div><h4><strong>Session 1: The First Hour Firefight (09:15 &#8211; 10:15)</strong></h4><p>This hour was about raw survival. The old "safe" zones were gone; I had to move my strikes to the very edge of the new price action.</p><ul><li><p><strong>The Activity:</strong> I aggressively sold <strong>10,075 units of Puts</strong> and <strong>2,600 units of Calls</strong> at much higher strikes.</p></li><li><p><strong>The Floor (25450 &#8211; 25700 PE):</strong> With the market near 26,300, I sold deep into the &#8220;Panic Premium.&#8221; The <strong>25450 PE</strong> was paying &#8377;81 at open despite being 800 points away.</p></li><li><p><strong>The Ceiling (25800 &#8211; 26000 CE):</strong> I tested a new &#8220;Strangle&#8221; around 26,000 but remained cautious with Call quantity to avoid a second &#8220;melt-up&#8221; wave.</p></li></ul><p><strong>The Lifecycle of Session 1 Puts (FIFO):</strong> I didn&#8217;t just &#8220;set and forget.&#8221; Out of the 10,075 Puts sold:</p><ul><li><p><strong>325 units</strong> were scalped immediately for a quick gain.</p></li><li><p><strong>8,775 units</strong> (the core recovery) were closed in Session 2 as the market stabilized.</p></li><li><p><strong>Outcome:</strong> I locked in <strong>&#8377;4.05 Lakhs</strong> in earned premium just from this first-hour offensive.</p></li></ul><div><hr></div><h4><strong>Session 2: The Strategic Grind (10:15 &#8211; 13:15)</strong></h4><p>Once it was clear the market wouldn't collapse back into the gap, I turned the heat up on theta decay.</p><ul><li><p><strong>Chasing the Trend (25750 &#8211; 25900 PE):</strong> I moved strikes closer to the spot. Since I still held those deep ITM calls (which have a Delta of ~1), they acted as a natural hedge against my aggressive Put selling.</p></li><li><p><strong>The IV Crush:</strong> As Implied Volatility began to contract in the afternoon, these Puts decayed rapidly. This session contributed another <strong>&#8377;2.13 Lakhs</strong> to the recovery.</p></li><li><p><strong>Rolling Up and Out:</strong> I accepted that the 25xxx Calls were &#8220;dead money&#8221; and reset my wing to the <strong>26000 &#8211; 26200 CE</strong> range to buffer against late-day rallies.</p><p></p></li></ul><h3><strong>Premium Dynamics: Selling into the &#8220;IV Spike&#8221;</strong></h3><p>The genius of your Session 1 and Session 2 trades was <strong>Time and Volatility</strong>.</p><div id="datawrapper-iframe" class="datawrapper-wrap outer" data-attrs="{&quot;url&quot;:&quot;https://datawrapper.dwcdn.net/vIpH7/2/&quot;,&quot;thumbnail_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/89538616-d7eb-41af-8c5b-0bfbd72abcf4_1220x488.png&quot;,&quot;thumbnail_url_full&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5c6a5fb2-e7bd-4500-8677-cbe74162a877_1220x558.png&quot;,&quot;height&quot;:269,&quot;title&quot;:&quot;Insights of Session #1 and Session #2&quot;,&quot;description&quot;:&quot;&quot;,&quot;belowTheFold&quot;:true}" data-component-name="DatawrapperToDOM"><iframe id="iframe-datawrapper" class="datawrapper-iframe" src="iframe.php?url=https%3A%2F%2Fdatawrapper.dwcdn.net%2FvIpH7%2F2%2F" width="730" height="269" frameborder="0" scrolling="no" loading="lazy"></iframe><script type="text/javascript">!function(){"use strict";window.addEventListener("message",(function(e){if(void 0!==e.data["datawrapper-height"]){var t=document.querySelectorAll("iframe");for(var a in e.data["datawrapper-height"])for(var r=0;r<t.length;r++){if(t[r].contentWindow===e.source)t[r].style.height=e.data["datawrapper-height"][a]+"px"}}}))}();</script></div><div><hr></div><h4><strong>Session 3: The Clean-Up (13:15 &#8211; 15:30)</strong></h4><p>The final session was about closing the &#8220;legacy&#8221; positions that started the nightmare.</p><ul><li><p><strong>Realizing the Pain:</strong> I systematically bought back the 25250 and 25350 Calls. The realized loss on those initial positions was <strong>-&#8377;5.78 Lakhs</strong>.</p></li><li><p><strong>The Math of Survival:</strong> Because I had collected <strong>&#8377;6.8L+</strong> in premium from new trades throughout Sessions 1 and 2, I was able to absorb the massive hit and finish the day within striking distance of green.</p></li></ul><p></p><h3><strong>The Final Takeaway</strong></h3><p>When you start the day at <strong>&gt;-10L</strong>, your goal isn&#8217;t a jackpot&#8212;it&#8217;s <strong>Capital Preservation</strong>. By selling over 20,000 units across the day, I replaced &#8220;dead&#8221; delta with &#8220;active&#8221; theta.</p><p><strong>Discipline &gt; Luck.</strong> The process of active adjustment turned a potential account-killer into a survivable day.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading this post! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3><strong>Let&#8217;s Talk: How Did You Handle the Gap?</strong></h3><p>The Feb 3rd &#8220;Trade Deal&#8221; gap will likely be talked about for months. It was a day that separated those who have a <em>plan</em> from those who have a <em>process</em>. While the numbers on my screen were intimidating at 9:15 AM, the process of active adjustment turned a potential nightmare into a successful recovery.</p><p><strong>But enough about my screen&#8212;how was your day?</strong> * Did you get caught on the wrong side of the gap, or were you riding the momentum?</p><ul><li><p>What was your &#8220;firefighting&#8221; move of the day?</p></li><li><p>If you&#8217;re a beginner and seeing an MTM of -10L sounds terrifying, what&#8217;s the one question you have about how I managed the risk?</p></li></ul><p><strong>Share your story in the comments below!</strong> I&#8217;ll be jumping in to answer any specific queries about the strikes, the margin management, or the FIFO logic used in this recovery. Let&#8217;s learn from the fire together.</p><p>You can also connect with me directly on <strong><a href="iframe.php?url=https%3A%2F%2Fx.com%2Fintent%2Ffollow%3Fregion%3Dfollow_link%26amp%3Bscreen_name%3Draahi_bhushan">X (Twitter)</a></strong> &#8212; my DMs are open!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://x.com/intent/follow?region=follow_link&amp;screen_name=raahi_bhushan&quot;,&quot;text&quot;:&quot;Connect with me on X&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="iframe.php?url=https%3A%2F%2Fx.com%2Fintent%2Ffollow%3Fregion%3Dfollow_link%26amp%3Bscreen_name%3Draahi_bhushan"><span>Connect with me on X</span></a></p><p>Let&#8217;s exchange ideas. That&#8217;s how we all grow &#128640;</p><div><hr></div>]]></content:encoded></item><item><title><![CDATA[🌊 The Wave Strategy is Now Open Source]]></title><description><![CDATA[The Wave Extractor strategy &#8212; has been open-sourced and is now available on GitHub.]]></description><link>https://raahibhushan.substack.com/p/the-wave-strategy-is-now-open-source</link><guid isPermaLink="false">https://raahibhushan.substack.com/p/the-wave-strategy-is-now-open-source</guid><dc:creator><![CDATA[Sambath S]]></dc:creator><pubDate>Mon, 10 Nov 2025 04:08:54 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%214u1x%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fe9d92bc8-cc30-4ec8-86b6-3b276e56d865_2816x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The Wave Extractor strategy &#8212; has been open-sourced and is now available on GitHub.</p><p>Want to understand how the Wave strategy actually works? Check out the detailed explanation here:<br>&#128073; <a href="iframe.php?url=https%3A%2F%2Fraahibhushan.substack.com%2Fp%2Fthe-wave-extractor-algo-2">The Wave Extractor Algo Explained</a></p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading this post! Subscribe for free to receive new posts and support my work..</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>If you&#8217;ve read about how this algo works, you can now see the code, tinker with it, and build on top of it.</p><p><strong>&#128279; GitHub Repository:</strong><br>&#128073; <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2FRaahi-Bhushan%2Ftrading-algo">Raahi-Bhushan/trading-algo</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%214u1x%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fe9d92bc8-cc30-4ec8-86b6-3b276e56d865_2816x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4u1x!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9d92bc8-cc30-4ec8-86b6-3b276e56d865_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!4u1x!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9d92bc8-cc30-4ec8-86b6-3b276e56d865_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!4u1x!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9d92bc8-cc30-4ec8-86b6-3b276e56d865_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!4u1x!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9d92bc8-cc30-4ec8-86b6-3b276e56d865_2816x1536.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%214u1x%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fe9d92bc8-cc30-4ec8-86b6-3b276e56d865_2816x1536.png" width="1456" height="794" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e9d92bc8-cc30-4ec8-86b6-3b276e56d865_2816x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:794,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4336162,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://raahibhushan.substack.com/i/168623089?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9d92bc8-cc30-4ec8-86b6-3b276e56d865_2816x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!4u1x!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9d92bc8-cc30-4ec8-86b6-3b276e56d865_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!4u1x!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9d92bc8-cc30-4ec8-86b6-3b276e56d865_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!4u1x!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9d92bc8-cc30-4ec8-86b6-3b276e56d865_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!4u1x!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9d92bc8-cc30-4ec8-86b6-3b276e56d865_2816x1536.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>&#9888;&#65039;  Disclaimer</strong></h2><p>This algorithm is shared for <strong>educational and informational purposes only</strong>. Trading carries substantial risk, and you could lose your entire investment or more. Any trades you make using this code are entirely at your own risk. The creators assume no responsibility for financial losses.</p><p><strong>Before deploying with real capital, thoroughly test the code itself and your configurations in a simulated environment to ensure everything works as expected.</strong> The code may have bugs, broker APIs can change, and market conditions vary &#8212; what works in testing may behave differently in live markets. Never run untested code with real money. Always do your own research and consult a qualified advisor before trading.</p><p><strong>What&#8217;s new:</strong></p><ul><li><p><strong>Wave Strategy added</strong>: The range-trading algo that captures intraday volatility is now available alongside the Survivor strategy</p></li><li><p><strong>Broker code standardization</strong>: Cleaner, more maintainable code structure for better extensibility</p></li></ul><p>The idea is to make these systematic strategies more accessible and share what&#8217;s been learned, help others avoid mistakes, and contribute to the trading and coding community.</p><p>If you&#8217;re interested in algorithmic trading, whether you&#8217;re a coder, trader, or just curious, this is a good place to start exploring.</p><h2><strong>&#128226; Questions or Issues?</strong></h2><p>If you run into any problems or have questions:</p><ul><li><p><strong>Create an issue</strong> on the <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2FRaahi-Bhushan%2Ftrading-algo%2Fissues">GitHub repository</a></p></li><li><p><strong>Reach out on X</strong> to <a href="iframe.php?url=https%3A%2F%2Fx.com%2Fintent%2Ffollow%3Fregion%3Dfollow_link%26amp%3Bscreen_name%3Draahi_bhushan">Raahi</a> or <a href="iframe.php?url=https%3A%2F%2Fx.com%2Fsambath__s">Sambath</a></p></li></ul><p>And if you want updates when more algos go live, consider subscribing!</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading this post! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The Wave Extractor (Algo #2)]]></title><description><![CDATA[Capturing the intra day volatility of the market to earn money]]></description><link>https://raahibhushan.substack.com/p/the-wave-extractor-algo-2</link><guid isPermaLink="false">https://raahibhushan.substack.com/p/the-wave-extractor-algo-2</guid><dc:creator><![CDATA[Raahi Bhushan]]></dc:creator><pubDate>Mon, 04 Aug 2025 06:15:01 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03fb6af5-3e64-46d1-b8d2-30029e1bc3ee_2816x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>How a Simple Idea Sparked My First Trading Algo &#129504;&#128185;</h3><p>When I first dipped my toes into trading, I noticed something curious about NIFTY: it kept bouncing up and down all day, but by the end of it, hadn&#8217;t really <em>gone</em> anywhere. That daily volatility felt like untapped opportunity. I thought to myself &#8212; <em>if I can just time my entries and exits well, there&#8217;s money to be made in this sideways movement</em>.</p><p>Back then, I didn&#8217;t have much technical knowledge. I wasn&#8217;t drawing support/resistance lines or looking at moving averages. I was just observing price behaviour and trying to make sense of it in the most intuitive way.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading this post! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3>The Birth of a Simple Idea &#128260;</h3><p>That&#8217;s when I built one of my first algos &#8212; super simple but very logical at its core.</p><p>Here&#8217;s how it worked:</p><ul><li><p>If the price went up by <em>X</em> points, the algo would <strong>sell</strong> Futures or Call Options (CEs).</p></li><li><p>If the price then dipped, it would <strong>buy</strong> them back, locking in the difference as profit.</p></li><li><p>The same logic applied on the downside:</p><ul><li><p>If the market fell, the algo would <strong>sell</strong> Puts (PEs).</p></li><li><p>As the price recovered, it would <strong>buy</strong> them back.</p></li></ul></li></ul><p>The logic was rooted in one principle: always <strong>sell first</strong>, and buy back later &#8212; especially in options. This made the strategy <em>theta positive</em>, which means time decay was working in our favour. Every passing minute increased our chances of profit &#8212; provided price stayed within a range.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%214u1x%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fe9d92bc8-cc30-4ec8-86b6-3b276e56d865_2816x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4u1x!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9d92bc8-cc30-4ec8-86b6-3b276e56d865_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!4u1x!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9d92bc8-cc30-4ec8-86b6-3b276e56d865_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!4u1x!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9d92bc8-cc30-4ec8-86b6-3b276e56d865_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!4u1x!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9d92bc8-cc30-4ec8-86b6-3b276e56d865_2816x1536.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%214u1x%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fe9d92bc8-cc30-4ec8-86b6-3b276e56d865_2816x1536.png" width="1456" height="794" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e9d92bc8-cc30-4ec8-86b6-3b276e56d865_2816x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:794,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4336162,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://raahibhushan.substack.com/i/168623089?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9d92bc8-cc30-4ec8-86b6-3b276e56d865_2816x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4u1x!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9d92bc8-cc30-4ec8-86b6-3b276e56d865_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!4u1x!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9d92bc8-cc30-4ec8-86b6-3b276e56d865_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!4u1x!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9d92bc8-cc30-4ec8-86b6-3b276e56d865_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!4u1x!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9d92bc8-cc30-4ec8-86b6-3b276e56d865_2816x1536.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>The Catch: One-Sided Trends &#128165;</h3><p>As elegant as it sounds, the strategy wasn&#8217;t foolproof. It worked beautifully in choppy or range-bound markets, but there was a catch&#8230;</p><p>In a strong one-sided trend &#8212; say, when the market kept moving up or down without reversing &#8212; this strategy could quickly accumulate heavy losses. Why? Because it kept fighting the trend, expecting reversals that never came.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://x.com/intent/follow?region=follow_link&amp;screen_name=raahi_bhushan&quot;,&quot;text&quot;:&quot;Connect with me on X&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="iframe.php?url=https%3A%2F%2Fx.com%2Fintent%2Ffollow%3Fregion%3Dfollow_link%26amp%3Bscreen_name%3Draahi_bhushan"><span>Connect with me on X</span></a></p><h3>The Saviour Combo &#129309;</h3><p>To protect against this, I paired this strategy with the <strong>Saviour Algo</strong> &#8212; a trend-following system that thrives during strong directional moves. So if the market does start trending sharply in one direction, the losses from the range strategy are offset (and sometimes even overcompensated) by the gains from Saviour.</p><p>Think of it like this:</p><ul><li><p><strong>Range Strategy:</strong> Makes money in sideways markets.</p></li><li><p><strong>Saviour Algo:</strong> Kicks in when the market breaks out of the range.</p></li></ul><p>Together, they balance each other out &#8212; one zigging when the other zags. &#129496;&#8205;&#9794;&#65039;</p><p></p><p>We are looking at making this code opensource for this algo as well, so stay tuned.</p><p></p><h3>What AI has to say about the code &#129302;</h3><p>Let's decode the run command:</p><blockquote><p>python3.8 ticker_single_scraper_new.py 30 30 &lt;OPTION_SYMBOL&gt; 75:75 &lt;REQUEST_TOKEN&gt;</p></blockquote><div id="datawrapper-iframe" class="datawrapper-wrap outer" data-attrs="{&quot;url&quot;:&quot;https://datawrapper.dwcdn.net/TH2xB/1/&quot;,&quot;thumbnail_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a8ff18d1-cc2c-48ff-88fa-6e4babfb461d_1260x660.png&quot;,&quot;thumbnail_url_full&quot;:&quot;&quot;,&quot;height&quot;:522,&quot;title&quot;:&quot;Arguments of the Command&quot;,&quot;description&quot;:&quot;&quot;,&quot;belowTheFold&quot;:true}" data-component-name="DatawrapperToDOM"><iframe id="iframe-datawrapper" class="datawrapper-iframe" src="iframe.php?url=https%3A%2F%2Fdatawrapper.dwcdn.net%2FTH2xB%2F1%2F" width="730" height="522" frameborder="0" scrolling="no" loading="lazy"></iframe><script type="text/javascript">!function(){"use strict";window.addEventListener("message",(function(e){if(void 0!==e.data["datawrapper-height"]){var t=document.querySelectorAll("iframe");for(var a in e.data["datawrapper-height"])for(var r=0;r<t.length;r++){if(t[r].contentWindow===e.source)t[r].style.height=e.data["datawrapper-height"][a]+"px"}}}))}();</script></div><p>Once you run this, the bot comes to life. It connects to the API, fetches the current price of your chosen symbol, and immediately places its first "duo order" using the place_duo_order function.</p><h4><strong>The Secret Sauce:</strong> The multiplier_scale</h4><p>This is where the Scraper goes from being a simple bot to an intelligent trading machine. What happens if the market starts trending strongly in one direction? A simple bot might keep buying as the price falls, digging itself into a deeper and deeper hole.</p><p><strong>The Scraper has a brilliant solution: the multiplier_scale.</strong></p><p>This is a built-in "learning" mechanism that makes the bot more cautious when it's on the wrong side of a trend. It works by tracking its net position (the total number of buys minus the total number of sells).</p><p>If the bot has a net SELL position (e.g., it has sold 3 times but only bought back once), it means the market is trending up. To avoid fighting this powerful uptrend, it automatically makes it harder to sell again. It does this by multiplying the sell_gap by a factor (e.g., 1.3x or 1.7x). The sell order is now placed further away, requiring a much bigger price spike to get filled.</p><p>If the bot has a net BUY position, it means the market is trending down. The bot adapts by widening the buy_gap, making it more difficult to add to its losing position.</p><p>This dynamic adjustment is the bot's superpower. It allows it to be aggressive in a sideways market but automatically becomes defensive and cautious when a strong trend emerges. It widens its trading bracket to avoid getting run over by the trend.</p><h4><strong>Built-in Safety Features</strong></h4><p>Any good trading bot needs safety nets. The Scraper has a few key ones:</p><ol><li><p>The Cool-Off Period (cool_off_time): Inside the place_duo_order function, there's a mandatory pause (e.g., 5 seconds) before a new bracket is placed. This is a critical circuit breaker. It prevents the bot from firing off dozens of trades in a few seconds during a "flash crash" or a sudden, volatile news event. It forces the bot to "take a breath" and re-assess before jumping back in.</p></li><li><p>The Guardian Loop: The main while True: loop in the script constantly asks one question: "Are there any active orders in the market?" If the answer is no (meaning a trade was just completed or canceled), it knows it's safe to place a new duo order. This ensures the bot is always working but never places new orders while old ones are still pending.</p></li><li><p>Delta-Based Restrictions: The bot is smart enough to consider the risk of your entire portfolio. Through the check_changes_in_restrictions function, it can check your portfolio's overall "delta" (its directional exposure). If your portfolio becomes too bullish (high positive delta), the bot will automatically be forbidden from placing new BUY orders, even if its own logic wants to. This is a powerful, portfolio-level safeguard that prevents one aggressive bot from unbalancing your overall strategy.</p></li></ol><h4><strong>A Walkthrough: The Scraper in Action</strong></h4><p>Let's imagine you run the bot on Nifty Futures, currently at 23,000, with a 10-point gap.</p><p><strong>Launch:</strong> The bot starts and places a BUY order at 22,990 and a SELL order at 23,010.</p><p><strong>Market Dips:</strong> The price falls and hits 22,990. The BUY order is instantly filled.</p><p><strong>Instant Reaction:</strong> The bot immediately cancels the pending SELL order at 23,010. Its net position is now +75.</p><p><strong>Adapt:</strong> The bot consults its multiplier_scale. Since its position is positive, it widens the buy_gap for the next trade (e.g., from 10 points to 13 points).</p><p><strong>Cool-Off:</strong> It waits for the 5-second cool-off period.</p><p><strong>New Bracket:</strong> The market is now at 22,990. The bot places a new bracket: a SELL order at 23,000 (10 points above) and a new, more cautious BUY order at 22,977 (13 points below).</p><p>And the cycle continues, 24/7, for as long as the script is running.</p><h4><strong>Conclusion</strong></h4><p>The ticker_single_scraper_new.py script is a brilliant example of how a few hundred lines of code can create a sophisticated, adaptive, and automated trading strategy. It's more than just a simple buy/sell program; it's a dynamic system that brackets the market, manages its own orders, and intelligently adapts its behavior based on the market's flow.</p><p>While it's a powerful tool, remember that all trading, especially algorithmic trading, carries risks. Understanding every line of code and testing thoroughly in a simulated environment is the first step before ever letting a bot like this trade with real capital. Happy coding, and trade safe</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading this post! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3>&#128172; Your Turn &#8212; What Do <em>You</em> Think?</h3><p>I'm curious to hear your thoughts:</p><ul><li><p>Have you ever tried trading range-bound setups like this?</p></li><li><p>What would <em>you</em> do differently to handle one-sided trends?</p></li><li><p>Do you think combining strategies is the way forward in algo trading?</p></li></ul><p>This strategy was born from pure observation, and over time, refined with logic and layering. But I know many of you reading this have your own approaches, experiences, and maybe even critiques &#8212; and I&#8217;d <em>love</em> to hear them.</p><p>&#128073; Drop your thoughts in the <strong>comments below</strong>, or connect with me directly on <strong><a href="iframe.php?url=https%3A%2F%2Fx.com%2Fintent%2Ffollow%3Fregion%3Dfollow_link%26amp%3Bscreen_name%3Draahi_bhushan">X (Twitter)</a></strong> &#8212; my DMs are open!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://x.com/intent/follow?region=follow_link&amp;screen_name=raahi_bhushan&quot;,&quot;text&quot;:&quot;Connect with me on X&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="iframe.php?url=https%3A%2F%2Fx.com%2Fintent%2Ffollow%3Fregion%3Dfollow_link%26amp%3Bscreen_name%3Draahi_bhushan"><span>Connect with me on X</span></a></p><p>Let&#8217;s exchange ideas. That&#8217;s how we all grow &#128640;</p><p></p>]]></content:encoded></item><item><title><![CDATA[July Update 🚀]]></title><description><![CDATA[July Trade Analysis & Learnings]]></description><link>https://raahibhushan.substack.com/p/july-update</link><guid isPermaLink="false">https://raahibhushan.substack.com/p/july-update</guid><dc:creator><![CDATA[Raahi Bhushan]]></dc:creator><pubDate>Sat, 02 Aug 2025 11:43:42 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb28fe2f8-03bd-4e82-b9be-8bef0b581a36_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>July was very different than other months because of low movement and low vix. It was exciting in many ways - </p><h3>1. Not a single red day &#8212; steady gains&#128200;</h3><p>This was the 1st month ever in my entire trading carrier where there was no negative day. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21F1LI%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fbda6cb90-0c2b-434f-a013-64243115ac95_1121x503.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!F1LI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbda6cb90-0c2b-434f-a013-64243115ac95_1121x503.png 424w, https://substackcdn.com/image/fetch/$s_!F1LI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbda6cb90-0c2b-434f-a013-64243115ac95_1121x503.png 848w, https://substackcdn.com/image/fetch/$s_!F1LI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbda6cb90-0c2b-434f-a013-64243115ac95_1121x503.png 1272w, https://substackcdn.com/image/fetch/$s_!F1LI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbda6cb90-0c2b-434f-a013-64243115ac95_1121x503.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21F1LI%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fbda6cb90-0c2b-434f-a013-64243115ac95_1121x503.png" width="1121" height="503" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bda6cb90-0c2b-434f-a013-64243115ac95_1121x503.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:503,&quot;width&quot;:1121,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:44872,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://raahibhushan.substack.com/i/169917633?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbda6cb90-0c2b-434f-a013-64243115ac95_1121x503.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!F1LI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbda6cb90-0c2b-434f-a013-64243115ac95_1121x503.png 424w, https://substackcdn.com/image/fetch/$s_!F1LI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbda6cb90-0c2b-434f-a013-64243115ac95_1121x503.png 848w, https://substackcdn.com/image/fetch/$s_!F1LI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbda6cb90-0c2b-434f-a013-64243115ac95_1121x503.png 1272w, https://substackcdn.com/image/fetch/$s_!F1LI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbda6cb90-0c2b-434f-a013-64243115ac95_1121x503.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading this post! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><p>Here is the link to <a href="iframe.php?url=https%3A%2F%2Fweb.sensibull.com%2Fverified-pnl%2Flatered-garage%2Flongterm-pnl">verified P&amp;L.</a></p><p>One of the reasons probably was as the market has fallen consistently in the month of Jul. From a peak of 25600 on 1st and 2nd Jul it touched the low of 24600 on 29th Jul. The anticipation of fall after 23rd (<a href="iframe.php?url=https%3A%2F%2Fx.com%2Fraahi_bhushan%2Fstatus%2F1947879846429761806">Tweet here</a>) worked out really well except in 23rd itself. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://x.com/intent/follow?region=follow_link&amp;screen_name=raahi_bhushan&quot;,&quot;text&quot;:&quot;Connect with me on X&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="iframe.php?url=https%3A%2F%2Fx.com%2Fintent%2Ffollow%3Fregion%3Dfollow_link%26amp%3Bscreen_name%3Draahi_bhushan"><span>Connect with me on X</span></a></p><p>This is how the weekly expiries Premium earned looked like. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%2167PD%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F02b85fe1-7b9b-4793-bbb0-def71590591f_1158x766.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!67PD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02b85fe1-7b9b-4793-bbb0-def71590591f_1158x766.png 424w, https://substackcdn.com/image/fetch/$s_!67PD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02b85fe1-7b9b-4793-bbb0-def71590591f_1158x766.png 848w, https://substackcdn.com/image/fetch/$s_!67PD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02b85fe1-7b9b-4793-bbb0-def71590591f_1158x766.png 1272w, https://substackcdn.com/image/fetch/$s_!67PD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02b85fe1-7b9b-4793-bbb0-def71590591f_1158x766.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%2167PD%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F02b85fe1-7b9b-4793-bbb0-def71590591f_1158x766.png" width="1158" height="766" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/02b85fe1-7b9b-4793-bbb0-def71590591f_1158x766.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:766,&quot;width&quot;:1158,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:68573,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://raahibhushan.substack.com/i/169917633?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02b85fe1-7b9b-4793-bbb0-def71590591f_1158x766.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!67PD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02b85fe1-7b9b-4793-bbb0-def71590591f_1158x766.png 424w, https://substackcdn.com/image/fetch/$s_!67PD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02b85fe1-7b9b-4793-bbb0-def71590591f_1158x766.png 848w, https://substackcdn.com/image/fetch/$s_!67PD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02b85fe1-7b9b-4793-bbb0-def71590591f_1158x766.png 1272w, https://substackcdn.com/image/fetch/$s_!67PD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02b85fe1-7b9b-4793-bbb0-def71590591f_1158x766.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h3>2.  VIX stayed sleepy &#128564;</h3><p>Vix fell steadily from 1st Jul (13) to a low of 10 on 24th Jul, after which it spiked to 12 due to fall after 24th. This pointed out people were expecting breaking of 25000 would be difficult which did happen in the last week of Jul. </p><p></p><h3>3. &#128293; 30-day win streak hit &#8212; eyes now on 50 &#128064;</h3><p>I have completed 30 days of consecutive streak which is still active. I am praying to reach to 50 this time. Lets see what is there in the store for me. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21qp3P%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F5a45b5b5-7703-48a4-a605-a614a048c9a2_788x297.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qp3P!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a45b5b5-7703-48a4-a605-a614a048c9a2_788x297.png 424w, https://substackcdn.com/image/fetch/$s_!qp3P!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a45b5b5-7703-48a4-a605-a614a048c9a2_788x297.png 848w, https://substackcdn.com/image/fetch/$s_!qp3P!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a45b5b5-7703-48a4-a605-a614a048c9a2_788x297.png 1272w, https://substackcdn.com/image/fetch/$s_!qp3P!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a45b5b5-7703-48a4-a605-a614a048c9a2_788x297.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21qp3P%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F5a45b5b5-7703-48a4-a605-a614a048c9a2_788x297.png" width="724" height="272.8781725888325" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5a45b5b5-7703-48a4-a605-a614a048c9a2_788x297.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:297,&quot;width&quot;:788,&quot;resizeWidth&quot;:724,&quot;bytes&quot;:27231,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://raahibhushan.substack.com/i/169917633?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70e427f2-e393-4387-8b9f-f561d867726b_1137x297.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qp3P!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a45b5b5-7703-48a4-a605-a614a048c9a2_788x297.png 424w, https://substackcdn.com/image/fetch/$s_!qp3P!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a45b5b5-7703-48a4-a605-a614a048c9a2_788x297.png 848w, https://substackcdn.com/image/fetch/$s_!qp3P!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a45b5b5-7703-48a4-a605-a614a048c9a2_788x297.png 1272w, https://substackcdn.com/image/fetch/$s_!qp3P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a45b5b5-7703-48a4-a605-a614a048c9a2_788x297.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>4. &#129504; Survivor Algo officially open-sourced </h3><p>With the help of <strong><a href="iframe.php?url=https%3A%2F%2Fwww.sambaths.com%2F">Sambath</a> </strong>(his <a href="iframe.php?url=https%3A%2F%2Fx.com%2Fsambath__s">X Profile</a>) we have been able to ope source the Survivor Algo (1st in the list).</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;6f24f600-803d-491a-9c81-547e9649821f&quot;,&quot;caption&quot;:&quot;For the longest time, I&#8217;ve wanted to open-source the trading algos I've built over last 18 months. These algos have evolved with a lot of personal tinkering, experimentation, and hard-earned lessons from the Indian markets.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;&#128640; Survivor Algo Goes Open Source&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:143422699,&quot;name&quot;:&quot;Raahi Bhushan&quot;,&quot;bio&quot;:&quot;Experiencing life &quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c4c3e734-da4c-4bc6-bd46-762b31196016_1024x1024.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-07-29T08:30:25.572Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/40c74d1c-aac7-4ff3-91b4-d1a9d30fb5d5_1024x533.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://raahibhushan.substack.com/p/survivor-algo-goes-open-source&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:169533128,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:10,&quot;comment_count&quot;:13,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;Raahi Bhushan, Lessons Learned while Trading&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!JVfK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe75f0d15-64af-4150-8cd1-26eb48ab0ac3_1024x1024.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/p/july-update?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Raahi this post! Please do share it in your community so that it reaches a wider audience.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/p/july-update?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fraahibhushan.substack.com%2Fp%2Fjuly-update%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p></div><div><hr></div><h3>5. &#128233; What would you like to read more about?</h3><p>I&#8217;m always looking to share things that are useful, actionable, or thought-provoking. If there&#8217;s something specific you&#8217;d like me to write more about just leave a comment. I&#8217;d love to hear from you and add more posts on this substack with your input.</p><p></p><p>Do share what you found interesting in July and what worked for you and what did not. Looking forward to hearing from you.</p>]]></content:encoded></item><item><title><![CDATA[My Trading Style and how it's Different]]></title><description><![CDATA[Rethinking trading through a unified position book instead of multiple rigid strategies]]></description><link>https://raahibhushan.substack.com/p/my-trading-style-and-how-its-different</link><guid isPermaLink="false">https://raahibhushan.substack.com/p/my-trading-style-and-how-its-different</guid><dc:creator><![CDATA[Raahi Bhushan]]></dc:creator><pubDate>Fri, 01 Aug 2025 05:14:23 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc51fd9f-73b2-415a-8e30-0c348701109a_2816x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><h2>&#129504; Why I Don&#8217;t Use Strict Exit Criteria in My Trades</h2><p>When I first started writing about how I trade, one question came up <em>a lot</em> &#8212;<br><strong>&#8220;What&#8217;s your exit criteria?&#8221;</strong><br>Truth is&#8230; I don&#8217;t have one in the traditional sense.</p><div><hr></div><h3>&#129513; How Most Traders Think</h3><p>Over time, while interacting with readers and fellow traders, I noticed a common pattern:<br>Most traders think in <strong>strategies</strong> &#8212; each with clear entry and exit rules.</p><p>They run multiple strategies at once, each adjusted and optimized on its own.<br>Makes sense. It&#8217;s clean, it&#8217;s structured, it&#8217;s easy to track.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading this post! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3>&#129504; How I Think About It</h3><p>I do things a bit differently.<br>Rather than seeing trades as multiple separate strategies, I look at <strong>all my open positions as one single evolving strategy</strong>.</p><p>So instead of optimizing each strategy on its own, I adjust my <strong>entire position book as a whole</strong>, trying to get the best out of the <em>combined</em> state of my trades.</p><div><hr></div><h3>&#127917; The Pros and Cons</h3><p>Doing this gives me the <strong>freedom to hold positions longer</strong> and benefit from <strong>theta decay</strong>.<br>But &#8212; and it&#8217;s a big one &#8212; it also removes the clarity and structure of predefined exits.<br>It makes the whole thing&#8230; messier.</p><p>Yet, it fits my personality. I like the fluidity. I like adapting dynamically.<br>And that&#8217;s why none of the algos I&#8217;ve built have strict exit criteria either.<br>They operate on this same philosophy.</p><div><hr></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/p/my-trading-style-and-how-its-different?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading ! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/p/my-trading-style-and-how-its-different?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fraahibhushan.substack.com%2Fp%2Fmy-trading-style-and-how-its-different%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p></div><div><hr></div><h3>&#129300; Will It Work Long-Term?</h3><p>That&#8217;s still an open question.<br>It works for me right now.<br>But whether this style survives over the long run &#8212; we&#8217;ll see.</p><div><hr></div><h3>&#9881;&#65039; Adjustments of Option Positions!</h3><p>I have certain thoughts on adjusting positions when I see all the open positions as ongoing strategy. You can read about it in detail here - </p><blockquote><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;535257ce-c5bb-457d-b6fd-350175b96e18&quot;,&quot;caption&quot;:&quot;Hey everyone,&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;md&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Adjustments of Option Positions&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:143422699,&quot;name&quot;:&quot;Raahi Bhushan&quot;,&quot;bio&quot;:&quot;Experiencing life &quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c4c3e734-da4c-4bc6-bd46-762b31196016_1024x1024.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-04-03T09:09:38.688Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/14d9f51a-8e5d-4bf0-88bf-f4d34e771dd5_1024x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://raahibhushan.substack.com/p/adjustments-of-option-positions&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:160482676,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:27,&quot;comment_count&quot;:18,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;Raahi Bhushan, Lessons Learned while Trading&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!JVfK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe75f0d15-64af-4150-8cd1-26eb48ab0ac3_1024x1024.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div></blockquote><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://x.com/intent/follow?region=follow_link&amp;screen_name=raahi_bhushan&quot;,&quot;text&quot;:&quot;Connect with me on X&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="iframe.php?url=https%3A%2F%2Fx.com%2Fintent%2Ffollow%3Fregion%3Dfollow_link%26amp%3Bscreen_name%3Draahi_bhushan"><span>Connect with me on X</span></a></p><div><hr></div><h3>&#128172; What Do You Think?</h3><ul><li><p>Do you believe in having strict exit rules?</p></li><li><p>Or do you prefer a more dynamic approach like this?</p></li><li><p>Would you ever consider merging your trades into a single &#8220;position book&#8221; view?</p></li></ul><p>Hit <em>reply</em> or leave a comment &#8212; I&#8217;d love to hear how <em>you</em> approach exits in your trades.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading this post! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div>]]></content:encoded></item><item><title><![CDATA[🚀 Survivor Algo Goes Open Source]]></title><description><![CDATA[After a long wait its finally here!]]></description><link>https://raahibhushan.substack.com/p/survivor-algo-goes-open-source</link><guid isPermaLink="false">https://raahibhushan.substack.com/p/survivor-algo-goes-open-source</guid><dc:creator><![CDATA[Raahi Bhushan]]></dc:creator><pubDate>Tue, 29 Jul 2025 08:30:25 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40c74d1c-aac7-4ff3-91b4-d1a9d30fb5d5_1024x533.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>For the longest time, I&#8217;ve wanted to open-source the trading algos I've built over last 18 months. These algos have evolved with a lot of personal tinkering, experimentation, and hard-earned lessons from the Indian markets.</p><p>With the generous help of <strong><a href="iframe.php?url=https%3A%2F%2Fwww.sambaths.com%2F">Sambath</a> </strong>(his <a href="iframe.php?url=https%3A%2F%2Fx.com%2Fsambath__s">X Profile</a>), who took the lead in cleaning, structuring, and making the code more accessible. He also added Fyers as a broker along with Zerodha. I&#8217;m thrilled to finally open-source the <strong>first</strong> of many algos that power my trading.</p><p>&#128279; <strong>GitHub Repository:</strong><br>&#128073; <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2FRaahi-Bhushan%2Ftrading-algo">Raahi-Bhushan/trading-algo</a></p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading this post! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><p></p><blockquote><p><strong>Disclaimer:</strong><br><em>This algorithm is provided for educational and informational purposes only. Trading in financial markets involves substantial risk, and you may lose all or more than your initial investment. By using this algorithm, you acknowledge that all trading decisions are made at your own risk and discretion. The creators of this algorithm assume <strong>no liability or responsibility</strong> for any financial losses or damages incurred through its use. Always do your own research and consult with a qualified financial advisor before trading.</em></p></blockquote><p></p><h3>&#129504; What's in this Algo?</h3><p>You can read a detailed post on the algo </p><p></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;5edac765-289a-47fb-9dc9-e0b879b65a65&quot;,&quot;caption&quot;:&quot;Every mean reversion trader lives by a single, powerful creed: \&quot;What goes up, must come down.\&quot; We believe that markets, like a stretched rubber band, can only move so far from their average before snapping back. For the most part, this principle holds true. But sometimes, the market doesn't just stretch; it breaks free entirely.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The Survivor: An Algorithm for When Mean Reversion Fails&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:143422699,&quot;name&quot;:&quot;Raahi Bhushan&quot;,&quot;bio&quot;:&quot;Experiencing life &quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c4c3e734-da4c-4bc6-bd46-762b31196016_1024x1024.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-07-20T10:56:34.811Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e40dc2ad-8e89-4856-abf0-3f8a730efaf0_2816x1536.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://raahibhushan.substack.com/p/the-survivor-an-algorithm-for-when&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:168766863,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:15,&quot;comment_count&quot;:20,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;Raahi Bhushan, Lessons Learned while Trading&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!JVfK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe75f0d15-64af-4150-8cd1-26eb48ab0ac3_1024x1024.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p></p><p>This particular strategy is designed around <strong>directional breakout confirmation</strong>. It uses:</p><ul><li><p>VWAP, ATR, and MAs for entry signals</p></li><li><p>Smart filters to reduce noise</p></li><li><p>Clean order management with execution logic for Zerodha and Fyers (via kiteconnect)</p></li><li><p>Configurable risk parameters</p></li></ul><p>We&#8217;ve tried to keep it <strong>plug-and-play</strong> for anyone who wants to experiment or build on top.</p><blockquote><p>&#128279; <strong>GitHub Repository:</strong><br>&#128073; <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2FRaahi-Bhushan%2Ftrading-algo">Raahi-Bhushan/trading-algo</a></p></blockquote><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://x.com/intent/follow?region=follow_link&amp;screen_name=raahi_bhushan&quot;,&quot;text&quot;:&quot;Connect with me on X&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="iframe.php?url=https%3A%2F%2Fx.com%2Fintent%2Ffollow%3Fregion%3Dfollow_link%26amp%3Bscreen_name%3Draahi_bhushan"><span>Connect with me on X</span></a></p><p>This is just the <strong>beginning</strong>. Many more algos will follow &#8212; cleaned, documented, and designed to help other coders, traders, and curious minds.</p><p>Again huge thanks again to <strong><a href="iframe.php?url=https%3A%2F%2Fwww.sambaths.com%2F">Sambath</a></strong> (<a href="iframe.php?url=https%3A%2F%2Fx.com%2Fsambath__s">X Profile</a>) for making this happen. He is super strong in coding and building things.</p><p>&#128226; If you want to get updates as more algos go live or read about the thought process behind them, consider subscribing!</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading this Post! Subscribe for free to receive new posts directly in your email.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><p>Incase you find any issues running or understanding the code, do comment here or connect with <a href="iframe.php?url=https%3A%2F%2Fx.com%2Fintent%2Ffollow%3Fregion%3Dfollow_link%26amp%3Bscreen_name%3Draahi_bhushan">me</a> or <a href="iframe.php?url=https%3A%2F%2Fx.com%2Fsambath__s">Sambath</a> on X.</p>]]></content:encoded></item><item><title><![CDATA[The Survivor: An Algorithm for When Mean Reversion Fails]]></title><description><![CDATA[Born from the Ashes of the 2023-24 Bull Run, This Algo Changed My Trading]]></description><link>https://raahibhushan.substack.com/p/the-survivor-an-algorithm-for-when</link><guid isPermaLink="false">https://raahibhushan.substack.com/p/the-survivor-an-algorithm-for-when</guid><dc:creator><![CDATA[Raahi Bhushan]]></dc:creator><pubDate>Sun, 20 Jul 2025 10:56:34 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe40dc2ad-8e89-4856-abf0-3f8a730efaf0_2816x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Every mean reversion trader lives by a single, powerful creed: "What goes up, must come down." We believe that markets, like a stretched rubber band, can only move so far from their average before snapping back. For the most part, this principle holds true. But sometimes, the market doesn't just stretch; it breaks free entirely.</p><blockquote><p><strong>[Update] - </strong>Have add the exit and take profit section at the end of the post.</p></blockquote><p>I learned this brutal lesson the hard way during the relentless bull market that stormed through 2022 and into early 2024. In just two years, the NIFTY index rocketed up by nearly 70%.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading this Post! Subscribe for free to receive new posts directly in your email.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%216qka%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fb79a1077-9b52-4bc7-b709-0fc2c3327a6c_2171x828.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6qka!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb79a1077-9b52-4bc7-b709-0fc2c3327a6c_2171x828.png 424w, https://substackcdn.com/image/fetch/$s_!6qka!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb79a1077-9b52-4bc7-b709-0fc2c3327a6c_2171x828.png 848w, https://substackcdn.com/image/fetch/$s_!6qka!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb79a1077-9b52-4bc7-b709-0fc2c3327a6c_2171x828.png 1272w, https://substackcdn.com/image/fetch/$s_!6qka!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb79a1077-9b52-4bc7-b709-0fc2c3327a6c_2171x828.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%216qka%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fb79a1077-9b52-4bc7-b709-0fc2c3327a6c_2171x828.png" width="1456" height="555" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b79a1077-9b52-4bc7-b709-0fc2c3327a6c_2171x828.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:555,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:136397,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://raahibhushan.substack.com/i/168766863?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb79a1077-9b52-4bc7-b709-0fc2c3327a6c_2171x828.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6qka!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb79a1077-9b52-4bc7-b709-0fc2c3327a6c_2171x828.png 424w, https://substackcdn.com/image/fetch/$s_!6qka!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb79a1077-9b52-4bc7-b709-0fc2c3327a6c_2171x828.png 848w, https://substackcdn.com/image/fetch/$s_!6qka!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb79a1077-9b52-4bc7-b709-0fc2c3327a6c_2171x828.png 1272w, https://substackcdn.com/image/fetch/$s_!6qka!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb79a1077-9b52-4bc7-b709-0fc2c3327a6c_2171x828.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>My conviction was firm. After the massive recovery from the COVID crash to the peak in October 2021, I was sure another explosive move was impossible. Inflation was soaring, and interest rates were at multi-year highs&#8212;historically, these are headwinds for the market, not rocket fuel.</p><p>But the market doesn't care about our convictions. It does what it wants. And in this case, it wanted to go up, and up, and up.</p><p>December 2023 was my breaking point. The relentless climb of the NIFTY shattered my positions and dealt me a significant financial loss. At the time, I was still new to full-time trading, and the blow was humbling. Lying in the wreckage of my Option positions, I faced a critical choice: abandon my strategy, or find a way to make it smarter, stronger, and more resilient.</p><p>That's when the idea for the <strong>Survivor Algo</strong> was born. I realized I needed a mechanism&#8212;a saviour&#8212;that could protect me not when the market behaved as expected, but when it entered a state of wild, sustained momentum.</p><p>The logic behind the Survivor Algo is deceptively simple. It doesn't fight the trend; it adapts to it in a controlled, systematic way. Here&#8217;s the core concept:</p><p>Imagine the market breaks through a critical resistance level. Instead of betting on it to reverse, the Survivor Algo activates. It then follows a simple rule:</p><blockquote><p>For every <code>$n$</code><strong> points</strong> the index moves <em>further</em> into the trend, the algorithm automatically sells a new option (a Put in an uptrend, or a Call in a downtrend) at a strike price <code>$y$</code><strong> points</strong> away from the current market price.</p></blockquote><p>In this system, <code>$n$</code><strong> and </strong><code>$y$</code> are the key variables you control.</p><ul><li><p><code>$n$</code> = The trigger. How many points of movement before the algo takes action?</p></li><li><p><code>$y$</code> = The safety buffer. How far away from the current price should the new option strike be?</p></li></ul><p>Think of it like a boxer strategically giving ground. Instead of standing still and taking heavy blows (a huge loss), the boxer takes small, calculated steps back, all while continuing to land jabs (selling new options) to stay in the fight. It&#8217;s a dynamic defense system designed to endure the storm and survive to trade another day.</p><p></p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading this Post! Subscribe for free to receive new posts directly in your email.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><p></p><p>It's one thing to talk theory, but another to see it in practice. Here is the actual algo command I ran last Friday, putting the Survivor to work in the live market:</p><pre><code><code>python3.8 place_order_at_nifty.py NIFTY25724 300:300 NFO 15:15 90:90 300:300 25140:24928 &lt;REQUEST_TOKEN&gt;

1. Here NIFTY25724 is the next week NF Expiry (24th Jul Expiry Prefix)
2. 300:300 variable tells that PE and CE will be sold which are 300 points away from ATM. So if NIFTY is at 25100 it will sell CE of 25400. This reduces as we reach closer to the expiry. 
3. 15:15 variable tells that with every 15 points move it will execute 1 order. 
4. 90:90 is another variable which helps in retracing the thresholds, we will discuss about this later. 
5. 300:300 this variable tells how much to sell in every execution. Here it is NIFTY and will sell 300 (4 lots) in a single transaction. 
6. 25140:24928 This is the support and resistances defined, above and below which the trade will execute. 

- Case #1
1. If market moves 15 point above 25140 a PE will be sold 300 points away from the ATM. Which is if NIFTY reaches 25155, 24850PE will be triggered of 300 qty. 
2. If the market further moves by 15 points which is if it reaches 25170 another 24850PE will be sold 300 qty. 
3. On another 15 point move 25185, 24900 PE will be sold instead of 24850PE as 24900PE is closer to 25185 points taking a 300 points diff. 

- Case #2
1. Similarly if market moves 15 points below 24928 (24913) a CE will be sold 300 points away (25200CE) from ATM which in this case.
2. If it moves another 15 points lower (24898) another 25200CE of 300 qty will be sold. 

I hope the sample execution is clear. I have added AI explanation of the code through code assist at the bottom of the post. It has more nuances related to the algo.</code></code></pre><p>This algo ensures that if there is an ongoing trend I am not stuck doing nothing instead follow the trend to save my a** from huge losses. This algo has proven to be really helpful incase of any large movements as it executes fast. </p><p><strong>[Update] - </strong>After some people asked me about the exit and take profit, here are my insights on it. </p><ol><li><p>As I run this algo only on Mon, Tue and Wed and only to adjust current positions there is a scope of 100-150 points of back trace without causing loss. As I constantly adjust my positions so I do not have a stop loss or a take profit thing. Bure here are my thoughts on it. </p></li><li><p>Its a good idea to exit from these stand alone position if - </p><ol><li><p>The positions have gone into ITM and are in loss. </p></li><li><p>If the positions are in loss of ~30-50% (This varies depending on when the trade was taken). If it is on the same day 50% is fine, if not this should be reduced to 30%. </p></li></ol></li><li><p>For take profit if the price has gone below Rs. 20/- and the profit is more than 50%. It&#8217;s a good idea to close positions and start taking profits. </p></li></ol><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://x.com/intent/follow?region=follow_link&amp;screen_name=raahi_bhushan&quot;,&quot;text&quot;:&quot;Connect with me on X&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="iframe.php?url=https%3A%2F%2Fx.com%2Fintent%2Ffollow%3Fregion%3Dfollow_link%26amp%3Bscreen_name%3Draahi_bhushan"><span>Connect with me on X</span></a></p><p>I also have a  of variations of the same code which ensure the margin requirement is lower by doing a spread instead of a naked sell. When the movement is huge the margin requirements sometimes passes the margin available. </p><blockquote><p>Difference between <strong>place_order_at_nifty_with_buy_auto.py</strong> and <strong>place_order_at_nifty.py</strong> scripts - (AI generated Text)</p><p>While both scripts are built on the same foundation of selling Nifty options in a trending market, they represent two different levels of strategic complexity. The original script is a pure seller, while the _with_buy_auto version is a more sophisticated trader that actively manages its positions.</p><p></p><h4><strong>1. Core Strategy: Selling vs. Selling + Managing</strong></h4><p></p><p>place_order_at_nifty.py (The Pure Seller): This script's logic is one-way. It only places SELL orders for Out-of-the-Money (OTM) options when the Nifty index shows a strong trend. It never buys options. Its entire goal is to collect premium, assuming the trend will continue and the sold options will lose value or expire worthless. It manages risk simply by resetting its trigger levels if the market reverses.</p><p>place_order_at_nifty_with_buy_auto.py (The Position Manager): This is a more advanced version that includes active position management through automated buying. While its primary action is still selling options, it adds a crucial layer of logic to automatically BUY options for two main reasons:</p><p>Closing Positions: To buy back a previously sold option, either to lock in a profit (if the premium has decayed significantly) or to cut a loss (if the market has moved against the position).</p><p><strong>Hedging</strong>: To buy a cheaper option to offset the risk of a newly sold option, creating a spread. And to save on the margin requirement.</p><p></p><h4><strong>2. The Decisive Functional Upgrade: find_nifty_symbol_auto_buy</strong></h4><p></p><p>The critical difference lies in the use of the <strong>find_nifty_symbol_auto_buy</strong> function from common_lib.py.</p><p>The original script only uses find_nifty_symbol_from_gap to locate an appropriate option to sell.</p><p>The _with_buy_auto script uses this same function to sell, but it also leverages find_nifty_symbol_auto_buy to make intelligent decisions about buying.</p><p>This new function doesn't just find an option to buy; it intelligently compares the price of a new potential buy with the price of an existing sold position. It essentially asks: "Is it better to buy a new option to hedge, or is it more cost-effective to simply buy back (close) the old sold position?"</p><p></p><h4><strong>3. A Practical Example</strong></h4><p></p><p>Let's see how they behave in the same scenario.</p><p>Scenario: The bot has already sold a Nifty PE option at a strike of 22000. The market continues to rally.</p><p><strong>place_order_at_nifty.py's</strong> </p><p><strong>Action:</strong></p><ol><li><p>Nifty rallies another 20 points, triggering a new trade.</p></li><li><p>It uses find_nifty_symbol_from_gap to find a new PE option to sell, perhaps at a 22100 strike.</p></li><li><p>It places the new SELL order. It now holds two open short PE positions (at 22000 and 22100). It does not touch the old position.</p></li></ol><p><strong>place_order_at_nifty_with_buy_auto.py's</strong> </p><p>Action:</p><ol><li><p>Nifty rallies another 20 points, triggering a new trade.</p></li><li><p>Before selling the new 22100 PE, it uses find_nifty_symbol_auto_buy to analyze the situation.</p></li><li><p>It checks the premium of the old 22000 PE it sold. Let's say the premium has decayed and is now very low (e.g., under &#8377;20).</p></li><li><p>The logic inside find_nifty_symbol_auto_buy determines that it's a good time to lock in the profit on the old position.</p></li><li><p>It first places a BUY order to close the 22000 PE position, and then places the new SELL order for the 22100 PE.</p></li></ol><p>The bot ends up with only one open short position, having actively managed and closed the previous one.</p></blockquote><p></p><div><hr></div><h3>AI Explanation Seeing the Code</h3><p></p><blockquote><p>This Python script is an automated trading bot designed to work with the Zerodha Kite Connect API. Its core strategy is to sell Nifty options (both Puts and Calls) based on significant price movements in the Nifty 50 index. It's built for a trending market, aiming to profit from the decay of Out-of-the-Money (OTM) option premiums as the market moves decisively in one direction.</p><p>Let's break down its execution step-by-step.</p><p></p><h4><strong>1. Initialization and Configuration</strong></h4><p></p><p>When you run the script from your terminal, it first needs a set of instructions. These are provided as command-line arguments.</p><pre><code>python3 place_order_at_nifty.py &lt;SYMBOL_INITIALS&gt; &lt;PE_SYMBOL_GAP&gt;:&lt;CE_SYMBOL_GAP&gt; &lt;EXCHANGE&gt; &lt;PE_GAP&gt;:&lt;CE_GAP&gt; &lt;PE_RESET_GAP&gt;:&lt;CE_RESET_GAP&gt; &lt;PE_QTY&gt;:&lt;CE_QTY&gt; &lt;PE_START&gt;:&lt;CE_START&gt; &lt;REQUEST_TOKEN&gt;</code></pre><p>Here&#8217;s what each argument means:</p><div id="datawrapper-iframe" class="datawrapper-wrap outer" data-attrs="{&quot;url&quot;:&quot;https://datawrapper.dwcdn.net/5n8x8/1/&quot;,&quot;thumbnail_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/54d90919-4bfe-44dc-85c8-1f331d6dd1b2_1260x660.png&quot;,&quot;thumbnail_url_full&quot;:&quot;&quot;,&quot;height&quot;:1012,&quot;title&quot;:&quot;Command Argument Details&quot;,&quot;description&quot;:&quot;&quot;,&quot;belowTheFold&quot;:true}" data-component-name="DatawrapperToDOM"><iframe id="iframe-datawrapper" class="datawrapper-iframe" src="iframe.php?url=https%3A%2F%2Fdatawrapper.dwcdn.net%2F5n8x8%2F1%2F" width="730" height="1012" frameborder="0" scrolling="no" loading="lazy"></iframe><script type="text/javascript">!function(){"use strict";window.addEventListener("message",(function(e){if(void 0!==e.data["datawrapper-height"]){var t=document.querySelectorAll("iframe");for(var a in e.data["datawrapper-height"])for(var r=0;r<t.length;r++){if(t[r].contentWindow===e.source)t[r].style.height=e.data["datawrapper-height"][a]+"px"}}}))}();</script></div><p></p><p>After parsing these arguments, the script:</p><p><strong>Connects to the API:</strong> It uses the initilise_basic function from common_lib.py to log into the Kite API and start a WebSocket connection for receiving live data.</p><p><strong>Sets Initial Trigger Levels:</strong> It establishes the starting "lines in the sand" for Nifty. These are stored in nifty_pe_last_value and nifty_ce_last_value. These are the price levels the bot will monitor.</p><p><strong>Fetches Instruments:</strong> It calls get_all_fut_opt_instruments() to get a complete list of all available Nifty options, which it will need later to find the right contract to sell.</p><p><strong>Subscribes to Nifty Ticks:</strong> The script subscribes to the live price feed for the Nifty 50 index. The on_ticks_update function is designated as the handler that will be executed every time a new Nifty price is received.</p><p></p><h4>2. The Core Trading Logic: on_ticks_update</h4><p></p><p>This function is the heart of the bot. It runs every time the Nifty 50 index price changes.</p><p>The Strategy:</p><p>The bot maintains two key price levels:</p><p><strong>nifty_pe_last_value</strong>: The upper price boundary. If Nifty crosses this, it's a signal to sell a PE option.</p><p><strong>nifty_ce_last_value</strong>: The lower price boundary. If Nifty drops below this, it's a signal to sell a CE option.</p><p><strong>Scenario 1:</strong> Nifty is Trending Up (Selling a Put Option)</p><ol><li><p>The function checks if the nifty_current_val has risen above nifty_pe_last_value.</p></li><li><p>If the upward move (nifty_current_val - nifty_pe_last_value) is greater than the configured pe_gap (e.g., 20 points), a trigger occurs.</p></li><li><p>Find the Right Option: The bot uses find_nifty_symbol_from_gap to locate a PE option contract with a strike price that is approximately pe_symbol_gap (e.g., 200) points below the current Nifty price.</p></li><li><p>Premium Check: It ensures the premium of this option is above a minimum threshold (min_price_to_sell = 15). If the premium is too low, it searches for a slightly closer strike price until it finds one with a decent premium. This is a practical step to avoid selling worthless options.</p></li><li><p>Place Order: It places a market SELL order for the selected PE option.</p></li><li><p>Update Trigger Level: The nifty_pe_last_value is updated to the new, higher Nifty price level, setting a new line in the sand for the next potential trade.</p></li></ol><p><strong>Scenario 2:</strong> Nifty is Trending Down (Selling a Call Option)</p><p>This is the mirror image of the first scenario.</p><ol><li><p>The function checks if nifty_current_val has dropped below nifty_ce_last_value.</p></li><li><p>If the downward move (nifty_ce_last_value - nifty_current_val) is greater than the ce_gap (e.g., 30 points), a trigger occurs.</p></li><li><p>Find and Place Order: It finds a suitable CE option (e.g., 250 points above Nifty), checks its premium, and places a market SELL order.</p></li><li><p>Update Trigger Level: The nifty_ce_last_value is updated to the new, lower Nifty price.</p></li><li><p>Adapting to Market Reversals (The Reset Logic)</p></li></ol><p>Markets don't move in one direction forever. What if Nifty rises, the bot sells a PE, and then the market starts to fall? The nifty_pe_last_value is now far above the current price. The reset logic handles this:</p><p>If a PE has been sold (pe_reset_gap_flag is set) and the Nifty price subsequently falls by more than the pe_reset_gap (e.g., 30 points), the bot resets nifty_pe_last_value to a new, lower level closer to the current market price.</p><p>This allows the bot to re-engage with the market and be ready to sell another PE if the uptrend resumes, rather than waiting for the price to climb all the way back to the previous high. The same logic applies symmetrically for CE options.</p><p></p><h4>3. Execution Loop</h4><p></p><p>The script ends with time.sleep(22000), which is over 6 hours. This indicates that the main program thread does very little. All the action happens in the background thread managed by the Kite Ticker WebSocket, which continuously listens for Nifty price updates and triggers the on_ticks_update function.</p><p>In summary, this script automates a directional options selling strategy. It intelligently selects which option to sell based on market direction and pre-configured parameters, and it includes a crucial reset mechanism to adapt to market reversals.</p></blockquote><div><hr></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/p/the-survivor-an-algorithm-for-when?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">If you liked the article, do share it with your friends and family so that they can also benefit from the work. </p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/p/the-survivor-an-algorithm-for-when?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fraahibhushan.substack.com%2Fp%2Fthe-survivor-an-algorithm-for-when%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p></div><div><hr></div><p></p><h3><strong>From Surviving to Thriving</strong></h3><p>The true power of the Survivor Algo shines in the early days of the trading week. It's my frontline defense on Mondays, Tuesdays, and Wednesdays, systematically adjusting my weekly positions whenever NIFTY makes a sudden, drastic move. It&#8217;s designed to prevent a small, unexpected move from turning into a tidal wave that sinks my entire week's strategy.</p><p>And the results speak for themselves. Since integrating this tool into my trading arsenal, the catastrophic losses that once haunted me are a thing of the past. The algorithm has truly lived up to its name, ensuring my capital survives to fight another day.</p><h3><strong>Join the Conversation</strong></h3><p>But the journey of a trader is one of constant learning and evolution. I'm always eager to hear from fellow traders who are navigating these challenging markets.</p><p>What are your thoughts on this approach? Do you use a similar mechanism to protect against powerful trends?</p><p><strong>Drop your insights and questions in the comments below. For a more direct chat, feel free to send me a DM on my <a href="iframe.php?url=https%3A%2F%2Fx.com%2Fintent%2Ffollow%3Fregion%3Dfollow_link%26amp%3Bscreen_name%3Draahi_bhushan">X profile</a> (@raahi_bhushan). Let's learn and grow together.</strong></p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading this Post! Subscribe for free to receive new posts directly in your email.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[My Volume Playbook for Trading NIFTY]]></title><description><![CDATA[Classic Volume, Fixed Volume Profile, Relative Volume]]></description><link>https://raahibhushan.substack.com/p/my-volume-playbook-for-trading-nifty</link><guid isPermaLink="false">https://raahibhushan.substack.com/p/my-volume-playbook-for-trading-nifty</guid><dc:creator><![CDATA[Raahi Bhushan]]></dc:creator><pubDate>Wed, 11 Jun 2025 06:02:15 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc5dc9c6-6501-423e-a848-7445bfdc541f_2048x2048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Technical analysis has always been a bit of a puzzle for me, but I've been diving in headfirst lately. And you know what? I've stumbled upon something that's really changed the game for me: Volume. Turns out, it's the second most important thing to watch, right after price, on any chart.</p><p>But here's the cool part: volume isn't just one thing. It's like a multi-layered story. So, today, I want to share the three different types of volume I've been tracking, and how they've helped me in trading NIFTY.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading this Post! Subscribe for free to receive new posts directly in your email.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><p></p><h4><strong>1. The Classic Volume (Traded Volume)</strong></h4><p>This is the volume we all know and love. It's like the crowd noise at a stadium. When it's loud (high volume), you know the action is intense, and the price is probably moving strongly in a certain direction. Simple, right?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21CqAU%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ffe45e82f-7ef1-429e-bbaa-8123c5193a0c_2437x832.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CqAU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe45e82f-7ef1-429e-bbaa-8123c5193a0c_2437x832.png 424w, https://substackcdn.com/image/fetch/$s_!CqAU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe45e82f-7ef1-429e-bbaa-8123c5193a0c_2437x832.png 848w, https://substackcdn.com/image/fetch/$s_!CqAU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe45e82f-7ef1-429e-bbaa-8123c5193a0c_2437x832.png 1272w, https://substackcdn.com/image/fetch/$s_!CqAU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe45e82f-7ef1-429e-bbaa-8123c5193a0c_2437x832.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21CqAU%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ffe45e82f-7ef1-429e-bbaa-8123c5193a0c_2437x832.png" width="1456" height="497" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fe45e82f-7ef1-429e-bbaa-8123c5193a0c_2437x832.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:497,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:261210,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://raahibhushan.substack.com/i/165525744?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe45e82f-7ef1-429e-bbaa-8123c5193a0c_2437x832.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CqAU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe45e82f-7ef1-429e-bbaa-8123c5193a0c_2437x832.png 424w, https://substackcdn.com/image/fetch/$s_!CqAU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe45e82f-7ef1-429e-bbaa-8123c5193a0c_2437x832.png 848w, https://substackcdn.com/image/fetch/$s_!CqAU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe45e82f-7ef1-429e-bbaa-8123c5193a0c_2437x832.png 1272w, https://substackcdn.com/image/fetch/$s_!CqAU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe45e82f-7ef1-429e-bbaa-8123c5193a0c_2437x832.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Beyond just the traded volume, there's also delivery volume, which is like the fans who stayed until the very end. It's the volume of shares that traders took home overnight. By comparing delivery volume to traded volume, you can get a sense of how committed the traders are.</p><h4><strong>2. The Detective: Fixed Range Volume Profile</strong></h4><p>Imagine a map that shows where the most battles were fought. That's kind of what the Fixed Range Volume Profile does. It shows you, over a longer period (like 15 days), at which price points the most trading happened. These 'battlegrounds' become key support and resistance levels. It's like finding hidden clues on the chart!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21sTGm%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F3f1d10e8-06b7-45e9-bf95-c4f4397723c1_2115x829.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sTGm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f1d10e8-06b7-45e9-bf95-c4f4397723c1_2115x829.png 424w, https://substackcdn.com/image/fetch/$s_!sTGm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f1d10e8-06b7-45e9-bf95-c4f4397723c1_2115x829.png 848w, https://substackcdn.com/image/fetch/$s_!sTGm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f1d10e8-06b7-45e9-bf95-c4f4397723c1_2115x829.png 1272w, https://substackcdn.com/image/fetch/$s_!sTGm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f1d10e8-06b7-45e9-bf95-c4f4397723c1_2115x829.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21sTGm%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F3f1d10e8-06b7-45e9-bf95-c4f4397723c1_2115x829.png" width="1456" height="571" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3f1d10e8-06b7-45e9-bf95-c4f4397723c1_2115x829.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:571,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:216329,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://raahibhushan.substack.com/i/165525744?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f1d10e8-06b7-45e9-bf95-c4f4397723c1_2115x829.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!sTGm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f1d10e8-06b7-45e9-bf95-c4f4397723c1_2115x829.png 424w, https://substackcdn.com/image/fetch/$s_!sTGm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f1d10e8-06b7-45e9-bf95-c4f4397723c1_2115x829.png 848w, https://substackcdn.com/image/fetch/$s_!sTGm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f1d10e8-06b7-45e9-bf95-c4f4397723c1_2115x829.png 1272w, https://substackcdn.com/image/fetch/$s_!sTGm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f1d10e8-06b7-45e9-bf95-c4f4397723c1_2115x829.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Looking at NIFTY, I've noticed certain price ranges where the volume is super high. That tells me those areas are going to be tough to break through, either up or down.</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2jZF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ae89905-ff74-4a48-ab34-ca643a0223fc_261x174.png 424w, https://substackcdn.com/image/fetch/$s_!2jZF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ae89905-ff74-4a48-ab34-ca643a0223fc_261x174.png 848w, https://substackcdn.com/image/fetch/$s_!2jZF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ae89905-ff74-4a48-ab34-ca643a0223fc_261x174.png 1272w, https://substackcdn.com/image/fetch/$s_!2jZF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ae89905-ff74-4a48-ab34-ca643a0223fc_261x174.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%212jZF%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F8ae89905-ff74-4a48-ab34-ca643a0223fc_261x174.png" width="261" height="174" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8ae89905-ff74-4a48-ab34-ca643a0223fc_261x174.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:174,&quot;width&quot;:261,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:11294,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://raahibhushan.substack.com/i/165525744?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ae89905-ff74-4a48-ab34-ca643a0223fc_261x174.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!2jZF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ae89905-ff74-4a48-ab34-ca643a0223fc_261x174.png 424w, https://substackcdn.com/image/fetch/$s_!2jZF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ae89905-ff74-4a48-ab34-ca643a0223fc_261x174.png 848w, https://substackcdn.com/image/fetch/$s_!2jZF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ae89905-ff74-4a48-ab34-ca643a0223fc_261x174.png 1272w, https://substackcdn.com/image/fetch/$s_!2jZF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ae89905-ff74-4a48-ab34-ca643a0223fc_261x174.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><blockquote><p>If you like the post, do share it with your friends. It will help us in reaching out more people and making the community stronger. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/p/my-volume-playbook-for-trading-nifty?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fraahibhushan.substack.com%2Fp%2Fmy-volume-playbook-for-trading-nifty%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p></blockquote><p></p><h4>3. The Spy: Relative Volume (RelVol) </h4><p>Here's where it gets really interesting. Volume isn't constant throughout the day. It tends to spike at the start and end of trading. So, just looking at volume alone can be misleading. That's why I started using the <strong>RelVol</strong> indicator on Trading View.</p><p>RelVol compares today's volume to the volume at the same time over the last few days. It's like having a spy who tells you if the action is unusually hot or cold. This helps me understand:</p><ol><li><p><strong>Overall day's volume:</strong> Is it higher or lower than usual for this time?</p></li><li><p><strong>Recent volume bursts:</strong> Are there sudden spikes in volume compared to the past few days?</p></li></ol><p>This is how the ratio chart look like for 10th Jun day. See how the ratio chart differs from the overall volume chart.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21IvrW%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Faedebcbc-b933-4edd-b6c9-aa0c42a967cc_2443x830.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IvrW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faedebcbc-b933-4edd-b6c9-aa0c42a967cc_2443x830.png 424w, https://substackcdn.com/image/fetch/$s_!IvrW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faedebcbc-b933-4edd-b6c9-aa0c42a967cc_2443x830.png 848w, https://substackcdn.com/image/fetch/$s_!IvrW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faedebcbc-b933-4edd-b6c9-aa0c42a967cc_2443x830.png 1272w, https://substackcdn.com/image/fetch/$s_!IvrW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faedebcbc-b933-4edd-b6c9-aa0c42a967cc_2443x830.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21IvrW%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Faedebcbc-b933-4edd-b6c9-aa0c42a967cc_2443x830.png" width="1456" height="495" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aedebcbc-b933-4edd-b6c9-aa0c42a967cc_2443x830.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:495,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:215777,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://raahibhushan.substack.com/i/165525744?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faedebcbc-b933-4edd-b6c9-aa0c42a967cc_2443x830.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IvrW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faedebcbc-b933-4edd-b6c9-aa0c42a967cc_2443x830.png 424w, https://substackcdn.com/image/fetch/$s_!IvrW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faedebcbc-b933-4edd-b6c9-aa0c42a967cc_2443x830.png 848w, https://substackcdn.com/image/fetch/$s_!IvrW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faedebcbc-b933-4edd-b6c9-aa0c42a967cc_2443x830.png 1272w, https://substackcdn.com/image/fetch/$s_!IvrW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faedebcbc-b933-4edd-b6c9-aa0c42a967cc_2443x830.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The start of the day on 10th was with higher than usual volume, also because of it being an expiry day. This indicator does provide extra in time information on the market and what&#8217;s going on.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://x.com/intent/follow?region=follow_link&amp;screen_name=raahi_bhushan&quot;,&quot;text&quot;:&quot;Connect with me on X&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="iframe.php?url=https%3A%2F%2Fx.com%2Fintent%2Ffollow%3Fregion%3Dfollow_link%26amp%3Bscreen_name%3Draahi_bhushan"><span>Connect with me on X</span></a></p><p><em><strong>Disclaimer:</strong> I'm still on my technical analysis journey, so this is what I've learned so far. It might seem basic to some, but it's been eye-opening for me. I'm eager to learn more!</em></p><h4><strong>Your Turn!</strong></h4><p>What are your favorite ways to track volume? Any tips or insights you can share? I'd absolutely love to hear from you in the comments or feel free to DM me on <a href="iframe.php?url=https%3A%2F%2Fx.com%2Fintent%2Ffollow%3Fregion%3Dfollow_link%26amp%3Bscreen_name%3Draahi_bhushan">X profile</a>. Let's learn together!"</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading this Post! Subscribe for free to receive new posts directly in your email.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div>]]></content:encoded></item><item><title><![CDATA[Gamma Blasts]]></title><description><![CDATA[Unmasking the "Gamma Blasts" (0DTE's Silent Killer)]]></description><link>https://raahibhushan.substack.com/p/gamma-blasts</link><guid isPermaLink="false">https://raahibhushan.substack.com/p/gamma-blasts</guid><dc:creator><![CDATA[Raahi Bhushan]]></dc:creator><pubDate>Thu, 29 May 2025 09:45:25 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc236f3a8-ec06-45c8-9678-d37b64035d60_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Ever felt like the market suddenly went wild, wiping out your options trade in minutes? You're not alone! Welcome to the world of "Gamma Blasts," a sudden, massive market movement that can turn 0-DTE (zero-days-to-expiry) options into a rollercoaster &#8211; and often, an option seller's nightmare.</p><p>I usually play it safe, aiming for steady, consistent returns. But even I can't resist the thrill of short-term expiries. That's where gamma, the unsung hero (or villain!) of options, comes into play. It's the force that amplifies price movements, turning a small market twitch into a 10x or even 20x jump in option prices.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Raahi Substack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><p></p><h3>The Mystery of the Sudden Spike</h3><p>Imagine this: the market's chugging along, and then BAM! A sudden, massive swing of 150-200 points. For option sellers, this can be devastating. But what if these aren't random events? What if they're calculated moves by "big players" to rake in massive profits?</p><p>I believe these spikes are engineered. Think about it: big players buy or sell huge amounts in the cash market, creating a sudden, temporary market shift, especially on expiry day. Their secret weapon? Loading up on "near the money" (ATM) and "slightly out of the money" (OTM) options just before the blast &#8211; sometimes as little as 30 minutes before!</p><h3>Catching the Wave: The Open Interest Clue</h3><p>My hunch led me to examine "Open Interest" (OI) &#8211; the total number of outstanding options contracts. And guess what? Before these sudden market explosions, I noticed a massive surge in OI for ATM and slightly OTM options, sometimes jumping 30% to a whopping 100%!</p><p>This was my "aha!" moment. What if we could use this spike in OI as an early warning system?</p><h3>Enter Google Jules: My AI Co-Pilot</h3><p>To turn this idea into a reality, I challenged Google Jules, my coding AI, to build a tool that could track these crucial OI changes. I wanted a live table, updating every minute, showing the percentage change in OI for ATM and surrounding strikes (2 strikes in-the-money and 2 strikes out-of-the-money, for both calls and puts).</p><p>My instructions to Jules were precise:</p><pre><code><code>Hi Jules, today I am going to test you if you are of any use or not. I am looking at building a code in this repository which does a specific thing.

I want to track the change in OI for ATM and 2 slightly ITM and 2 slightly OTM options both call and put.

I want to create a live table in python which updates every minute. Here are the specific points I want in the code -

2 tables to be created one for Put options and 1 for Call
    1. Each table will have 5 rows and 3 columns
    2. Each row is a strike price which is ATM -2, ATM -1, ATM, ATM +1, ATM +2 strikes
    3. The columns will be 10 mins, 15 mins, 30 mins
    4. Each cell will show the difference in the OI for that particular time and strike price.
    5. You can fetch the OI using historical_data api in kite connect.

You can get the details of the API from this documentation - https://kite.trade/docs/pykiteconnect/v4/</code></code></pre><p>Jules delivered a fantastic, working code! But I pushed further, adding more layers to refine the alert system:</p><pre><code>I want to do 2 more things -

1. Instead of the change in OI I want you to show the change in OI as a % of initial OI.

2. I want to color code the cells. If the change in OI is &gt; 10% in 10 mins, 15% in 15 mins and 25% in 30 mins then the color of the cell is to be updated to Red.

3. Add alert sound if more than 50% of the cells are color coded. </code></pre><p>Here is the final version of the code I have been testing - </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://drive.google.com/file/d/1X1QkPJXkiz9oIS585Cdz4Wd2AErPyMJK/view?usp=drive_link&quot;,&quot;text&quot;:&quot;Download Gamma Blast Detector Code&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fdrive.google.com%2Ffile%2Fd%2F1X1QkPJXkiz9oIS585Cdz4Wd2AErPyMJK%2Fview%3Fusp%3Ddrive_link"><span>Download Gamma Blast Detector Code</span></a></p><p></p><p>The code is still being tested for exact numbers and alert system to configure it properly. Generally if the market movement is normal but OI change is abnormal (huge increase in OI in short span) it does indicate something big is coming. Will keep on posting testing results on this <a href="iframe.php?url=https%3A%2F%2Fx.com%2Fraahi_bhushan%2Fstatus%2F1927236603031793836">X thread</a>. </p><h3>The "Gamma Blast" Detector is Born!</h3><p>The result? A powerful tool that generates two dynamic tables. When you see a sudden surge in OI velocity across multiple strikes &#8211; especially if those cells start flashing red &#8211; it's a strong signal. It suggests big players are accumulating options in massive quantities, hinting that a market push could be just 30-45 minutes away.</p><p>This isn't about predicting the exact direction every time, but it's about getting ahead of the curve. It's about empowering option sellers (and buyers!) with an early warning system to navigate the treacherous, yet exciting, world of 0DTE "Gamma Blasts." </p><p>Incase you have any queries or comments, please do share it here or on my X profile. And don&#8217;t forget to share it with your friends.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/p/gamma-blasts?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">If you are liking my work, do share it among your friends and community! It will help in spreading my knowledge further.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/p/gamma-blasts?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fraahibhushan.substack.com%2Fp%2Fgamma-blasts%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p></div><p></p><p>Stay alert, stay informed, and happy trading!</p><p></p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Raahi Substack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Know Your Greeks (Delta & Theta): Decoding Your Options Positions]]></title><description><![CDATA[What values of greeks are important to analyse current positions]]></description><link>https://raahibhushan.substack.com/p/know-your-greeks-delta-and-theta</link><guid isPermaLink="false">https://raahibhushan.substack.com/p/know-your-greeks-delta-and-theta</guid><dc:creator><![CDATA[Raahi Bhushan]]></dc:creator><pubDate>Thu, 08 May 2025 05:35:06 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe00098ac-41b0-43fe-94ef-8ce5df1d0a27_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Ever been captivated by the elegant dance of numbers that govern options trading? I know I have! The world of "Greeks" can seem complex, but some of them, like our trusty friends Delta and Theta, are surprisingly straightforward. In fact, I've previously shared my deep dive into all things Greeks in my post, &#8220;<a href="iframe.php?url=https%3A%2F%2Fraahibhushan.substack.com%2Fp%2Fgreeks-friends-and-foes">Greeks (Friends and Foes)</a>&#8221;. </p><p>Until recently, my focus was primarily on the overall Theta and Delta of my portfolio, both for the current and next expiry cycles. This gave me a decent snapshot of my overall stance, but it felt like looking at a map without a scale. I was missing crucial information about position sizing.</p><p>While I used these aggregate values to make adjustments, the burning question always lingered: <strong>How aggressive can I be?</strong> When the market nudged my positions, should I sell a modest 0.2 delta, a more assertive 0.3 or 0.5 delta, or even venture in-the-money to sell a higher delta? It felt like guesswork at times!</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading this Post! Subscribe for free to receive new posts directly in your email.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><p><strong>Disclaimer -</strong> This content is only for recommendation purposes. I am myself stuck with some short positions.</p><p></p><h3>Greeks Data </h3><p>Let's take a peek at the data I used to track before &#8211; it gave me a basic overview of my current overall position:</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TeNE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49f427b9-1310-43f7-bf15-4f90829bbaaa_548x103.png 424w, https://substackcdn.com/image/fetch/$s_!TeNE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49f427b9-1310-43f7-bf15-4f90829bbaaa_548x103.png 848w, https://substackcdn.com/image/fetch/$s_!TeNE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49f427b9-1310-43f7-bf15-4f90829bbaaa_548x103.png 1272w, https://substackcdn.com/image/fetch/$s_!TeNE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49f427b9-1310-43f7-bf15-4f90829bbaaa_548x103.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21TeNE%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F49f427b9-1310-43f7-bf15-4f90829bbaaa_548x103.png" width="548" height="103" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/49f427b9-1310-43f7-bf15-4f90829bbaaa_548x103.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:103,&quot;width&quot;:548,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:11378,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://raahibhushan.substack.com/i/163108024?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49f427b9-1310-43f7-bf15-4f90829bbaaa_548x103.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!TeNE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49f427b9-1310-43f7-bf15-4f90829bbaaa_548x103.png 424w, https://substackcdn.com/image/fetch/$s_!TeNE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49f427b9-1310-43f7-bf15-4f90829bbaaa_548x103.png 848w, https://substackcdn.com/image/fetch/$s_!TeNE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49f427b9-1310-43f7-bf15-4f90829bbaaa_548x103.png 1272w, https://substackcdn.com/image/fetch/$s_!TeNE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49f427b9-1310-43f7-bf15-4f90829bbaaa_548x103.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>The CE and PE premium data was primarily for keeping an eye on margin optimization &#8211; something I'll touch upon later.</p><p>Now, after a bit of tinkering with my code, I've added some more granular data that gives me a much clearer picture of my <strong>Current Overall Positions</strong>:</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dZe-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f8271d3-52a2-4d6c-8e7c-ca51d4c1a0ca_537x170.png 424w, https://substackcdn.com/image/fetch/$s_!dZe-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f8271d3-52a2-4d6c-8e7c-ca51d4c1a0ca_537x170.png 848w, https://substackcdn.com/image/fetch/$s_!dZe-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f8271d3-52a2-4d6c-8e7c-ca51d4c1a0ca_537x170.png 1272w, https://substackcdn.com/image/fetch/$s_!dZe-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f8271d3-52a2-4d6c-8e7c-ca51d4c1a0ca_537x170.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21dZe-%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F6f8271d3-52a2-4d6c-8e7c-ca51d4c1a0ca_537x170.png" width="537" height="170" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6f8271d3-52a2-4d6c-8e7c-ca51d4c1a0ca_537x170.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:170,&quot;width&quot;:537,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:17330,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://raahibhushan.substack.com/i/163108024?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f8271d3-52a2-4d6c-8e7c-ca51d4c1a0ca_537x170.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dZe-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f8271d3-52a2-4d6c-8e7c-ca51d4c1a0ca_537x170.png 424w, https://substackcdn.com/image/fetch/$s_!dZe-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f8271d3-52a2-4d6c-8e7c-ca51d4c1a0ca_537x170.png 848w, https://substackcdn.com/image/fetch/$s_!dZe-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f8271d3-52a2-4d6c-8e7c-ca51d4c1a0ca_537x170.png 1272w, https://substackcdn.com/image/fetch/$s_!dZe-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f8271d3-52a2-4d6c-8e7c-ca51d4c1a0ca_537x170.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><p>Ah, this is where things get interesting! The <strong>Average PE Delta</strong> and <strong>Average CE Delta</strong> are game-changers for me. Now I can instantly see my current exposure on the call side and, crucially, what delta I should <em>typically</em> sell on the put side if I want to nudge my overall delta closer to neutral. Similarly, the average theta values give me a daily breakdown of the premium I'm expected to gain from time decay on my call and put options separately. It's like having a mini-forecast for my premium collection!</p><p>Let's look at my position data for the <strong>15th May expiry</strong>:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21fnwd%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F84c92e4f-f915-467e-9625-3c229e2653f4_556x276.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fnwd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84c92e4f-f915-467e-9625-3c229e2653f4_556x276.png 424w, https://substackcdn.com/image/fetch/$s_!fnwd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84c92e4f-f915-467e-9625-3c229e2653f4_556x276.png 848w, https://substackcdn.com/image/fetch/$s_!fnwd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84c92e4f-f915-467e-9625-3c229e2653f4_556x276.png 1272w, https://substackcdn.com/image/fetch/$s_!fnwd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84c92e4f-f915-467e-9625-3c229e2653f4_556x276.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21fnwd%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F84c92e4f-f915-467e-9625-3c229e2653f4_556x276.png" width="556" height="276" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/84c92e4f-f915-467e-9625-3c229e2653f4_556x276.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:276,&quot;width&quot;:556,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:26729,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://raahibhushan.substack.com/i/163108024?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84c92e4f-f915-467e-9625-3c229e2653f4_556x276.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!fnwd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84c92e4f-f915-467e-9625-3c229e2653f4_556x276.png 424w, https://substackcdn.com/image/fetch/$s_!fnwd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84c92e4f-f915-467e-9625-3c229e2653f4_556x276.png 848w, https://substackcdn.com/image/fetch/$s_!fnwd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84c92e4f-f915-467e-9625-3c229e2653f4_556x276.png 1272w, https://substackcdn.com/image/fetch/$s_!fnwd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84c92e4f-f915-467e-9625-3c229e2653f4_556x276.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>(Notice how the closer expiry has a lower overall delta and, thankfully, a lower average delta too! This means that, barring any major market surprises, adjusting these near-expiry positions should be relatively easier.)</strong></p><p><strong>(This data also subtly reveals my current market bias: a slightly bearish short-term view, which I have the flexibility to adjust if the situation demands.)</strong></p><p>And here's the data encompassing <strong>all my positions till the May expiry</strong>:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21UsMG%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fcd7d0a76-cf42-48b0-bbca-eaf64c440c60_575x271.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UsMG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd7d0a76-cf42-48b0-bbca-eaf64c440c60_575x271.png 424w, https://substackcdn.com/image/fetch/$s_!UsMG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd7d0a76-cf42-48b0-bbca-eaf64c440c60_575x271.png 848w, https://substackcdn.com/image/fetch/$s_!UsMG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd7d0a76-cf42-48b0-bbca-eaf64c440c60_575x271.png 1272w, https://substackcdn.com/image/fetch/$s_!UsMG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd7d0a76-cf42-48b0-bbca-eaf64c440c60_575x271.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21UsMG%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fcd7d0a76-cf42-48b0-bbca-eaf64c440c60_575x271.png" width="575" height="271" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cd7d0a76-cf42-48b0-bbca-eaf64c440c60_575x271.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:271,&quot;width&quot;:575,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:28115,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://raahibhushan.substack.com/i/163108024?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd7d0a76-cf42-48b0-bbca-eaf64c440c60_575x271.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!UsMG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd7d0a76-cf42-48b0-bbca-eaf64c440c60_575x271.png 424w, https://substackcdn.com/image/fetch/$s_!UsMG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd7d0a76-cf42-48b0-bbca-eaf64c440c60_575x271.png 848w, https://substackcdn.com/image/fetch/$s_!UsMG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd7d0a76-cf42-48b0-bbca-eaf64c440c60_575x271.png 1272w, https://substackcdn.com/image/fetch/$s_!UsMG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd7d0a76-cf42-48b0-bbca-eaf64c440c60_575x271.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>So, you can see that if I need to adjust my broader May positions, I'd likely be looking at selling put options with a delta in the 0.3 to 0.4 range.</p><p>This specific information wasn't readily available in the tools I was using, so I did what any curious trader would do &#8211; I whipped up a quick Python script to fetch and calculate it for my own positions! </p><h3>Understanding Lots for Margin Optimizations: A Lifesaver Near Expiry</h3><p>We've all been there &#8211; those nail-biting days near expiry when market volatility spikes and margin requirements seem to balloon out of control! To stay in the driver's seat, understanding the current margin rules and the rebates available is absolutely crucial. Here are the key rules I keep in mind and actively use:</p><ol><li><p><strong>Spreads are your friends for margin relief:</strong> If the gap between the Near and Far leg of a Nifty spread is 400 or less, the margin is roughly 25% of what you'd need for selling a naked option. This holds true for calendar spreads as well, except on the day of expiry.</p></li><li><p><strong>Selling both PE and CE offers margin benefits:</strong> When you sell both a put and a call option, the total margin required is typically around 1.2 times the margin for a single naked short position (instead of the usual 2 times). This is a significant saving!</p></li><li><p><strong>Expiry day margin dynamics:</strong> On the day of expiry, the margin for sold positions usually settles around 1.25 times the regular requirement. However, if you have a spread, it can ironically jump to almost 2 times due to the margin benefit pointed out in 1st point. This is something to be very aware of! </p><p></p></li></ol><p>As the theta premium is low near the expiry sometimes to adjust requires a lot of margin thus understanding from where the margin can be freed becomes super critical.</p><p>These 3 rough rules are used to understand what scale can be sold to adjust. </p><p>Here are a couple of tactics I often employ to free up margin when the situation calls for it:</p><ol><li><p><strong>Rolling over positions:</strong> Closing out distant expiry positions and establishing new positions in closer expiries can free up a considerable chunk of margin.</p></li><li><p><strong>Converting naked sells to spreads:</strong> If the number of my naked sold options on one side has grown significantly, converting them into spreads can provide substantial margin relief.</p></li></ol><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading this Post! Subscribe for free to receive new posts directly in your email.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><p><strong>A Little Note:</strong> I understand that these margin optimization techniques might not be universally applicable, especially for those who strictly adhere to a specific trading strategy. However, for someone like me who adjusts positions dynamically based on market movements, these insights can be incredibly valuable in navigating those tricky expiry situations.</p><p>Hope this gives you a clearer and more personal glimpse into how I'm using Delta and Theta in my trading! Please do comment on what you think or if you have any questions. Always happy to chat!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://x.com/raahi_bhushan&quot;,&quot;text&quot;:&quot;Follow on X&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fx.com%2Fraahi_bhushan"><span>Follow on X</span></a></p>]]></content:encoded></item><item><title><![CDATA[Adjustments of Option Positions]]></title><description><![CDATA[Some insights on how I personally adjust my option positions]]></description><link>https://raahibhushan.substack.com/p/adjustments-of-option-positions</link><guid isPermaLink="false">https://raahibhushan.substack.com/p/adjustments-of-option-positions</guid><dc:creator><![CDATA[Raahi Bhushan]]></dc:creator><pubDate>Thu, 03 Apr 2025 09:09:38 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14d9f51a-8e5d-4bf0-88bf-f4d34e771dd5_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey everyone,</p><p>In my previous post, <a href="iframe.php?url=https%3A%2F%2Fraahibhushan.substack.com%2Fp%2Fgreeks-friends-and-foes">"Greeks (Friends and Foes"</a> I talked about my love affair with <strong>Theta</strong> &#8211; the decay that consistently fills my pockets. (Think of it as premium harvesting!). But as any seasoned options trader knows, the market can be a fickle beast, and sudden, sharp moves can quickly turn those sweet premiums into stinging losses.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%212D-Q%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fb730b018-32e3-4182-9c46-160a65a323c0_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2D-Q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb730b018-32e3-4182-9c46-160a65a323c0_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!2D-Q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb730b018-32e3-4182-9c46-160a65a323c0_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!2D-Q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb730b018-32e3-4182-9c46-160a65a323c0_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!2D-Q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb730b018-32e3-4182-9c46-160a65a323c0_1024x1024.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%212D-Q%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fb730b018-32e3-4182-9c46-160a65a323c0_1024x1024.png" width="254" height="254" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b730b018-32e3-4182-9c46-160a65a323c0_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:254,&quot;bytes&quot;:1250514,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://raahibhushan.substack.com/i/160482676?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb730b018-32e3-4182-9c46-160a65a323c0_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!2D-Q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb730b018-32e3-4182-9c46-160a65a323c0_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!2D-Q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb730b018-32e3-4182-9c46-160a65a323c0_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!2D-Q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb730b018-32e3-4182-9c46-160a65a323c0_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!2D-Q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb730b018-32e3-4182-9c46-160a65a323c0_1024x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Over time, I've developed a, three-pronged strategy to mitigate these risks and keep my Theta machine running smoothly. Let's dive in! Firstly, do subscribe to my substack below for updates on new posts.</p><div><hr></div><h3>The Foundation: Strategic Position Creation</h3><p>Before we get to the adjustments, let's lay the groundwork:</p><ol><li><p><strong>Out-of-the-Money (OTM) Focus:</strong> I primarily sell OTM options, typically 200+ points away from the at-the-money (ATM) strike. The exact distance is adjusted based on time to expiry, but my sweet spot is around &#8377;50 premium &#8211; where Theta decay is most potent as shown in  <a href="iframe.php?url=https%3A%2F%2Fraahibhushan.substack.com%2Fp%2Fidentifying-best-strike-price-for">Max Theta Decay</a> in a day analysis.</p></li><li><p><strong>Early Exit:</strong> I close most positions one day before expiry to avoid the dreaded Gamma risk.</p></li><li><p><strong>Weekly Expiries:</strong> I focus on weekly Nifty expiries, entering positions by Friday and reserving Monday, Tuesday, and Wednesday for adjustments.</p></li><li><p><strong>Margin Buffer:</strong> Crucially, I maintain 3x the deployed margin as free capital. This allows for flexible adjustments without margin calls. (e.g., &#8377;1 crore deployed, &#8377;3 crore available).</p></li></ol><div><hr></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/p/adjustments-of-option-positions?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">&#128172; Found this post <strong>interesting </strong>or<strong> insightfu</strong>l? Sharing it helps more people discover it, let&#8217;s spread the word &#128640;</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/p/adjustments-of-option-positions?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fraahibhushan.substack.com%2Fp%2Fadjustments-of-option-positions%3Futm_source%3Dsubstack%26utm_medium%3Demail%26utm_content%3Dshare%26action%3Dshare"><span>Share</span></a></p></div><div><hr></div><h3>The Defense: Adjustments on Monday, Tuesday, and Wednesday</h3><p>When the market throws a curveball (say, a significant upward move in Nifty), here's how I react:</p><ol><li><p>Algo 1 - <a href="iframe.php?url=https%3A%2F%2Fraahibhushan.substack.com%2Fp%2Fthe-survivor-an-algorithm-for-when">Saviour Code  (Delta Hedge)</a> (Detailed Explanation in the <a href="iframe.php?url=https%3A%2F%2Fraahibhushan.substack.com%2Fp%2Fthe-survivor-an-algorithm-for-when">link</a>) - When NIFTY moves higher by x points a PE position is sold which is y points away from the current NIFTY price. Here both x and y are configurable and depends on current delta and days to expiry. </p><ol><li><p>Eg </p><ol><li><p>Monday: For every 20-point Nifty rise, sell a PE 200 points away.</p></li><li><p>Tuesday: For every 15-point Nifty rise, sell a PE 120 points away.</p></li><li><p>Wednesday: For every 10-point Nifty rise, sell a PE 70 points away.</p></li></ol></li><li><p>So on Wed whenever this algo is running and some of my CE sell positions are in ITM, for every 10 points move in NIFTY the algo sells a PE position which is 70 points away from current price.</p></li><li><p>This algorithm sells Put options (PE) to counteract the increasing Delta from my losing Call options (CE).</p></li><li><p>To free up Margin I close far OTM profitable PE positions.</p></li></ol></li><li><p>Algo 2: The <a href="iframe.php?url=https%3A%2F%2Fraahibhushan.substack.com%2Fp%2Fthe-wave-extractor-algo-2">"Wave Extractor Code"</a>  - </p><ol><li><p>This algo capitalizes on intraday market swings.</p></li><li><p>It sells CE on Nifty upticks and buys them back on pullbacks, and vice-versa for PEs.</p></li><li><p>A crucial delta check ensures that trades only reduce the overall position delta, preventing excessive risk.</p></li></ol></li><li><p>Manual adjustments of ITM positions - This is done manually on ITM positions.</p><ol><li><p>Converting Delta to Theta #1 - ITM CE positions are converted into ATM straddles (ATM CE + ATM PE). This transforms Delta risk into Theta profit as expiry approaches. (Implemented progressively: 1/3 on Monday, 1/2 of the remaining on Tuesday).</p></li><li><p>Converting Delta in to Theta #2 - ITM positions are converted into multiple OTM positions of the same type (e.g., 1 ITM CE becomes 2-3 OTM CEs). This reduces Delta and increases Theta.</p></li></ol></li></ol><h3>Margin Handling</h3><ul><li><p>The 3x margin buffer is essential for these adjustments.</p><ul><li><p>Say I have a margin used of 10 Lakh on Friday for next Thu expiry, I will have 30L as a buffer margin for adjustments on Mon, Tue &amp; Wed. </p></li><li><p>On Monday if market moves in opposite direction to me position.- I can use another 10L to adjust. Now the open position will be of 20L and 20L will be buffer margin.</p></li><li><p>On Tuesday if the market still moves in the opposite direction- I will use remaining 20L as margin to adjust positions. This will make total open position margin of 40L and 0 as remaining margin.</p></li><li><p>If required on Wednesday, I buy far OTM options (400+ points away) to free up additional margin. Also I would close profitable positions and use that margin to adjust the positions. And I will close my positions on Wed to save myself from gamma impact.</p></li></ul></li><li><p>This have been proved to be a good strategy over last 12 months and I have been able to successfully adjust my positions without taking huge losses.</p></li></ul><p></p><h3>My Trading Style</h3><p>I have found that my trading style is a bit different than that of other traders due to one very important difference. I think trading through a unified position book instead of multiple rigid strategies. You can read the complete details here - </p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;07a85f33-bb7d-43f8-90f6-cbd26b74342b&quot;,&quot;caption&quot;:&quot;&#129504; Why I Don&#8217;t Use Strict Exit Criteria in My Trades&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;md&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;My Trading Style and how it's Different&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:143422699,&quot;name&quot;:&quot;Raahi Bhushan&quot;,&quot;bio&quot;:&quot;Experiencing life &quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c4c3e734-da4c-4bc6-bd46-762b31196016_1024x1024.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-08-01T05:14:23.146Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cc51fd9f-73b2-415a-8e30-0c348701109a_2816x1536.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://raahibhushan.substack.com/p/my-trading-style-and-how-its-different&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:169807953,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:1,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;Raahi Bhushan, Lessons Learned while Trading&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!JVfK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe75f0d15-64af-4150-8cd1-26eb48ab0ac3_1024x1024.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p></p><p>I'm always eager to learn and improve. Share your thoughts and strategies with me via DM on my <a href="iframe.php?url=https%3A%2F%2Fx.com%2Fintent%2Ffollow%3Fregion%3Dfollow_link%26amp%3Bscreen_name%3Draahi_bhushan">X profile</a>.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://x.com/intent/follow?region=follow_link&amp;screen_name=raahi_bhushan&quot;,&quot;text&quot;:&quot;Connect with me on X&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fx.com%2Fintent%2Ffollow%3Fregion%3Dfollow_link%26amp%3Bscreen_name%3Draahi_bhushan"><span>Connect with me on X</span></a></p><p><strong>Note -</strong> The algos which I have mentioned here are basic idea on how they run, after running them and learning from them, there have been many boundary cases implemented on top of the base idea which make these algos way more robust.</p><p></p><p>I plan to make the algos open source but as the quality of the code is bad, I am hesitant on making it open. The code written is in Python and if someone help me to make it more modular and readable, please DM to me on my <a href="iframe.php?url=https%3A%2F%2Fx.com%2Fraahi_bhushan">X profile</a>.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading this Post! Subscribe for free to receive new posts directly in your email.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><p></p>]]></content:encoded></item><item><title><![CDATA[Historical Data of NIFTY ]]></title><description><![CDATA[3 mins NIFTY data from 01-01-2019 to 14-11-2024]]></description><link>https://raahibhushan.substack.com/p/historical-data-of-nifty</link><guid isPermaLink="false">https://raahibhushan.substack.com/p/historical-data-of-nifty</guid><dc:creator><![CDATA[Raahi Bhushan]]></dc:creator><pubDate>Thu, 21 Nov 2024 10:37:06 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21pDq3%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fe5a0726f-2ea6-499c-bd40-0f6700068eb8_1792x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>One of the areas I struggle with in trading is <strong>technical analysis</strong>, particularly interpreting candlestick patterns to predict market movements. Whenever I&#8217;ve faced losses, people have often pointed out that these events were &#8220;obvious&#8221; when viewed from a technical analysis perspective.</p><p>This realization pushed me to improve my trading approach.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Raahi (Trader) in World of Stock Market! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><p>To address my gap in technical analysis, I decided to create a <strong>pattern-matching tool</strong>. The goal is simple: when I provide 3-minute closing values, the tool identifies similar patterns from the past 5 years. I usually run this analysis around <strong>12:30 PM</strong>, as there are sufficient data points by then for meaningful comparisons.</p><p>If you're interested in staying updated on my work, <strong>follow me on X</strong> for regular insights and updates:</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://x.com/raahi_bhushan&quot;,&quot;text&quot;:&quot;Follow on X&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fx.com%2Fraahi_bhushan"><span>Follow on X</span></a></p><p></p><blockquote><p><strong>Note</strong> - The pattern matching analysis is still very preliminary, I will share the whole thing along with code once it is complete and I have more insights from it.</p></blockquote><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21pDq3%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fe5a0726f-2ea6-499c-bd40-0f6700068eb8_1792x1024.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pDq3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5a0726f-2ea6-499c-bd40-0f6700068eb8_1792x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!pDq3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5a0726f-2ea6-499c-bd40-0f6700068eb8_1792x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!pDq3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5a0726f-2ea6-499c-bd40-0f6700068eb8_1792x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!pDq3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5a0726f-2ea6-499c-bd40-0f6700068eb8_1792x1024.webp 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21pDq3%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fe5a0726f-2ea6-499c-bd40-0f6700068eb8_1792x1024.webp" width="1456" height="832" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e5a0726f-2ea6-499c-bd40-0f6700068eb8_1792x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:832,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:309476,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!pDq3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5a0726f-2ea6-499c-bd40-0f6700068eb8_1792x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!pDq3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5a0726f-2ea6-499c-bd40-0f6700068eb8_1792x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!pDq3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5a0726f-2ea6-499c-bd40-0f6700068eb8_1792x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!pDq3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5a0726f-2ea6-499c-bd40-0f6700068eb8_1792x1024.webp 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Data Collection and Setup</h3><p>To implement this pattern-matching tool, I needed accurate NIFTY data. Thankfully, I was able to extract this data using <strong>KITE Connect&#8217;s historical APIs</strong>. Writing the code and fetching the data took less than two hours, thanks to the excellent APIs developed by the Zerodha team.</p><h3>Sharing the Data</h3><p>I believe this data can benefit many traders, so I&#8217;m sharing it here in two formats:</p><ol><li><p><strong>3-Minute Candlestick Data (OHLC)</strong></p><ul><li><p>File size: <strong>10 MB</strong></p></li><li><p>Format: Each row represents a 3-minute candlestick with OHLC data.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://drive.google.com/file/d/1cGzrHyaz9w3I6N2JuL_yXrgTGsb93IQj/view?usp=drive_link&quot;,&quot;text&quot;:&quot;Download Format 1&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fdrive.google.com%2Ffile%2Fd%2F1cGzrHyaz9w3I6N2JuL_yXrgTGsb93IQj%2Fview%3Fusp%3Ddrive_link"><span>Download Format 1</span></a></p></li></ul></li><li><p><strong>Daily 3-Minute Closing Price Data</strong></p><ul><li><p>File size: <strong>1.6 MB</strong></p></li><li><p>Format: Each row includes daily data with 3-minute closing prices in CSV format.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://drive.google.com/file/d/1-n9Y1Qecqza_FCprfRqjaseyzFK8_y26/view?usp=drive_link&quot;,&quot;text&quot;:&quot;Download Format 2&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fdrive.google.com%2Ffile%2Fd%2F1-n9Y1Qecqza_FCprfRqjaseyzFK8_y26%2Fview%3Fusp%3Ddrive_link"><span>Download Format 2</span></a></p></li></ul></li></ol><p></p><p>I hope this data is helpful to people to improve their trading. </p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Raahi (Trader) in World of Stock Market! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Identifying Best Strike Price for Maximum Theta decay in a day]]></title><description><![CDATA[A mathematical approach to finding the best strike price for maximum decay in a day]]></description><link>https://raahibhushan.substack.com/p/identifying-best-strike-price-for</link><guid isPermaLink="false">https://raahibhushan.substack.com/p/identifying-best-strike-price-for</guid><dc:creator><![CDATA[Raahi Bhushan]]></dc:creator><pubDate>Tue, 19 Nov 2024 08:52:38 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a28b8c9-8fbb-4ba3-8255-d300ea509899_1792x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>As I&#8217;ve shared before in my article <strong><a href="iframe.php?url=https%3A%2F%2Fraahibhushan.substack.com%2Fp%2Fgreeks-friends-and-foes">Greeks (Friends &amp; Foes)</a></strong>, <strong>Theta</strong> is my favorite Greek! One day, I asked myself a key question:<br><strong>Which strike price should I sell to maximize Theta decay while ensuring maximum absolute gain with minimal risk?</strong></p><p>Below is a detailed mathematical approach on finding the answer to this question.</p><p><strong>Note -</strong> To keep things straightforward, this analysis focuses solely on <strong>Theta</strong>, disregarding other Greeks.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Raahi's Substack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><p>I have attached an excel at the bottom of the article. This will allow a DIY implementation of this.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21xtf_%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Faf63638d-5900-47a3-be1b-fa07b269042c_1792x1024.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xtf_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf63638d-5900-47a3-be1b-fa07b269042c_1792x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!xtf_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf63638d-5900-47a3-be1b-fa07b269042c_1792x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!xtf_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf63638d-5900-47a3-be1b-fa07b269042c_1792x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!xtf_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf63638d-5900-47a3-be1b-fa07b269042c_1792x1024.webp 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21xtf_%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Faf63638d-5900-47a3-be1b-fa07b269042c_1792x1024.webp" width="1456" height="832" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/af63638d-5900-47a3-be1b-fa07b269042c_1792x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:832,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:249376,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xtf_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf63638d-5900-47a3-be1b-fa07b269042c_1792x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!xtf_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf63638d-5900-47a3-be1b-fa07b269042c_1792x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!xtf_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf63638d-5900-47a3-be1b-fa07b269042c_1792x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!xtf_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf63638d-5900-47a3-be1b-fa07b269042c_1792x1024.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h4>Key Objective: Maximizing Absolute Returns and Minimizing Risk</h4><h3><strong>Absolute Return Calculation</strong> </h3><p>The goal is to achieve maximum time decay while balancing returns against risks. This is done by analyzing:</p><ol><li><p><strong>Daily Decay</strong> (driven by Theta).</p></li><li><p><strong>Return on Margin</strong> (profit as a percentage of margin money used).</p></li></ol><p>Here&#8217;s the method I use for rough daily return benchmarks:</p><ul><li><p><strong>Next week expiry:</strong> ~0.4% return.</p></li><li><p><strong>Two weeks ahead:</strong> ~0.3% return.</p></li><li><p><strong>Three weeks ahead or more:</strong> ~0.25% return.</p></li></ul><p>Let&#8217;s assume some close rough numbers :</p><ul><li><p><strong>Margin required for 25 lots of NIFTY options:</strong> &#8377;50,000</p></li><li><p><strong>Per-share margin:</strong> &#8377;2,000</p></li></ul><p>To achieve a 0.3% return, we need a daily gain of &#8377;6 per share. Thus, the option price must decay by &#8377;6 within the day to meet this target.</p><h4>Minimising Risk </h4><p>To reduce risk, the chosen strike price should have the <strong>maximum Theta decay as a percentage of the option price</strong>. This ensures better returns with less exposure.</p><div><hr></div><h3>The Harmonic Mean Approach</h3><p>Once we calculate:</p><ol><li><p><strong>Absolute Returns</strong> (based on decay and margin).</p></li><li><p><strong>Risk Reduction</strong> (based on Theta decay as a percentage of price).</p></li></ol><p>I use the <strong>Harmonic Mean</strong> of these two metrics to determine the optimal strike price. The strike price with the highest harmonic mean is the best one to sell.</p><p>One important question here is why Harmonic Mean and not any other mean. I chose harmonic mean because of this property of it - </p><blockquote><p><strong>Emphasizes Small Values</strong>: The harmonic mean is dominated by the smallest values in a dataset. If any value is very small, the harmonic mean decreases significantly.</p></blockquote><div><hr></div><p>You can access the working excel file here - </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://docs.google.com/spreadsheets/d/1yYlqPg_BrEdtoQ5vSkj_M4jp3Mnfk-M_30g_TxtlZuU/edit?usp=sharing&quot;,&quot;text&quot;:&quot;Open Excel&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fdocs.google.com%2Fspreadsheets%2Fd%2F1yYlqPg_BrEdtoQ5vSkj_M4jp3Mnfk-M_30g_TxtlZuU%2Fedit%3Fusp%3Dsharing"><span>Open Excel</span></a></p><h3>Results of Analysis</h3><p>Using the <strong>Option Chain for 5th December Expiry</strong>, exported at <strong>12:58 PM on 19th November</strong>, the analysis identifies <strong>24400CE</strong> at &#8377;52.25 as the optimal strike price to sell.</p><p>Given today&#8217;s significant market movement upward, selling Call options (CE) seems more reasonable.</p><p><strong>Note:</strong> This analysis is for <strong>educational purposes only</strong> and is not a trade recommendation.</p><div><hr></div><h3>How to Perform This Analysis Yourself</h3><p>Here&#8217;s how you can replicate the analysis using data from <strong>Sensibull</strong>:</p><p><strong>Export the Option Chain:</strong></p><ol><li><p>Goto <a href="iframe.php?url=https%3A%2F%2Fweb.sensibull.com%2Foption-chain%3Ftradingsymbol%3DNIFTY%26amp%3Bexpiry%3D2024-12-05">option chain</a> page on sensibull.</p></li><li><p>Select All Column view from bottom left option. </p><ol><li><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21WCjw%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F3d5b3aa4-1912-4bc7-8562-924f62de7cbf_1393x852.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WCjw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d5b3aa4-1912-4bc7-8562-924f62de7cbf_1393x852.png 424w, https://substackcdn.com/image/fetch/$s_!WCjw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d5b3aa4-1912-4bc7-8562-924f62de7cbf_1393x852.png 848w, https://substackcdn.com/image/fetch/$s_!WCjw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d5b3aa4-1912-4bc7-8562-924f62de7cbf_1393x852.png 1272w, https://substackcdn.com/image/fetch/$s_!WCjw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d5b3aa4-1912-4bc7-8562-924f62de7cbf_1393x852.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21WCjw%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F3d5b3aa4-1912-4bc7-8562-924f62de7cbf_1393x852.png" width="1393" height="852" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3d5b3aa4-1912-4bc7-8562-924f62de7cbf_1393x852.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:852,&quot;width&quot;:1393,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:237734,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WCjw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d5b3aa4-1912-4bc7-8562-924f62de7cbf_1393x852.png 424w, https://substackcdn.com/image/fetch/$s_!WCjw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d5b3aa4-1912-4bc7-8562-924f62de7cbf_1393x852.png 848w, https://substackcdn.com/image/fetch/$s_!WCjw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d5b3aa4-1912-4bc7-8562-924f62de7cbf_1393x852.png 1272w, https://substackcdn.com/image/fetch/$s_!WCjw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d5b3aa4-1912-4bc7-8562-924f62de7cbf_1393x852.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p></li></ol></li><li><p>Use the settings button on the right bottom to open Download Option. </p><ol><li><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%211dJy%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fe327c006-e62b-48d2-9518-2001912a9d0d_1384x853.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1dJy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe327c006-e62b-48d2-9518-2001912a9d0d_1384x853.png 424w, https://substackcdn.com/image/fetch/$s_!1dJy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe327c006-e62b-48d2-9518-2001912a9d0d_1384x853.png 848w, https://substackcdn.com/image/fetch/$s_!1dJy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe327c006-e62b-48d2-9518-2001912a9d0d_1384x853.png 1272w, https://substackcdn.com/image/fetch/$s_!1dJy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe327c006-e62b-48d2-9518-2001912a9d0d_1384x853.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%211dJy%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fe327c006-e62b-48d2-9518-2001912a9d0d_1384x853.png" width="1384" height="853" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e327c006-e62b-48d2-9518-2001912a9d0d_1384x853.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:853,&quot;width&quot;:1384,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:236000,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1dJy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe327c006-e62b-48d2-9518-2001912a9d0d_1384x853.png 424w, https://substackcdn.com/image/fetch/$s_!1dJy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe327c006-e62b-48d2-9518-2001912a9d0d_1384x853.png 848w, https://substackcdn.com/image/fetch/$s_!1dJy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe327c006-e62b-48d2-9518-2001912a9d0d_1384x853.png 1272w, https://substackcdn.com/image/fetch/$s_!1dJy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe327c006-e62b-48d2-9518-2001912a9d0d_1384x853.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div></li></ol></li><li><p>Select Large and Download the excel. <a href="iframe.php?url=https%3A%2F%2Fdrive.google.com%2Ffile%2Fd%2F1HyCi6pzyZrHNGoDQrEs0yYhxkKrcoA28%2Fview%3Fusp%3Ddrive_link">Sample Downloaded Excel</a></p></li></ol><p><strong>Process the Data:</strong></p><ol><li><p>Copy the rows and columns from the downloaded Excel.</p></li><li><p>Paste them into the Google Sheet provided below.</p></li></ol><p>You can access the working Google Sheet <a href="iframe.php?url=https%3A%2F%2Fdocs.google.com%2Fspreadsheets%2Fd%2F1yYlqPg_BrEdtoQ5vSkj_M4jp3Mnfk-M_30g_TxtlZuU%2Fedit%3Fgid%3D628564207%23gid%3D628564207">here</a>. It automates the calculations and helps you identify the optimal strike price.</p><div><hr></div><h3>Let&#8217;s Collaborate!</h3><p>If you&#8217;ve performed any analysis which talks about answer to the question mentioned on top or spot any mistakes in this, please share your insights. I&#8217;m here to learn and grow with you.</p><ul><li><p>Reach out to me on <strong>X (Twitter)</strong> <a href="iframe.php?url=https%3A%2F%2Fraahibhushan.substack.com%2F%23">here</a>.</p></li><li><p>Drop a comment on this article.</p></li></ul><div><hr></div><h3>Feedback From Readers</h3><ol><li><p>If hedging is done due to reduced margin cost the return can be higher. The loss due to hedge can be offset by the increased position sizing due to reduction in margin requirement. Though complete analysis will have to be done on what can be the further expected gains. </p></li></ol><p></p><p><strong>Disclaimer -</strong> This is for educational purposes only. Please consult your adviser before taking any trade based on it. </p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Raahi's Substack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Greeks (Friends and Foes)]]></title><description><![CDATA[Choosing right greek friends is super important for success in option trading journey.]]></description><link>https://raahibhushan.substack.com/p/greeks-friends-and-foes</link><guid isPermaLink="false">https://raahibhushan.substack.com/p/greeks-friends-and-foes</guid><dc:creator><![CDATA[Raahi Bhushan]]></dc:creator><pubDate>Tue, 12 Nov 2024 14:15:03 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21H2CF%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ff92a7a1f-d9ed-4af5-a3ca-5787e51c8f44_1792x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Greeks are among the most fascinating elements in options trading, forming the basis for understanding how an option's price is determined. If you&#8217;re serious about trading options, a solid grasp of Greeks is essential. Without it, adjusting positions and navigating market ups and downs can become nearly impossible.</p><p>For those who aren&#8217;t experts in Greeks, exiting positions may be the only option when the market doesn&#8217;t move as expected. However, with a deep understanding of Greeks, you gain the ability to adjust your positions and ride through turbulent market movements.</p><p><strong>Note</strong>: I trade options exclusively in NIFTY, both weekly and monthly. You can check my trades and verified P&amp;L for the last 180 days <a href="iframe.php?url=https%3A%2F%2Fconsole.zerodha.com%2Fverified%2F3ee10800">here</a>.</p><div><hr></div><p>I believe everyone interprets Greeks differently, shaped by life experiences and personal biases. In fact, you can learn a lot about a person by understanding how they view the Greeks.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21H2CF%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ff92a7a1f-d9ed-4af5-a3ca-5787e51c8f44_1792x1024.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!H2CF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff92a7a1f-d9ed-4af5-a3ca-5787e51c8f44_1792x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!H2CF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff92a7a1f-d9ed-4af5-a3ca-5787e51c8f44_1792x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!H2CF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff92a7a1f-d9ed-4af5-a3ca-5787e51c8f44_1792x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!H2CF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff92a7a1f-d9ed-4af5-a3ca-5787e51c8f44_1792x1024.webp 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21H2CF%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ff92a7a1f-d9ed-4af5-a3ca-5787e51c8f44_1792x1024.webp" width="1456" height="832" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f92a7a1f-d9ed-4af5-a3ca-5787e51c8f44_1792x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:832,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:652806,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!H2CF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff92a7a1f-d9ed-4af5-a3ca-5787e51c8f44_1792x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!H2CF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff92a7a1f-d9ed-4af5-a3ca-5787e51c8f44_1792x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!H2CF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff92a7a1f-d9ed-4af5-a3ca-5787e51c8f44_1792x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!H2CF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff92a7a1f-d9ed-4af5-a3ca-5787e51c8f44_1792x1024.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>The Main Greeks: Delta, Theta, Vega, and Gamma</h3><p>While there are more than four Greeks, I focus primarily on Delta, Theta, Vega, and Gamma in my trading. I won&#8217;t go into detail on what each Greek means or how they impact option pricing; these topics are extensively covered in <a href="iframe.php?url=https%3A%2F%2Fzerodha.com%2Fvarsity%2Fmodule%2Foption-theory%2F">Zerodha Varsity&#8217;s option theory course</a>, which I found to be the best course on options. If you have questions, feel free to comment here or DM me on X (formerly Twitter) <a href="iframe.php?url=https%3A%2F%2Fx.com%2Fraahi_bhushan">@raahi_bhushan</a>.</p><p>In this post, I&#8217;ll mainly share my personal approach to each Greek:</p><h4><strong>Theta</strong></h4><p>Growing up in a middle-class family, patience was always valued as a way to earn money. Theta, therefore, has been my favorite Greek&#8212;it&#8217;s like a close friend. Since I sell options 99% of the time, Theta works in my favor, consistently adding to my returns.</p><div class="captioned-image-container"><figure><div class="image-link image2" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HTp3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c4217ac-c678-4c90-ab15-9e93c452b441_1024x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!HTp3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c4217ac-c678-4c90-ab15-9e93c452b441_1024x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!HTp3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c4217ac-c678-4c90-ab15-9e93c452b441_1024x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!HTp3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c4217ac-c678-4c90-ab15-9e93c452b441_1024x1024.webp 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21HTp3%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F2c4217ac-c678-4c90-ab15-9e93c452b441_1024x1024.webp" width="156" height="156" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2c4217ac-c678-4c90-ab15-9e93c452b441_1024x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:156,&quot;bytes&quot;:397822,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!HTp3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c4217ac-c678-4c90-ab15-9e93c452b441_1024x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!HTp3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c4217ac-c678-4c90-ab15-9e93c452b441_1024x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!HTp3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c4217ac-c678-4c90-ab15-9e93c452b441_1024x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!HTp3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c4217ac-c678-4c90-ab15-9e93c452b441_1024x1024.webp 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></div></figure></div><h4><strong>Vega</strong></h4><p>I&#8217;ve recently started understanding Vega, and it&#8217;s quickly become a &#8220;fast friend.&#8221; Knowing how Vega behaves under different conditions has proven useful, especially in tandem with tracking implied volatility (IV) to optimize option pricing. Here are a few insights on IV behavior that I use daily:</p><ul><li><p>On a typical trading day, IV is high in the morning and drops significantly by 11 AM.</p></li><li><p>IV tends to increase around 3 PM, likely due to a general expectation of significant moves at that time. (If anyone has insights on this, please share in the comments!)</p></li><li><p>IV usually rises when NIFTY falls and decreases if the market rises at a moderate pace.</p></li><li><p>High IV often means it&#8217;s not a good time to close (i.e., buy back) positions, as prices are inflated by the elevated IV.</p></li></ul><p><strong>Tracking IVs</strong>: With so many strike prices, tracking overall IV can be overwhelming. For a broader view, I monitor ATM (at-the-money) IV in real-time using <a href="iframe.php?url=https%3A%2F%2Fweb.sensibull.com%2Flive-options-charts%3Ftradingsymbol%3DNIFTY">Sensibull&#8217;s Live Option Charts</a>. Here&#8217;s a quick snapshot of NIFTY&#8217;s IV for November 12.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21YyUb%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fd013cc0f-e8fa-4d73-a06c-f3ae9a63fd29_1401x429.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YyUb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd013cc0f-e8fa-4d73-a06c-f3ae9a63fd29_1401x429.png 424w, https://substackcdn.com/image/fetch/$s_!YyUb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd013cc0f-e8fa-4d73-a06c-f3ae9a63fd29_1401x429.png 848w, https://substackcdn.com/image/fetch/$s_!YyUb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd013cc0f-e8fa-4d73-a06c-f3ae9a63fd29_1401x429.png 1272w, https://substackcdn.com/image/fetch/$s_!YyUb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd013cc0f-e8fa-4d73-a06c-f3ae9a63fd29_1401x429.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21YyUb%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fd013cc0f-e8fa-4d73-a06c-f3ae9a63fd29_1401x429.png" width="1401" height="429" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d013cc0f-e8fa-4d73-a06c-f3ae9a63fd29_1401x429.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:429,&quot;width&quot;:1401,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:128819,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!YyUb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd013cc0f-e8fa-4d73-a06c-f3ae9a63fd29_1401x429.png 424w, https://substackcdn.com/image/fetch/$s_!YyUb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd013cc0f-e8fa-4d73-a06c-f3ae9a63fd29_1401x429.png 848w, https://substackcdn.com/image/fetch/$s_!YyUb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd013cc0f-e8fa-4d73-a06c-f3ae9a63fd29_1401x429.png 1272w, https://substackcdn.com/image/fetch/$s_!YyUb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd013cc0f-e8fa-4d73-a06c-f3ae9a63fd29_1401x429.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4><strong>Delta</strong></h4><p>Delta and I don&#8217;t always get along; in fact, I try to keep my open positions as Delta-neutral as possible. I typically manage my overall positions to be Delta-neutral, similar to complex calendar option positions where Delta is kept close to zero.</p><p>If I could befriend Delta, I believe I&#8217;d be a better trader. But due to my tendency toward mean reversion, Delta remains elusive, making me feel a bit disappointed. I hope to overcome this bias someday.</p><p>I&#8217;ll share a detailed post soon on how I manage Delta across calendar positions to reduce trades and increase profits.</p><h4><strong>Gamma</strong></h4><p>Gamma feels like the &#8220;notorious&#8221; Greek I try to avoid, which might stem from my conservative and middle-class background. To keep my distance from Gamma, I close all positions at least one day before expiry, ensuring I&#8217;m not exposed to the Gamma effect that could cause significant fluctuations in my P&amp;L.</p><p>Also as gamma movements can be very rewarding I researched a bit to see if there is any opportunity. I wrote and open sourced <strong>Gamma Blast detector.</strong> </p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;c6c6c79c-02cd-4c00-9afa-aece6e7046d8&quot;,&quot;caption&quot;:&quot;Ever felt like the market suddenly went wild, wiping out your options trade in minutes? You're not alone! Welcome to the world of \&quot;Gamma Blasts,\&quot; a sudden, massive market movement that can turn 0-DTE (zero-days-to-expiry) options into a rollercoaster &#8211; and often, an option seller's nightmare.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Gamma Blasts&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:143422699,&quot;name&quot;:&quot;Raahi Bhushan&quot;,&quot;bio&quot;:&quot;Experiencing life &quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c4c3e734-da4c-4bc6-bd46-762b31196016_1024x1024.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-05-29T09:45:25.326Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c236f3a8-ec06-45c8-9678-d37b64035d60_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://raahibhushan.substack.com/p/gamma-blasts&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:164462962,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:20,&quot;comment_count&quot;:18,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;Raahi Bhushan, Lessons Learned while Trading&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!JVfK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe75f0d15-64af-4150-8cd1-26eb48ab0ac3_1024x1024.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p></p><h3>My Trading Style</h3><p>Due to this understanding of Greeks my trading style is a bit different from others. I have detailed about my trading style in the post -</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;36892cbd-f5c4-4e13-bb8d-e6b3333b2dde&quot;,&quot;caption&quot;:&quot;&#129504; Why I Don&#8217;t Use Strict Exit Criteria in My Trades&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;My Trading Style and how it's Different&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:143422699,&quot;name&quot;:&quot;Raahi Bhushan&quot;,&quot;bio&quot;:&quot;Experiencing life &quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c4c3e734-da4c-4bc6-bd46-762b31196016_1024x1024.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-08-01T05:14:23.146Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cc51fd9f-73b2-415a-8e30-0c348701109a_2816x1536.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://raahibhushan.substack.com/p/my-trading-style-and-how-its-different&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:169807953,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;Raahi Bhushan, Lessons Learned while Trading&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!JVfK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe75f0d15-64af-4150-8cd1-26eb48ab0ac3_1024x1024.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p></p><h3>How Do You See the Greeks?</h3><p>I&#8217;d love to hear how other traders view and use Greeks in their strategies. The more perspectives I gain, the better I&#8217;ll become as a trader. If you have insights or experiences with Greeks, please share in the comments! I plan to compile a post on diverse viewpoints to highlight how different people interpret and utilize them.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Raahi's Substack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Zomato's Business Analysis & Predictions]]></title><description><![CDATA[Will Zomato's share price be 10x (Rs. 500+) in next 5 years.]]></description><link>https://raahibhushan.substack.com/p/zomatos-business-analysis-and-predictions</link><guid isPermaLink="false">https://raahibhushan.substack.com/p/zomatos-business-analysis-and-predictions</guid><dc:creator><![CDATA[Raahi Bhushan]]></dc:creator><pubDate>Mon, 01 May 2023 09:32:12 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37335621-a166-4836-9e02-a1d418ded93c_960x640.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Zomato is one of the new age tech companies which have the capability to grow big. And yes the share price can be 10x of what it is currently in next 5 years. But they will have to execute tirelessly for next 5 years to become a $50B+ market cap company. </p><p>Let&#8217;s analyse their current numbers, challenges and then we will get into some predictions. </p><p>Zomato&#8217;s overall which is called &#8216;Eternal&#8217; internally, currently has 3 businesses </p><ol><li><p>Zomato core food business</p></li><li><p>Hyperpure which is sort of backward integration to partner deeper with Restraunts.</p></li><li><p>Blinkit which they acquired, to use quick delivery expertise and expand the wallet share of food and related items.</p></li></ol><p></p><p>Lets start with Zomato&#8217;s core business. It runs on <strong>2 revenue streams</strong> -&nbsp;</p><ol><li><p>Food delivery (Commission + Delivery). Ads for food delivery it is counted as a part of the commission only.</p></li><li><p>Advertisements for Restaurants (To drive more in table reservations to restaurants, there is an integration of the payments on top of it)</p><p><br>** There is a new revenue stream of Zomato Gold which is relatively new.</p></li></ol><p></p><p>Most of the operations revenue comes from food delivery business. Here is how the unit economics of that business looks like. The 2nd Ads business is anyways a high margin business but has a limited revenue capability. This should only reduce as a percentage of the total operational revenue as the food delivery business scales. </p><p><strong>Unit Economics details for Food Delivery Business -&nbsp;</strong></p><ul><li><p>Commission (positive)</p></li><li><p>Delivery Charges (positive)</p></li><li><p>Delivery Cost (negative)</p></li><li><p>Discounts given by Zomato (negative)</p></li><li><p>Other costs (Support + Transaction Charges + SMS + Calls)</p></li><li><p>After all this CM is calculated</p></li><li><p>Marketing and other central costs comes after that to get <strong>Adjusted EBIDTA</strong></p></li><li><p>ESOPs allocation cost comes to get to EBIDTA (we can neglect this for now, below that anyways is not important)</p></li></ul><p></p><p>Working Excel with analysis comments and notes -</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://docs.google.com/spreadsheets/d/1cQN4J0gSe8ISG5_lgE9u_dihcyuzEacGIr4pd8NFJCo/edit?gid=2087142269#gid=2087142269&quot;,&quot;text&quot;:&quot;Excel Sheet&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="iframe.php?url=https%3A%2F%2Fdocs.google.com%2Fspreadsheets%2Fd%2F1cQN4J0gSe8ISG5_lgE9u_dihcyuzEacGIr4pd8NFJCo%2Fedit%3Fgid%3D2087142269%23gid%3D2087142269"><span>Excel Sheet</span></a></p><p></p><p><em>Here are some of the FAQs which would be helpful to get a deeper understanding of the business. These questions were written before writing the article so some of them would be semi answered and some of them would still not be answered. These questions were answered after OND quarter results</em> </p><p></p><ol><li><p>How has there unit economics been over last 6 quarters?</p><ul><li><p>Has the CM and Adjusted Ebidta improved?</p></li></ul></li></ol><blockquote><p><strong>Ans - </strong>CM and adjusted Ebidta both have improved. There are 4 levers with Zomato to increase their Ebidta.&nbsp;</p></blockquote><ol><li><p>Increasing number of users</p></li><li><p>Increasing number of orders per user</p></li><li><p>Increasing AOV</p></li><li><p>Increase margin per order from Restaurants.</p></li></ol><blockquote><p>1,2 has not happened in the last quarter. This can be because of current market situations where the market seems to have stopped growing. The movement in 2nd is yet to be seen and Zomato Gold might help in it. Which means that only 3rd and 4th have contributed an increase of contribution in Q3 of FY 2023.</p><p>Going ahead it will be tricky for Zomato to further increase their margins or increase AOV fast enough. So to work on 2nd point is the only option left. Which zomato seems to be focussing on with re-launching their loyalty program.&nbsp;</p><p>Its super difficult to find the unit economics for every quarter, but there has been a rough estimation for the same. See from <strong>row 32</strong> in the sheet <a href="iframe.php?url=https%3A%2F%2Fdocs.google.com%2Fspreadsheets%2Fd%2F1cQN4J0gSe8ISG5_lgE9u_dihcyuzEacGIr4pd8NFJCo%2Fedit%23gid%3D2087142269">Zomato Result Tracking</a></p></blockquote><ol start="2"><li><p>How has the delivery cost reduced as a percentage in last 6 quarters?</p></li></ol><blockquote><p><strong>Ans - </strong>Delivery cost seems to have remain same for last 2 quarters and is estimated to be at around 55 Rs. Zomato is trying to further reduce this number, and is facing some heat from delivery partners.</p></blockquote><ol start="3"><li><p>What have been the delivery charges for last 6 quarters are they on an uptrend.</p></li></ol><blockquote><p><strong>Ans - </strong>Delivery charges has been on an uptrend, and currently stands at Rs. 30. In the last quarter there might be some campaign where the cost was reduced.&nbsp;</p></blockquote><ol start="4"><li><p> How have discounts been panning out?</p></li></ol><blockquote><p><strong>Ans - </strong>Delivery charges has been on an uptrend, and currently stands at Rs. 30. In the last quarter there might be some campaign where the cost was reduced.&nbsp;</p></blockquote><ol start="4"><li><p>What is the percentage of the delivery cost as the AOV. This can be an important metric which can define the AOV to target.&nbsp;</p></li></ol><blockquote><p><strong>Ans - </strong>With increase in AOV the percentage seems to have been going down.&nbsp;</p></blockquote><ol start="6"><li><p>What have been the CAC and cost of acquiring a user&nbsp;</p></li></ol><blockquote><p><strong>Ans - </strong>CAC per order was Rs. 23.26 which is higher than the previous quarter by more than 2 Rs. This was because of higher spends and lower number of orders.&nbsp;</p></blockquote><ol start="7"><li><p>How has been the growth of orders over last 6 quarters -&nbsp;</p><ul><li><p>New users contribution</p></li><li><p>Improve in recurring customers (Can there be some second order analysis done here)</p></li></ul></li></ol><blockquote><p><strong>Ans - </strong>Both seems to be stagnant which is very concerning.&nbsp;</p></blockquote><ol start="8"><li><p>What is the scope of other 2 businesses -&nbsp;</p><ul><li><p>Hyperpure, backward integration. Restaurants order size and number of restaurants its serving.</p></li><li><p>Blinkit and what does economics look like for it. What is the retailer + wholesaler margin in the fmcg products? Can delivery costs be covered with that?</p></li></ul></li><li><p>What are the future prospects of the business and the teams capabilities to be able to execute them.&nbsp;</p></li></ol><p><strong>Findings -&nbsp;</strong></p><ul><li><p>Users who ordered at-least 1 order in CY22 was 58M, in a good scenario this should be close to 60M in CY23 (~3.44% increment only). (I15 of <a href="iframe.php?url=https%3A%2F%2Fdocs.google.com%2Fspreadsheets%2Fd%2F1cQN4J0gSe8ISG5_lgE9u_dihcyuzEacGIr4pd8NFJCo%2Fedit%23gid%3D1228464618">Zomato Result Tracking</a>). This means that user growth will be pretty bad for the whole year. And the growth will have to come from one of these 3&nbsp;</p><ol><li><p>Number of orders placed by each user</p></li><li><p>Increase in AOV&nbsp;</p><ul><li><p>AOV already has reached 455 Rs. in last quarter (see H19 of Food Delivery sheet). Moving it higher will be difficult keeping in mind it is already on the higher side.&nbsp;</p></li></ul></li><li><p>Increase in CM&nbsp;</p><ul><li><p>Higher margins from restaurants.</p></li><li><p>Lower cost of delivery</p></li></ul></li></ol></li><li><p>Findings on changes in AOV and Number of Orders (QoQ). (2nd case looks more probable, as the money paid to the delivery boys have not reduced to the same extent as reduction in money charged). So free delivery is somehow used as a promotion tactics.</p><ol><li><p>If it is assumed that Customer Delivery Charges per order remains same then in Q3 of FY23 there has been a drop of ~7% in the orders in Q3 FY '23. Most of which would have been compensated with proportionate increase in the AOV (Most likely case)</p></li><li><p>If the delivery cost paid by Zomato has remained same then there has been a drop of 2.5% in the number of orders which would have been almost equally compensated by the increase in AOV. This is with an assumption that restaurants have given the same commission. Also there has been better ad monetisation which has helped in increasing the AOV.&nbsp;</p></li></ol></li><li><p>The Q4FY&#8217;23 looks even more bleak with further drop or same average monthly transacting customers.&nbsp;</p></li><li><p>The chances of stock to go above 56 Rs are less after the next result announcement based on the core food business.&nbsp;</p></li></ul><p><strong>Notes -&nbsp;</strong></p><ul><li><p>Sales promotion per order was 22.44% in 9 months FY 21. This includes -&nbsp;</p><ul><li><p>Discounts by Zomato</p></li><li><p>Marketing &amp; Branding Cost&nbsp;</p></li><li><p>Customer Appeasement cost</p></li><li><p>Refunds made to restaurant partners</p></li></ul></li><li><p>Contribution Margins -&nbsp;</p><ul><li><p>9 months FY-2021 - <strong>22.9</strong></p><ul><li><p>Earned Commission + Delivery Charges - (62.8 + 26.8) - This includes income from ads for food delivery.</p></li><li><p>Delivery Cost - 44.6</p></li><li><p>Discount - 7.3</p></li><li><p>Other costs (Support + Transaction Charges) - 14.8</p></li><li><p>Net CM - 22.9</p></li><li><p>This does not include the cost for marketing and branding. (Marketing should be the part of CM)</p></li><li><p>CM as a percentage of GOV - 4.6%(3rd Quarter 2021)</p></li></ul></li></ul><p></p></li></ul><p>We will be doing analysis of Blinkit in another article in sometime. </p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://raahibhushan.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Raahi&#8217;s Substack! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>