Greeks & Option Chain
Use the below apis:
| method | endpoint | use case | Rate Limit |
|---|---|---|---|
POST |
{{base_url}}/strategies/option_chain | Fetch the option chain | 1/sec |
Option Chain
Endpoint: /strategies/option_chain
Option Chain Payload
{
"symbol":"NIFTY",
"token":26000,
"exchange":"NSE_EQ",
"expiry_date":"20240201",
"greeks":true
}
| params | required | description |
|---|---|---|
| exchange | Y | Possible values: [NSE_EQ,NSE_FO, NSE_CUR or MCX_FO] |
| symbol | Y | Symbol of the underlying asset. For e.g. NIFTY, BANKNIFTY,RELIANCE |
| expiry_date | Y | Expiry date of options in YYYYMMDD format |
| greeks | Y | Should be passed as true if you want greeks calculation included, otherwise false |
Option Chain Response
{
"status": "success",
"message": "",
"response": {
"symbol": "NIFTY",
"expiry_date": "20240201",
"has_parent_stock": true,
"expiry_dates": [
.
.
"20240328",
"20240627",
.
.
],
"options": {
"exchange": "NSE_FO",
"list": [
.
.
.
{
"strike_price": 21000,
"iv": 15.04,
"theta": -5.74,
"vega": 7.62,
"gamma": 0.0003,
"CE": {
"token": 37954,
"instrument_name": "OPTIDX",
"lot_size": 50,
"security_description": "NIFTY2420121000CE",
"eligibility": 1,
"ltp": 717.45,
"open_interest": 51100,
"day_first_tick_oi": 0,
"volume": 0,
"delta": 0.86
},
"PE": {
"token": 37955,
"instrument_name": "OPTIDX",
"lot_size": 50,
"security_description": "NIFTY2420121000PE",
"eligibility": 1,
"ltp": 35.95,
"open_interest": 512850,
"day_first_tick_oi": 0,
"volume": 0,
"delta": -0.14
}
},
{
"strike_price": 21050,
"iv": 14.7,
"theta": -6.08,
"vega": 8.25,
"gamma": 0.0004,
"CE": {
"token": 37956,
"instrument_name": "OPTIDX",
"lot_size": 50,
"security_description": "NIFTY2420121050CE",
"eligibility": 1,
"ltp": 628.05,
"open_interest": 1250,
"day_first_tick_oi": 0,
"volume": 0,
"delta": 0.85
},
"PE": {
"token": 37957,
"instrument_name": "OPTIDX",
"lot_size": 50,
"security_description": "NIFTY2420121050PE",
"eligibility": 1,
"ltp": 40.55,
"open_interest": 63600,
"day_first_tick_oi": 0,
"volume": 0,
"delta": -0.15
}
},
{
"strike_price": 21100,
"iv": 14.52,
"theta": -6.54,
"vega": 8.99,
"gamma": 0.0004,
"CE": {
"token": 37958,
"instrument_name": "OPTIDX",
"lot_size": 50,
"security_description": "NIFTY2420121100CE",
"eligibility": 1,
"ltp": 628,
"open_interest": 11250,
"day_first_tick_oi": 0,
"volume": 0,
"delta": 0.83
},
"PE": {
"token": 37959,
"instrument_name": "OPTIDX",
"lot_size": 50,
"security_description": "NIFTY2420121100PE",
"eligibility": 1,
"ltp": 47.2,
"open_interest": 484900,
"day_first_tick_oi": 0,
"volume": 0,
"delta": -0.17
}
},
.
.
]
},
"parent": {
"symbol": "NIFTY",
"exchange": "NSE_EQ",
"token": 26000,
"isin": "",
"ltp": 21586
}
}
}
|field|description|
|---|---|
|status|Possible values: [success,error] |
|message|Error message if any|
|symbol|Symbol of the underlying asset. For e.g. NIFTY, BANKNIFTY,RELIANCE|
|expiry_date|Expiry date for which option chain is returned|
|available_expiry_dates|List of all expiry dates available for the symbol|
|strikes|Array containing CE and PE options of all strike prices|
|iv|IV of both CE and PE. If strike price is grater than spot price, it is CE IV, otherwise it is PE IV|
IV Calculation
We use Black-76 model, which is a variant of the well known Black Scholes model. It is better suited for the Indian markets and is widely used by professional quants.
In this model, we:
- Assume no interest rate
- Assume no dividend etc
- Use Future Prices instead of Stock Prices for stock options
- Use Index Prices for index options
It is assumed that interest rate and dividends are accounted for in Future Prices.
According to Black Scholes theory and in practical efficient markets,
- IV for call and put options for the same expiry and same strike price should be the same
- IV for call and put options for the same expiry and different strike price should be different
However, this is not always true in India because:
- Securities Transaction Tax affects ITM options and brings down volatility
- Inefficiency due to wide bid-ask spreads
NSE uses Black Scholes model with its own twist. It assumes a constant interest rate of 10% (which is not true as RBI keeps on changing it). Even ATM strikes have two very different IVs, whereas it should be the same.
Put Call Parity says that:
Call Price - Put Price = Future Price - Strike Price.
If we use different IVs in call and put price calculation, this equation will not add up. So, we use the IV of the OTM option and use it for both Put and Call option.