Nifty50 Options From Beginner to Advanced
From First Principles to Advanced Trade Design
by Anupam Dutta
About the Author
Part I Foundations
1.1 What is an Option?
When I first encountered the word option it sounded like a textbook trap ; full of formal sentences and caveats. Later I realised an option is something I already do in life. When I pay a small booking amount to hold a hotel room, or reserve a flight ticket and decide later, I have purchased the right to complete the transaction; I am not obligated to. That small payment is exactly the idea behind an option.
Now, extend that story: suppose the check in date (or flight date) is the expiry. If I donāt show up, my booking amount (the premium) is gone forever. The hotel or airline doesnāt refund it. That is the cost of buying flexibility. In option terms, I let the contract expire worthless.
Authorās Note: Expiry is not an abstract line on a calendar. Imagine itās Friday, and the option you bought expires on Tuesday. Every candle, every session, you can feel time bleeding away. By Monday night thereās one session left. If Nifty50 does not move in your favour by Tuesdayās close, the premium you paid is gone forever. Thatās the drill: the contract either pays out on expiry, or it dies worthless right then and there.
Simple example: I buy a Nifty50 22,000 Call on Friday for ā¹100. If Nifty closes at 21,950 on Tuesday the option finishes worthless and I lose ā¹100. If Nifty closes at 22,200 on Tuesday the option finishes with about ā¹200 intrinsic value, and my net P&L is roughly +ā¹100.
But notice the other side. The hotel or airline is the option seller. They receive my booking amount (premium) and keep it no matter what. If I donāt turn up, they simply pocket the money. If I do show up, they still have my premium but also must give me the service at the agreed price. This is exactly how the option sellerās payoff works in markets: limited profit (premium received), but potential liability if the buyer decides to exercise when the market moves.
So in Nifty50, when I buy a Call or Put, someone else has sold it to me. If the market expires quietly and my option is worthless, the seller keeps my premium. If the market explodes in my favour, the seller is the one paying me out. That tension between buyerās right and sellerās obligation is the beating heart of the options market.
In this book we always talk about Nifty50. Think of an option on Nifty50 like a reservation: I pay a premium today to buy the right to buy or sell the index at a fixed level on expiry. The premium is the known, limited cost. The payoff - if the market moves in my favour ; can be much larger.
A concrete example: Nifty50 is at 22,000. I buy the 22,000 Call for ā¹200.
- Cost = ā¹200 Ć 75 (lot size) = ā¹15,000 upfront. That is my maximum loss.
- If Nifty at expiry = 22,500 ā intrinsic = 500 ā gross value = 500 Ć 75 = ā¹37,500 ā net profit = (500 ā 200) Ć 75 = ā¹22,500.
- If Nifty at expiry ⤠22,000 ā option expires worthless ā I lose the premium ā¹15,000 and nothing more.
Now the mirror: buy the 22,000 Put for ā¹180. If Nifty collapses to 21,700, intrinsic = 300 ā net profit = (300 ā 180) Ć 75 = ā¹9,000. Again, my downside is capped at the premium I paid.
I like to summarise the core feeling in one sentence: buying an option = limited, known pain (the premium) for asymmetric upside; selling an option = collecting premium but carrying asymmetric, potentially large risk. That asymmetry is the source of both opportunity and danger in options.
Why this matters practically:
- Beginners: options let you participate in big moves with a small capital outlay while knowing your maximum loss upfront.
- Intermediate traders: options enable targeted risk profiles (insuring a portfolio, replacing futures, or constructing spreads).
- Advanced traders: options are raw building blocks ; combine calls and puts into custom payoff shapes that match a view and a risk budget.
A quick real-world note: Nifty50 options are European-style and cash-settled. That means the right is exercised only at expiry and all settlements are in cash-no shares change hands. This simplifies many practical worries that appear in stock options (physical delivery or early assignment).
Mini exercise (do it mentally): You pay ā¹150 for a 22,000 Call (lot 75). If Nifty at expiry = 22,200, what is your P/L? Work it out: intrinsic = 200 ā net = (200 ā 150) Ć 75 = ā¹3,750 profit.
1.2 Calls & Puts : Payoff Intuition
Letās first get the intuition right. A Nifty50 option is just a contract whose value moves with the Nifty50. A Call Option becomes more valuable if Nifty50 goes up. A Put Option becomes more valuable if Nifty50 goes down. Thatās it ; every single strategy youāll ever trade is built on this simple foundation.
- Call Option = right to buy Nifty50 at the strike price. It gains value when Nifty rises above the strike.
- Put Option = right to sell Nifty50 at the strike price. It gains value when Nifty falls below the strike.
The optionās price (premium) is what you pay for that right. If Nifty moves in your favour, the premium can rise sharply. If it moves against you, the premium decays towards zero, and your maximum loss is only that premium.
Example: Nifty50 is at ā¹22,000. You buy a 22,000 Call option by paying a premium of ā¹200.
- If Nifty expires at 22,500 ā your payoff = (22,500 ā 22,000 ā 200) Ć 75 = ā¹22,500.
- If Nifty expires at 21,800 ā option expires worthless, you lose only the premium (ā¹200 Ć 75 = ā¹15,000).
Now flip it. Suppose you buy a 22,000 Put for ā¹180. If Nifty expires at 21,700, payoff = (22,000 ā 21,700 ā 180) Ć 75 = ā¹9,000.
Now letās bring in the other side - the seller. The seller of these options is like the hotel keeping your booking fee. If Nifty doesnāt move much, the seller keeps the entire premium. But if Nifty explodes, the seller must pay out the difference. Thatās why option sellers need big margins.
| Position | Nifty expiry level | Payoff (per lot) |
|---|---|---|
| Buy 22,000 CE @ 200 | 22,500 | +ā¹22,500 |
| Sell 22,000 CE @ 200 | 22,500 | āā¹22,500 |
| Buy 22,000 PE @ 180 | 21,700 | +ā¹9,000 |
| Sell 22,000 PE @ 180 | 21,700 | āā¹9,000 |
This table shows the symmetry: the buyerās profit is exactly the sellerās loss, and vice versa. But notice the risk profiles: buyers risk only the premium, sellers can face large losses. That is why combining Calls and Puts into spreads is so powerful ; it balances risk and reward into shapes that suit your view.
Thatās it. Every spread, condor, butterfly, or hedge youāll ever see is just clever ways of mixing Calls and Puts. Master these two, and the rest is just combinations.
1.3 Option Terminology (Strike, DTE, IV)
When I first started out, all the jargon confused me. Strikes, IV, expiry cycles ; it felt like a new language. Over time, I realised these are just tools. Once you get them, you see the market differently. Let me explain the way I personally use these terms in my trading.
- Strike Price: To me, a strike is just the level of Nifty50 where the battle is happening. If Nifty is at 22,000, then 22,000 is ATM, 22,500 is OTM for calls, and 21,500 is ITM. I think of it as different checkpoints on the road where traders are placing their bets.
- Premium: This is the entry fee. I always multiply it by lot size (75 for Nifty) to feel the real money at stake. A ā¹200 premium sounds small, but at lot level itās ā¹15,000. Thatās the maximum I can lose if Iām a buyer. Sellers pocket that amount upfront, but with risk attached.
- DTE (Days to Expiry): I live by DTE. A contract with 3 days left bleeds like crazy, theta crush is visible hour by hour. A monthly with 20+ days is calmer. Knowing DTE helps me decide if Iām scalping intraday, swinging for a few days, or positioning for an event.
- Expiry: NSE shifted all expiries to Tuesday. BSE shifted to Thursday expiries. If the expiry day is a holiday, it pulls back to the previous trading day. I keep this in mind because expiry day behaviour is different ; premiums collapse fast, and one careless position can evaporate.
- Implied Volatility (IV): IV is the marketās mood meter. When IV is low, options feel cheap but they decay slow. When IV spikes, options feel expensive - buyers get lured in, but sellers get paid fat premiums if they can survive the swings. I donāt treat IV as an abstract formula; I treat it as the collective fear and greed priced into options.
Now let me bring in something I watch every single day: India VIX.
India VIX is built directly from Nifty50 option prices. I call it the āfear index.ā When VIX is high, the market is screaming that wild moves are coming. When VIX is low, traders are relaxed and expect small ranges. The catch? VIX doesnāt say direction, it only signals the size of the move thatās being priced in.
Hereās how I actually use it. VIX is annualised. So if India VIX = 20, I divide by ā365 to get the daily move. Thatās about 1.05% a day. On Nifty50 at 22,000, thatās roughly ±230 points. This gives me a āprobable rangeā for the next session. Itās not perfect, but itās my starting point for planning trades.
And the extremes tell a story. In March 2020 during the COVID crash, India VIX exploded above 80. That meant the market was pricing in ±5% daily moves. I still remember Nifty50 falling -1,000 points in a single day ; straddles were trading at prices I had never seen before. That was when I learnt the hard way: never disrespect volatility. Price you can fight, but volatility will humble you.
1.4 European vs American, Settlement
Now letās talk style. In India, all index options (Nifty50, Bank Nifty, Finnifty) are European style and cash settled. That means three things:
- No early exercise: you cannot exercise the contract before expiry. Only at expiry is your option checked for value.
- Cash settlement: no shares ever change hands in index options. Profits and losses are settled in cash directly into your trading account.
- Settlement Price: calculated from Niftyās Special Closing Price (weighted average of last 30 minutes on expiry day).
This is very different from the US, where many stock options are American style and can be exercised anytime, and some are physically settled. Here in India, the rules for index options are simpler and safer for retail traders. If you go long, your maximum loss is just the premium you paid. If you go short, exchange margin rules make sure you have funds set aside to cover potential losses.
Exercise vs Settlement vs Square Off
- Square Off: Closing your position before expiry by taking the opposite trade. Example: you bought 22,000 CE at ā¹200, you sell it at ā¹280 before expiry - profit booked, no settlement needed.
- Exercise: As a buyer, this means using your right at expiry. Example: you hold 22,000 CE and Nifty closes at 22,300. Intrinsic = 300 points. In index options this is automatic, you donāt manually exercise - the exchange does it for you.
- Settlement: The exchangeās final accounting at expiry. Example: the same 22,000 CE at expiry = 300 points intrinsic ā you get ā¹22,500 in cash (300 Ć 75), the seller pays it.
Bonus: Stock Option Settlement
Since October 2019, NSE made all stock options physically settled. This means if you hold ITM contracts at expiry, you may be forced to give or take delivery of shares:
- Long Call (ITM) ā you must buy shares at the strike.
- Short Call (ITM) ā you must deliver shares.
- Long Put (ITM) ā you must sell shares at the strike.
- Short Put (ITM) ā you must buy shares from the option holder.
Example: You sell Reliance 2500 CE and it expires ITM. You may have to deliver 505 shares of Reliance. Thatās a huge obligation ; over ā¹15 lakh exposure at current prices. This is why margins on stock options spike near expiry, and why I personally never carry naked stock options into expiry.
Key takeaway for us:
Nifty50 options are cash only, expiry specific, and European in style.
Stock options are a different beast ; they can land you in physical delivery.
My rule: with Nifty50 Iām relaxed about expiry, with stock options I always square off or hedge before expiry week.
1.5 Margins and Calculation
One of the first shocks I got when I moved from buying options to selling them was the margin requirement. When you buy an option, the maximum loss is the premium you pay ; nothing more. But when you sell (write) an option, the potential loss can be very large. The exchange knows this, so they block a margin in your account to cover that risk.
Buying Options : Simple
Example: You buy Nifty50 22,000 CE at ā¹200. Lot size = 75. Your cost is just ā¹200 Ć 75 = ā¹15,000. Thatās it : no margin, no extra requirements. Your risk is capped at ā¹15,000.
Selling Options - Margin Heavy
Now flip it. You sell the same 22,000 CE at ā¹200. The exchange will block roughly ā¹1.2 to ā¹1.5 lakh as margin for one lot. Why so high? Because if Nifty shoots up 500 points, your loss = (500 ā 200) Ć 75 = ā¹22,500. If it jumps 1,000 points, the loss doubles. Margins are the exchangeās safety net to make sure you can cover such moves.
Margin Benefits with Spreads
Hereās the trick: the moment you hedge a position, margins drop sharply. Example: a Bull Call Spread.
- Buy 22,000 CE at ā¹200
- Sell 22,500 CE at ā¹80
How Margins are Calculated
Brokers in India use a system called SPAN + Exposure margin, defined by NSE. SPAN looks at worst case scenarios across different price and volatility moves. Exposure margin is an extra buffer. Together, they form the total margin blocked. You can check exact margins in your brokerās margin calculator ; I personally never place a short trade without confirming margin impact first.
My rule:
If Iām buying, I know my risk = premium Ć lot size.
If Iām selling, I always check broker margin calculator, and I almost never sell naked ; spreads save both margin and sanity.
1.6 ITM, OTM, ATM
When I first heard these terms : ITM, OTM, ATM ; they sounded like banking codes. In reality, they are just simple ways of saying whether an option already has value or not compared to the current Nifty50 level. Let me explain in the simplest way I can.
- ATM (At the Money): This is the strike price closest to where Nifty50 is trading right now. Example: If Nifty50 is at 22,030, the 22,000 strike is ATM. Think of it as the option sitting exactly where the fight is happening.
- ITM (In the Money): These are options that already have some built-in value.
- A Call Option is ITM if its strike is below the current Nifty50 level. Example: Nifty50 at 22,000 ā 21,800 CE is ITM by 200 points.
- A Put Option is ITM if its strike is above the current Nifty50 level. Example: Nifty50 at 22,000 ā 22,200 PE is ITM by 200 points.
- OTM (Out of the Money): These options have no intrinsic value yet ; they are pure time value bets.
- A Call Option is OTM if its strike is above the current Nifty50 level. Example: Nifty50 at 22,000 ā 22,200 CE is OTM.
- A Put Option is OTM if its strike is below the current Nifty50 level. Example: Nifty50 at 22,000 ā 21,800 PE is OTM.
Hereās how I mentally simplify it:
Calls love the market going up ā ITM = below current price.
Puts love the market going down ā ITM = above current price.
How I trade them:
: If I buy OTM options, I know I need a strong, fast move in my direction or else theta decay will kill me.
: If I buy ATM, I need a decent move ; I pay a fair price for a fair chance.
: If I buy ITM, I pay more upfront but the option already has value and a higher probability of profit.
Choosing between ITM, ATM, and OTM is not random ; itās part of the strategy.
1.7 Open Interest
When I started trading, the term Open Interest (OI) sounded intimidating. In reality, itās nothing more than a simple headcount: how many option contracts are still āopenā in the market right now.
Example: I buy one Nifty50 22,000 CE and you sell it to me. Now Open Interest = 1 contract. If tomorrow I square off my position by selling that CE back in the market, OI reduces by 1. So OI goes up when new contracts are created, and goes down when contracts are closed.
Why do I care about OI? Because it shows me where traders are putting real money. If 22,000 CE has 25 lakh OI and 22,500 CE has 40 lakh OI, it means big players are actively betting at those strikes. Those levels often act like resistance or support during expiry.
How I read OI:
- High Put OI = strong support zone (sellers believe Nifty wonāt go below this).
- High Call OI = strong resistance zone (sellers believe Nifty wonāt go above this).
- Sudden OI build-up = fresh positions being created (watch the direction).
- Sudden OI unwinding = traders closing positions (sentiment is shifting).
Quick scenario: Nifty50 is at 22,000. Option data shows highest Call OI at 22,500 and highest Put OI at 21,800. I immediately note that market participants are expecting Nifty to expire between 21,800 and 22,500. If price suddenly breaks out of this range with volume, I know the option sellers are in trouble and the market can trend strongly.
So to me, OI is not a magic indicator. Itās just the footprints of money in the market. Follow the footprints, and you get a sense of where the crowd is standing.
1.8 Option Chain
If Open Interest is the raw number, the Option Chain is the full dashboard. It shows all strikes lined up, with Call data on one side and Put data on the other. When I open the Nifty50 option chain on NSE, hereās what I usually see: Strike Price, Last Traded Price (LTP), Volume, Open Interest (OI), and Change in OI ; all neatly arranged.
Let me show you a simplified sketch of an option chain:
When I look at the option chain, I focus on:
- ATM Strike : tells me the center of action.
- Highest Call OI : usually acts as resistance.
- Highest Put OI : usually acts as support.
- Change in OI : shows where fresh positions are being built or unwound.
Example: If Nifty50 is at 22,000 and the option chain shows highest Call OI at 22,500 and highest Put OI at 21,800, I assume expiry range is likely between 21,800 and 22,500. If price starts breaking outside this zone, it signals a trend shift and I prepare my strategies accordingly.
My habit: I check the option chain every morning. For me, itās like checking the weather before stepping out - it tells me where the winds of the market are blowing.
Part II Mechanics & Models
In this part I lay down the mathematical foundation, but I keep it practical and to the point. Iāll walk you through the core models and the exact tools I use when trading Nifty options. Donāt let the notation scare you; I always tie the math back to real trades so the equations stop being abstract and start to tell a story. My flow is straightforward: assumptions first, then the formula, then a numeric example you can follow step by step, and finally how I interpret the result when Iām making trading decisions. (Fun fact: the first time I ran a model live the numbers saved me from a nasty mistake; so yes, this stuff matters.)
2.1 The Black Scholes Model : Pricing the Invisible
When I first stepped into options, one question kept eating at me: how do I know if Iām overpaying or underpaying for an option? The market throws me a premium, but is that really āfairā? Thatās where the Black Scholes Merton (BSM) model comes in. I treat it like a compass. It wonāt chart the whole journey for me, but it does point me in the right direction.
What BSM Tries to Do
The model says: given the current Nifty50 level, strike, time left, volatility, and interest rate - what should the option be worth, on average, in a fair world? Itās not perfect, but it gives me an anchor price to compare against the live market.
Analogy: Imagine you want to insure your car. The premium depends on your carās value, age, your driving history, accident probability, etc. Black Scholes is like the insurance companyās calculator ; it crunches those inputs and spits out a fair premium.
The Ingredients
- S = Current price of Nifty50 (I use Nifty futures as proxy).
- K = Strike price of the option.
- T = Time to expiry (in years).
- r = Risk-free interest rate (I look at G-Sec yield).
- Ļ (sigma) = Volatility : the wild card, the one input that changes everything.
- N(x) = Probability from a normal distribution (donāt worry, weāll break this down).
Traderās Tip: Normal Distribution Made Simple
The BlackāScholes model assumes market returns follow a normal distribution (bell curve). That means most of the time, small moves are common (the fat middle of the curve), and very large moves are rare (the thin tails).
N(d) simply tells me the probability that a random draw from this curve is less than d.
For example:
N(0) = 0.5 ā 50% chance
N(1) ā 0.84 ā 84% chance
This is why N(d1) and N(d2) act like probability weights inside the Black Scholes formula. I donāt treat them as abstract math ; I see them as the āprobability factorsā the model uses to balance risk and reward.
The Core Formulas
For a Call Option:
C = S Ć N(d1) ā K Ć eārT Ć N(d2)
For a Put Option:
P = K Ć eārT Ć N(ād2) ā S Ć N(ād1)
And the engine inside it is:
d1 = [ln(S/K) + (r + ϲ/2)T] / (ĻāT),
d2 = d1 ā ĻāT
Donāt panic! You donāt need to calculate this by hand every day. Brokers and Excel can do it in seconds. But I want you to understand what each piece means ; thatās the real traderās edge.
Step-By-Step Example (ATM Nifty Call)
Letās price a 22,000 Call with 10 days to expiry:
- S = 22,000 (Nifty futures)
- K = 22,000 (ATM)
- T = 10/365 ā 0.027 years
- r = 6% (0.06)
- Ļ = 15% (0.15)
Working it out:
- ln(S/K) = ln(22,000 / 22,000) = 0
- (r + ϲ/2)T = (0.06 + 0.0225/2) Ć 0.027 ā 0.00195
- ĻāT = 0.15 Ć ā0.027 ā 0.0248
- d1 = 0.00195 / 0.0248 ā 0.079
- d2 = 0.079 ā 0.0248 = 0.054
Traderās Tip: Donāt worry about memorising normal distribution tables.
In Excel, you can directly calculate probabilities using the function =NORM.S.DIST(value, TRUE).
In Google Sheets, the same function works: =NORM.S.DIST(d1, TRUE) gives you N(d1).
So if d1 = 0.079, typing =NORM.S.DIST(0.079, TRUE) will return about 0.531.
Thatās exactly how we find N(d1) and N(d2) without manual lookups.
Look up normal distribution: N(d1) ā 0.5313, N(d2) ā 0.5215. Discount factor = eā0.06 Ć 0.027 ā 0.998.
So, C = 22,000 Ć 0.5313 ā 22,000 Ć 0.998 Ć 0.5215 = 11,688 ā 11,466 = ā¹222.
Result: the model says the ATM call should be worth about ā¹222. When I check NSE option chain, prices are indeed close. Thatās the power : not precision, but perspective.
More Scenarios
Letās change the inputs and see what happens.
- OTM Call: If strike = 22,500, the model premium falls sharply (maybe ~ā¹70). Why? Lower probability of ending ITM.
- ITM Call: If strike = 21,500, premium rises (~ā¹550) because the option already has intrinsic value.
- Longer Expiry: If T = 30 days instead of 10, premiums are higher. More time = more uncertainty.
How I Actually Use BSM
I never sit with a calculator on live trades. Thatās pointless. What I do is compare: if market premium ā« BSM fair value ā IV is inflated, good for selling strategies. If market premium āŖ BSM ā options are cheap, maybe worth buying. The edge lies in the gap between model and market.
Key takeaway: Black Scholes is not gospel. Itās an anchor. The market can and will deviate. My job as a trader is to spot when those deviations are big enough to exploit.
Reality Check: When Black Scholes Works⦠and When It Fails
In normal, liquid markets, Black Scholes has done a pretty good job. For example, most of the time in Nifty50 weekly and monthly expiries, the fair values it predicts are very close to the actual market premiums. Thatās why it became the global standard for pricing options. Banks, brokers, and funds all used it as the default model for decades.
But sometimes, reality throws up scenarios that no formula can handle. The best example is April 2020, when Crude Oil futures traded below zero for the first time in history. Black Scholes assumes the underlying can never go negative (because it models prices as ālognormalā). When crude oil went to ā$37, the entire model broke down. Options on crude oil suddenly had payoffs that no one had ever imagined. A put option with strike $0, which in theory should never have any value, suddenly became worth more than the underlying contract itself.
That event was a wake-up call: models are useful, but markets can go places models never expect. For me, the lesson was clear ; use Black Scholes as an anchor, not a prophecy. Respect the model, but respect the market more.
Further Reading: Beyond Black Scholes
If this chapter sparked your curiosity, here are some models and resources you can explore to go deeper. I donāt recommend memorising formulas : instead, see how each model tweaks assumptions to better fit real markets:
- Binomial Options Model : A step-by-step lattice approach. Easier to grasp conceptually, especially for American options.
- Monte Carlo Simulations : Powerful for complex payoffs (barriers, exotics). Instead of one formula, it simulates thousands of price paths.
- Stochastic Volatility Models (Heston, SABR) : These account for volatility itself being uncertain. Widely used in institutional trading.
- Books:
- Sheldon Natenberg : Option Volatility and Pricing (the traderās bible on pricing & greeks).
- John Hull : Options, Futures, and Other Derivatives (academic, but the standard reference).
- Papers:
- Black & Scholes (1973) : āThe Pricing of Options and Corporate Liabilities.ā
- Robert Merton (1973) : extensions of the model that gave BSM its full form.
My advice: Donāt drown in formulas. Start with intuition. Use BlackāScholes as your base anchor, and then learn where real-world traders adjust it. Thatās where the edge lives.
Over time, I realised that pure theory wasnāt enough. Markets donāt always respect textbook assumptions, especially in Nifty50. So I took BlackāScholes as my starting point and then built my own proprietary upgrades based on live trading experience. This is how models like NCP40 and RSEDAO were born : not in a classroom, but in front of the trading screen. They are my personal extensions of the classic model, shaped by volatility dislocations, option chain dynamics, and thousands of hours of observation.
Iāll introduce both NCP40 and RSEDAO in the later part of this book. For now, just know that even a Nobel Prize model like Black Scholes is just a stepping stone. The real breakthroughs come when you use it, break it, adapt it, and rebuild it in your own trading context.
2.2 Implied Volatility (IV) & The Volatility Surface
When I look at an option premium on NSE, the market doesnāt tell me its volatility outright. Instead, I reverse-engineer it: I ask, āWhat volatility number makes the Black Scholes price equal to this market price?ā That number is called Implied Volatility (IV). Think of IV as the market whispering to me: āHereās how wild I think the future will be.ā
IV vs Realized Volatility
This part confused me a lot when I was new. So let me make it crystal clear:
- IV = forward looking, the marketās forecast of the storm.
- Realized Volatility/Historical Volatility = backward looking, the actual rain that fell.
Example: Suppose Nifty50 has been moving ~150 points per day over the last 2 weeks. Thatās about 12% realized volatility annualized. But if I check the option chain and see the ATM options trading at 20% IV, the market is bracing for bigger moves ahead. That mismatch "forecast vs reality" : is where trades are born.
Traderās Trick: If IV > Realized vol ā options are āexpensiveā (selling may pay). If IV < Realized vol ā options are ācheapā (buying may pay). The trade lies in that gap.
The Smile & Skew
Hereās something that shocked me the first time I plotted IV across strikes: it wasnāt flat. In Nifty50, OTM Puts almost always trade at higher IV than Calls. Why? Because institutions constantly hedge downside risk, and that demand pumps up put premiums. The result isnāt a perfect āsmileā but a tilted āsmirkā : higher on the left (puts).
Example snapshot (weekly Nifty expiry):
- 21,000 PE IV = 22%
- 22,000 ATM IV = 16%
- 23,000 CE IV = 14%
As a trader, I donāt ignore this. If I want to sell options, Iād rather sell the āfatā IV (the puts) and hedge smartly, instead of shorting already cheap calls.
The Term Structure
Now letās talk across time. IV changes with expiry dates : this is called the term structure of volatility. Example: Before the Union Budget, weekly IV may shoot to 20%, while the 3-month IV stays calm at 15%. That tells me: the short term is nervous, the long term is chilled.
Thatās why strategies like calendar spreads exist: sell the hot short-term IV, buy the cooler long term IV. Itās like selling overpriced fireworks before Diwali, while holding insurance for the long run.
The Volatility Surface
Put together "strike by strike" skew (smile/smirk) and "expiry by expiry" term structure, and you get the volatility surface. Itās a 3D map: strike on one axis, time on another, IV on the vertical. For me, itās like a landscape of fear and greed. Trading edge lies in spotting where the surface is distorted "maybe one expiry is too high", or one strike too cheap compared to neighbors.
My takeaway: IV is not just a number. Itās the marketās language for expectation and fear. Once I learnt to read IV smiles, skews, and surfaces, I stopped seeing options as random quotes ; I started seeing them as footprints of the crowdās psychology.
2.3 Greeks : My Risk Dashboard
If Black Scholes is my compass, then the Greeks are the cockpit instruments. When I take a trade, I donāt just look at the premium. I want to know how my position will react to moves in price, time, and volatility. Thatās what Delta, Gamma, Theta, Vega (and sometimes Rho) tell me. Without them, Iād be flying blind.
Delta (Ī)
Delta tells me how much my optionās price changes if Nifty moves 1 point. Example: an ATM call usually has Ī ā 0.5. So if Nifty jumps 100 points, my call gains about 50 points. It also doubles up as a hedge ratio : Delta shows how many units of futures Iād need to neutralize an option position.
Gamma (Ī)
Gamma is how fast Delta itself changes. This is why, near expiry, Delta can swing violently from 0.5 to 0.7 within a 100 point move. High Gamma means your risk profile flips quickly. Thatās why shorting ATM options in expiry week is like sitting on a ticking bomb.
Theta (Ī)
Theta is the silent bleed "the daily decay". If my option has Ī = ā10, it means I lose ā¹10 per lot every single day if Nifty doesnāt move. Option buyers feel this as ātime decay pain.ā Option sellers, on the other hand, collect this decay as income.
Vega
Vega tells me how sensitive my option is to volatility. If Vega = 50, then a 1% rise in IV adds ā¹50 per lot to my premium. This is critical around events (Budget, RBI policy) when IV spikes or collapses.
Rho (Ļ)
I donāt use it daily for Nifty, but Rho measures sensitivity to interest rates. In equity index options, itās usually small, but in currency or bond markets it matters.
This kind of dashboard (like what you will see in my NCP40 App) is how I manage risk. I donāt think of a trade only in terms of āpremium paidā or āpremium received.ā I think in terms of how my Greeks are aligned. Am I long Delta or short? How exposed am I to Gamma flips? How much time decay am I bleeding? Thatās how pros survive in the options jungle.
My tip: Always watch your portfolio Greeks, not just single trades. You might be long Delta in one position and short Delta in another - what matters is the net exposure. Thatās how real risk management is done.
2.4 Nifty Spot vs Futures : My Real Anchor
Hereās a mistake I see all the time: traders price Nifty options off the index spot. But you canāt actually trade the spot "itās just a number". The real instrument is Nifty Futures, and thatās what I always use as my anchor.
The fair value formula:
F = Spot Ć e(r ā d)T
where r = risk free rate (RBI Repo Rate), d = dividend yield, and T = time to expiry. This basically says futures trade at a small premium to spot because of cost of carry.
Worked Example
- Spot = 22,000
- r = 6% (0.06)
- d = 1.2% (0.012)
- T = 0.25 years (3 months)
(r ā d)T = (0.06 ā 0.012) Ć 0.25 = 0.048 Ć 0.25 = 0.012. e0.012 ā 1.012. So fair futures = 22,000 Ć 1.012 = 22,264.
Now, if the actual futures are trading at 22,400, theyāre rich. If theyāre at 22,200, theyāre cheap. Arbitrage desks hunt for this difference, but as a retail trader, I simply make sure I price my options off the futures ; not the index print. That keeps my valuations consistent with whatās tradable.
My takeaway: I never model off Nifty spot. I always use the Nifty futures price. That one small habit keeps my entire pricing and hedging framework accurate.
Part II : My Quick Recap
- BlackāScholes gives me a fair value anchor : I trade the deviations.
- IV is forward-looking, realized vol is backward looking : I watch the gap.
- Greeks are my cockpit instruments : I check them daily.
- Nifty Futures, not Spot, are my true pricing anchor.
Part III Strategy & Execution
This part is my personal operating manual. Iām going to show you how I actually build, manage, and adjust trades in Nifty options. Each strategy will follow a flow Iāve used in my own trading: (1) clear definition, (2) why Iād use it, (3) a full worked example with Nifty (lot size = 75), (4) how Greeks shape the trade, (5) my entry/exit/adjustment rules, and (6) practical notes on risk and margin. Think of this as me opening up my notebook for you.
3.1 Vertical Spreads : The Building Blocks
Why I use verticals: they give me defined risk, defined reward, and they cut down margin compared to naked positions. For a retail trader, verticals are the safest entry point into options spreads.
Bull Call Spread (Debit Spread) - My go-to bullish spread
Setup: I buy 22,000 CE and sell 22,500 CE (same expiry). Letās assume Nifty is trading exactly at 22,000.
- 22,000 CE = ā¹200
- 22,500 CE = ā¹80
Net debit per unit: 200 ā 80 = 120.
Net debit per lot (lot = 75): 120 Ć 75 = 9,000. That ā¹9,000 is my maximum risk.
- Max Loss: ā¹9,000 (the debit I pay).
- Max Profit: happens if Nifty expires ā„ 22,500. Payoff = (500 ā 120) Ć 75 = 380 Ć 75 = 28,500.
- Breakeven: 22,000 + 120 = 22,120.
How I use it: if I expect a steady, not explosive, move up. I donāt need to gamble with naked calls "I pay a fixed cost, and my upside is capped but meaningful."
Entry rule: I take this when I have a mild bullish view and I see IV reasonably priced. Exit rule: I usually book out when Iāve captured 50ā70% of the max profit, or if my view is wrong and time decay eats too much value.
My Adjustments
- If Nifty races toward the sold strike (22,500 here), I might buy back the short leg and roll it higher to keep the trade alive.
- Since this is a debit spread, I need movement before expiry. If the market stalls, I cut it "I donāt wait for decay to kill me."
- Margin is light compared to naked selling : but I still confirm my brokerās SPAN numbers before placing size.
3.1.1 Other Vertical Variants
I donāt want you to just memorize names ; hereās how I think of them:
- Bear Call Spread: Sell 22,000 CE, buy 22,500 CE. I use this if I believe Nifty will not cross 22,000. Itās a defined risk way of selling calls.
- Bear Put Spread: Buy 22,000 PE, sell 21,500 PE. My choice if I expect a small downside move but donāt want open ended risk.
3.2 Straddles & Strangles : My Volatility Bets
When I trade straddles or strangles, Iām not betting on direction; Iām betting on movement. I use them when I know a big move is coming but I donāt know which way.
Worked Long Straddle Example
Buy 22,000 CE @ ā¹200 and 22,000 PE @ ā¹180. Total premium = ā¹380. For 1 lot (75): 380 Ć 75 = 28,500. Thatās my maximum loss.
- Breakeven up: 22,000 + 380 = 22,380.
- Breakeven down: 22,000 ā 380 = 21,620.
If Nifty explodes up or down beyond these breakevens, I profit. If it stays flat, I bleed ā¹28,500.
How I judge a straddle
I compare cost vs expected move. Expected move ā S Ć Ļ Ć āT. If thatās bigger than the premium, buying makes sense. If smaller, selling might.
Example: ATM IV = 18%, T = 7 days, S = 22,000. Expected move ā 22,000 Ć 0.18 Ć ā(7/365) ā 548 points. Since breakevens are ±380, this looks underpriced "a trader might buy." But remember, realized vol must show up. No move = guaranteed bleed.
3.2.1 Iron Condors & Butterflies : Income with Boundaries
These are the "bread and butter" income strategies. They let me collect theta, but with capped risk.
Iron Condor Example
Nifty = 22,000. I sell 21,400 PE (ā¹40), buy 21,300 PE (ā¹30). I sell 22,600 CE (ā¹45), buy 22,700 CE (ā¹35). Net credit = (10 + 10) = ā¹20. Per lot (75) = 20 Ć 75 = 1,500.
Max profit: ā¹1,500 (if Nifty stays between 21,400ā22,600). Max loss: Wing width (100 ā 20) Ć 75 = 80 Ć 75 = 6,000.
Butterfly Example
I buy 21,500 CE, sell 2Ć22,000 CE, buy 22,500 CE. Itās cheap "maybe a few thousand rupees debit." If expiry pins near 22,000, I make a multiple of that cost. I use butterflies when I expect expiry pinning near a strike.
3.3 Volatility Trading : Skew, Term & Events
Hereās how I read vol surfaces: puts are usually richer, calls cheaper. I check term structure; weeklies spike, longer expiries smooth. And I always check events; RBI, Budget, elections.
- If puts are very expensive (say 20% vs calls at 15%), I prefer selling puts with wings or buying calls cheap.
- If weekly IV is spiking before an event but 3M IV is calm, I consider calendars (sell short term, buy long term).
3.4 Delta Hedging & Gamma Scalping : My Professional Tool
This is where I move from retail to professional mode. When Iām long gamma (long options), I hedge with futures to stay delta neutral. I scalp the swings. If Nifty zigzags enough, the scalps beat my theta cost.
Example: I buy 2 ATM calls, total delta ā +75 (2 Ć 0.5 Ć 75). To neutralize, I short 1 futures (75). When Nifty rises, my options gain delta : I sell more futures at higher price. When it falls back, I buy those futures cheaper. That difference is my scalping profit.
This only works if realized volatility > implied volatility. If market sleeps, I bleed theta. Thatās why I attempt gamma scalping only when I expect fireworks.
3.5 Risk Systems & Position Sizing
My golden rule: survival first. I never risk more than 2% of account equity on a single trade.
Example: Account = ā¹5,00,000. 2% = 10,000. If a bull call spread costs 9,000 per lot, I take only 1 lot. That way, even a full loss doesnāt break me.
I also stress test: if Nifty gaps 3% overnight, whatās my worst loss? If that number scares me, I reduce size.
3.6 Adjustments : How I Rescue Trades
When trades go wrong, I donāt panic. I pick one adjustment from my rulebook:
- Roll: shift the short strike further out if IV allows me to do it for credit.
- Add hedge: buy a cheap wing to cap risk.
- Cut size: reduce exposure instead of averaging into a loser.
3.7 My Trade Journal Checklist
Every trade I log:
- Setup: strikes, expiry, size, premium in/out
- Reason: directional, vol, event, skew
- Risk: max loss in ā¹
- Entry Greeks snapshot
- Exit plan (profit target, stop)
- Post trade notes : what I learned
3.8 Common Mistakes I See Retail Traders Make
- Selling naked options without protection ; one gap can wipe out months of gains.
- Oversizing ; donāt risk more than 2% per trade. Most blowups come from leverage, not wrong ideas.
- Ignoring Greeks ; if you donāt track Delta/Gamma/Vega, youāre blind.
- Trading without a plan ; every entry must have a reason and an exit trigger written down.
My OnePage Quick Reference
- Max risk per trade = 2% of capital.
- Prefer defined-risk spreads (verticals, condors, butterflies).
- Use calendars to exploit term structure.
- Attempt gamma scalping only when I can manage futures actively.
- Always stress test worst-case gaps and margin calls.
Part IV Research & Appendices
4.1 NCP40 : Fair Value Dislocation (Overview)
Over the last six years of my trading and research journey, I built a proprietary framework called NCP40. It is not a public model ; this is something I developed myself through trial, error, and thousands of hours of market observation. The goal of NCP40 is simple: detect fair value dislocations between spot, futures, and options-implied prices. Whenever the market drifts away from theoretical āanchor levels,ā NCP40 helps me identify short-lived opportunities for spreads, hedges, and relative value trades.
This framework is available only through private access: https://www.ncp40.lynqverse.com
4.2 RSEDAO : Synthetic Volatility Surface
When I built RSEDAO (Regime-Switching Exponential Decay/Amplification Operators), it wasnāt from a textbook - it came out of years of staring at NIFTY50 option chains, watching how dealers defend premiums and how those defenses sometimes snap. Traditional models like BlackāScholes assume a neat, continuous world with smooth volatility. But in practice, the option surface isnāt smooth at all ; it bends, it jumps, it defends, it breaks. RSEDAO is my way of making sense of that chaos.
Why I built it
The problem with standard volatility models is that they rely on randomness (stochastic processes) that donāt really map to what we see intraday. Market makers donāt āgenerate volatilityā like a coin toss. They run books with very visible footprints:
- The lowest OTM option premiums = insurance floors (the minimum theyāll charge to sell risk).
- When prices hover just above those floors = defense.
- When those floors break = repricing ā a structural shift.
Thatās what RSEDAO captures. Instead of diffusion math, I use deterministic exponential operators that toggle between two regimes: decay (when dealers defend) and amplification (when they are forced to reprice volatility).
The binary breakout rule
This is where discipline comes in. With RSEDAO, a premium either breaches its buffer or it doesnāt. Thereās no grey zone, no chasing fakeouts. If no breach, I stay in Decay Mode : harvest theta, sell premium. If a breach happens, I switch to Breakout Mode : ride volatility, donāt fight it. That binary logic is what keeps me out of noise and forces me to act only when something structural has changed.
Illustration - RSEDAO Logic
Applications in my trading
I donāt use RSEDAO as a pricing oracle. I use it as a context filter. When the model says decay, I focus on spreads, condors, theta trades. When it flips to breakout, I stop selling and look for long gamma plays (buying straddles, scalping). Itās not about predicting the index ; itās about syncing my trades with how dealers are actually behaving.
Like NCP40, RSEDAO is proprietary and private. I donāt publish the full operators. But I share the philosophy because I want you to understand the edge: not in forecasting markets, but in reading the footprints of the people who really move them.
4.3 Hedging in the NIFTY50 Options Market : The RSEDAO Perspective
Let me take you behind the curtain. Every time you buy an option on NIFTY50, thereās an invisible counterpart on the other side ; the market maker. They arenāt ātrading a viewā like you and me. Their job is to provide liquidity, warehouse risk for a few minutes or hours, and hedge it away as quickly as possible. Their survival depends on this discipline.
Delta neutrality: If they sell a call, they buy futures. If they sell a put, they short futures. Direction is always hedged. Gamma & Vega: They watch how sensitive their books are to convexity and volatility. A sudden NIFTY move without hedging can blow them up. Skew defense: Because everyone wants puts for protection, dealers mark up put IV. Thatās why the put side always looks āexpensive.ā
The point is simple: market makers are not forecasting NIFTY. Theyāre running a hedging machine, adjusting every time flows change.
What it looks like in practice
Expiry week is the best way to see this. Morning flow ā a burst of put buying. Dealers write puts, hedge by shorting futures. Mid-day bounce ā dealers are suddenly too short, so they buy back futures. End of day ā put IVs are marked up again because demand hasnāt stopped. And the cycle repeats: absorb flow ā hedge ā reprice volatility.
The RSEDAO lens
Now, hereās where my RSEDAO framework comes in. Iām not trying to be the dealer. What I do is watch their footprints. The lowest visible premiums in the option chain are not random "thatās the dealerās insurance floor". Itās the minimum theyāre willing to sell at while still being able to hedge.
If prices drift toward that floor and stall, it usually means dealers are defending. If prices breach that level, it means defense failed - hedging flows have flipped, and dealers are forced to reprice volatility. Thatās when real breakouts/amplification start.
This is the key difference from Black Scholes. BSM asks: āWhatās the fair value?ā RSEDAO asks: āWhen do dealers stop defending and start repricing?ā
Why this matters
In quiet times, dealers hold the line, premiums decay, and it pays to be a seller. In event times, defenses break, hedging flips, and it pays to ride the breakout. RSEDAO encodes this into a regime-switching process: Decay Mode (dealers in control) vs Breakout Mode (dealers overwhelmed).
Most retail traders lose because theyāre caught in the noise between these two regimes. They sell too cheap, or chase moves that arenāt real. By waiting for clear breaches, RSEDAO avoids the noise and trades only when the underlying hedging flow truly shifts.
RSEDAO Regime Flow
š Example 1 : Quiet Market Defense (Decay Mode)
Date: March 2024, NIFTY50 expiry cycle. NIFTY50 drifted sideways, volatility subdued. Traders kept buying OTM puts as insurance (common near quarter-end). Dealers absorbed that flow by selling puts and shorting futures to hedge. Premiums never breached the ārisk bufferā line ; they hovered below it.
š Result: Market makers defended successfully. Puts decayed every day into expiry. RSEDAO would have flagged this as Plan B (decay). I aligned with this regime and captured theta bleed while others overpaid for protection.
š Example 2 : Event Breach (Breakout Mode)
Date: July 2024, postāgeneral election rally. NIFTY50 gapped up sharply after results. Call premiums surged past their previous ābufferā : a clean breakout. Dealers who had been short calls scrambled to hedge by buying NIFTY futures, pushing the index even higher. This created a feedback loop: option premiums broke out and momentum carried.
š Result: Dealer defense failed, volatility repriced. RSEDAO would have triggered Plan A (breakout). My play here: buy dips, hold until target. Retail traders who thought calls were ātoo expensiveā got steamrolled, while breakout-followers profited.
š¹ What these examples show
In March ā dealers in control = steady decay. In July ā dealers overwhelmed = explosive breakout. Same framework, two regimes. Thatās the real power of RSEDAO ; it strips away the noise and keeps me trading only when the dealer flows tell the true story.
Conclusion
The NIFTY50 options market isnāt moved by random speculation ; itās moved by the hedging routines of dealers. Every stall, every spike in premiums, every skew shift is their book talking. My edge with RSEDAO is not prediction. Itās synchronization. If defense holds, I harvest decay. If defense breaks, I ride the breakout. Thatās how I trade with the flows that actually move the market.
Appendix: Data, Code & Tools
I use a minimal toolkit every day: pandas for data handling, numpy for numeric work, and matplotlib for quick visuals.
You don't need exotic software to reproduce the examples in this book ; just Python and these libraries.
Below is a full, working BlackāScholes implementation (pricing, Greeks, implied vol) I wrote and use for teaching and prototyping.
License & Author: This code is written by Anupam Dutta. It is licensed for public, non-commercial use only. You may read, modify and experiment with it for learning and research, but do not use it for commercial redistribution or as part of a paid service without my explicit written permission.
# ===================================================================
# BlackāScholes implementation (pricing, Greeks, implied volatility)
# Author: Anupam Dutta
# License: PUBLIC USE - Non-Commercial Only (see appendix note)
# ===================================================================
#
# Requirements: Python 3.7+, numpy, matplotlib (optional for plots)
# Install: pip install numpy matplotlib
#
# Functions:
# - norm_cdf(x) : standard normal CDF
# - bs_price(...) : BlackāScholes price (call/put)
# - bs_greeks(...) : delta, gamma, theta, vega (per-1-unit)
# - implied_vol_bisect(...) : implied vol via bisection (robust)
# - implied_vol_newton(...) : optional faster Newton method (needs good guess)
#
# Example usage at bottom shows the numeric example from Chapter 2
# ===================================================================
import math
from typing import Tuple
def norm_cdf(x: float) -> float:
"""Standard normal CDF using math.erf for portability."""
return 0.5 * (1.0 + math.erf(x / math.sqrt(2.0)))
def norm_pdf(x: float) -> float:
"""Standard normal PDF."""
return math.exp(-0.5 * x * x) / math.sqrt(2.0 * math.pi)
def _d1_d2(S: float, K: float, T: float, r: float, sigma: float) -> Tuple[float,float]:
"""Compute d1 and d2 used in BlackāScholes."""
# Guard against zero time or zero vol
if T <= 0 or sigma <= 0:
return float('inf'), float('inf')
sqrtT = math.sqrt(T)
d1 = (math.log(S / K) + (r + 0.5 * sigma * sigma) * T) / (sigma * sqrtT)
d2 = d1 - sigma * sqrtT
return d1, d2
def bs_price(S: float, K: float, T: float, r: float, sigma: float, is_call: bool = True) -> float:
"""
BlackāScholes price for European call/put.
S: underlying (use Nifty futures price as anchor)
K: strike
T: time to expiry in years
r: risk-free rate (annual, decimal)
sigma: volatility (annual, decimal)
is_call: True -> Call, False -> Put
Returns option premium per 1 index unit (multiply by lot size externally).
"""
if T <= 0:
# Option at expiry: intrinsic value
if is_call:
return max(0.0, S - K)
else:
return max(0.0, K - S)
d1, d2 = _d1_d2(S, K, T, r, sigma)
df = math.exp(-r * T)
if is_call:
price = S * norm_cdf(d1) - K * df * norm_cdf(d2)
else:
price = K * df * norm_cdf(-d2) - S * norm_cdf(-d1)
return price
def bs_greeks(S: float, K: float, T: float, r: float, sigma: float) -> dict:
"""
Return Greeks for a European option (per 1 contract unit):
- delta_call, delta_put, gamma, vega, theta_call, theta_put
Theta is returned as change per year (not per day); divide by 252 (or 365) for daily.
"""
d1, d2 = _d1_d2(S, K, T, r, sigma)
pdf_d1 = norm_pdf(d1)
df = math.exp(-r * T)
sqrtT = math.sqrt(T) if T > 0 else 1e-12
delta_call = norm_cdf(d1)
delta_put = delta_call - 1.0
gamma = pdf_d1 / (S * sigma * sqrtT) if T > 0 else 0.0
vega = S * pdf_d1 * sqrtT # sensitivity per 1 (i.e. 1.0 = 100% vol)
# Theta (per year). Conventions vary; this uses Black-Scholes analytic form:
theta_call = (-S * pdf_d1 * sigma / (2 * sqrtT) - r * K * df * norm_cdf(d2))
theta_put = (-S * pdf_d1 * sigma / (2 * sqrtT) + r * K * df * norm_cdf(-d2))
return {
'delta_call': delta_call,
'delta_put': delta_put,
'gamma': gamma,
'vega': vega,
'theta_call_per_year': theta_call,
'theta_put_per_year': theta_put
}
def implied_vol_bisect(target_price: float, S: float, K: float, T: float, r: float,
is_call: bool = True, tol: float = 1e-6, maxiter: int = 200) -> float:
"""
Implied volatility using bisection. Robust and stable.
Returns sigma (annual decimal). If no solution found, returns NaN.
"""
# Bounds for volatility
low, high = 1e-6, 5.0
p_low = bs_price(S, K, T, r, low, is_call)
p_high = bs_price(S, K, T, r, high, is_call)
# If the target price is outside bounds, bisection will still try (but check sanity)
if not (min(p_low, p_high) <= target_price <= max(p_low, p_high)):
# This might indicate target_price is outside feasible range (e.g., bad input)
# We'll still proceed but return NaN if it doesn't converge.
pass
for i in range(maxiter):
mid = 0.5 * (low + high)
price_mid = bs_price(S, K, T, r, mid, is_call)
if abs(price_mid - target_price) < tol:
return mid
# decide which side to keep
if price_mid > target_price:
high = mid
else:
low = mid
return float('nan') # did not converge within maxiter
def implied_vol_newton(target_price: float, S: float, K: float, T: float, r: float,
is_call: bool = True, tol: float = 1e-8, maxiter: int = 60) -> float:
"""
Implied vol via Newton-Raphson (requires a good initial guess).
Uses vega (derivative of price w.r.t. sigma) for updates.
Returns sigma or NaN if fails.
"""
sigma = 0.2 # initial guess
for i in range(maxiter):
price = bs_price(S, K, T, r, sigma, is_call)
diff = price - target_price
if abs(diff) < tol:
return sigma
# compute vega (derivative)
d1, _ = _d1_d2(S, K, T, r, sigma)
vega = S * norm_pdf(d1) * math.sqrt(T)
if vega < 1e-12:
break
sigma = sigma - diff / vega
# keep sigma positive and in a reasonable bracket
if sigma <= 0 or sigma > 5:
sigma = max(1e-6, min(5.0, sigma))
return float('nan')
# ----------------------------
# Example: reproduce the Chapter-2 worked ATM example
# ----------------------------
if __name__ == "__main__":
# Example inputs (from book)
S = 22000.0 # Nifty (futures)
K = 22000.0 # ATM strike
T = 10.0 / 365.0 # 10 days to expiry
r = 0.06 # 6% annual risk-free
sigma = 0.15 # 15% annual IV
lot_size = 75 # Nifty lot (book uses 75)
call_price = bs_price(S, K, T, r, sigma, is_call=True)
put_price = bs_price(S, K, T, r, sigma, is_call=False)
greeks = bs_greeks(S, K, T, r, sigma)
print("BlackāScholes example (per 1 index unit):")
print(f"Call premium ā {call_price:.2f}")
print(f"Put premium ā {put_price:.2f}")
print(f"Per-lot Call premium (lot={lot_size}): {call_price * lot_size:.0f} INR")
print()
print("Greeks (per 1 unit):")
for k, v in greeks.items():
if 'theta' in k:
# convert theta from per-year to per-day (approx 252 trading days)
print(f" {k}: {v/252.0:.3f} per day (approx)")
else:
print(f" {k}: {v:.6f}")
# Example: implied vol back-solve given call_price
iv_bisect = implied_vol_bisect(call_price, S, K, T, r, is_call=True)
iv_newton = implied_vol_newton(call_price, S, K, T, r, is_call=True)
print()
print(f"Implied vol (bisection) ~ {iv_bisect:.6f}")
print(f"Implied vol (newton) ~ {iv_newton:.6f}")
# ----------------------------
# Optional: small payoff plot (uncomment to run in a script)
# ----------------------------
# import numpy as np
# import matplotlib.pyplot as plt
#
# Ks = [K]
# spots = np.linspace(S * 0.85, S * 1.15, 201)
# call_payoffs = [max(s - K, 0) for s in spots]
# call_values = [bs_price(s, K, T, r, sigma, is_call=True) for s in spots]
#
# plt.figure(figsize=(8,4))
# plt.plot(spots, call_payoffs, label='Intrinsic payoff at expiry', linestyle='--')
# plt.plot(spots, call_values, label='Theoretical premium today (BSM)')
# plt.title('Call payoff vs BlackāScholes price')
# plt.xlabel('Underlying (Nifty)')
# plt.ylabel('Value (per unit)')
# plt.legend()
# plt.grid(alpha=0.3)
# plt.show()
Quick notes & tips:
- If you back out IV from market prices, always use futures as the underlying S (not index spot).
- Use the bisection method for robustness when you donāt have a good initial guess. Newton is faster but may fail on poor seeds.
- Greeks shown above are āper index unit.ā Multiply by your lot size (e.g., 75) to get per-contract sensitivities.
- Theta in code is returned per year. Divide by ~252 trading days for daily decay (or 365 for calendar days), depending on your convention.
If you want, I can also provide:
- A ready Jupyter notebook (with live plots) derived from this code.
- A small CSV loader that fetches NSE option chain snapshots and computes IV surface (example only, no exchange API keys included).
References & Further Reading
Some classics that shaped my learning:
- Black, Fischer & Myron Scholes : The Pricing of Options and Corporate Liabilities
- Hull, John C. : Options, Futures & Other Derivatives
- Research papers on volatility surfaces & term structures
- NSE documentation on derivatives contracts, margining, and settlement
- NSE Whitepaper on India Vix
I recommend you always cross-check academic insights with actual market data ; theory without practice is incomplete.
Contact & Mentoring
If you found this book useful and want to go deeper ; whether itās personal mentoring, strategy design, or exploring my proprietary research models (NCP40 / RSEDAO) ; feel free to reach out:
- Email: anupam.dutta@lynqverse.com
- Telegram: @QuantOptionXpert
I donāt promise easy answers ; but I do promise to share what Iāve actually learned trading the Nifty50 options markets in real time.
This book is the outcome of years of experiments, failures, and breakthroughs. Use it as a foundation, but build your own path in the markets. The edge comes not from copying models, but from understanding deeply and applying with discipline.