with one click
nse-options
NSE options chain: OI buildup, PCR, max pain, IV (Nifty/BankNifty)
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
NSE options chain: OI buildup, PCR, max pain, IV (Nifty/BankNifty)
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Search and download arXiv papers (no API key needed)
Delegate coding and file edits to Anthropic Claude Code CLI
Read/write Windows clipboard text, HTML, images, history (PowerShell)
Running scripts and code on Windows
Delegate coding tasks to OpenAI Codex CLI
Windows Defender: scans, threat history, signatures (PowerShell)
| name | nse-options |
| description | NSE options chain: OI buildup, PCR, max pain, IV (Nifty/BankNifty) |
| category | india |
| version | 1.0.0 |
| tags | nse, options, derivatives, oi, pcr, maxpain, nifty, banknifty, iv, chain |
| license | Apache-2.0 |
Analyze NSE options chain for Nifty and BankNifty — open interest buildup, put-call ratio, max pain level, and implied volatility — using NSE's public JSON API.
$headers = @{ "User-Agent" = "Mozilla/5.0"; "Referer" = "https://www.nseindia.com" }
Invoke-WebRequest -Uri "https://www.nseindia.com" -SessionVariable nse -Headers $headers | Out-Null
$chain = Invoke-RestMethod -Uri "https://www.nseindia.com/api/option-chain-indices?symbol=NIFTY" `
-Headers $headers -WebSession $nse
$chain.records.data | Select-Object strikePrice,
@{N='CE_OI';E={$_.CE.openInterest}}, @{N='CE_IV';E={$_.CE.impliedVolatility}},
@{N='PE_OI';E={$_.PE.openInterest}}, @{N='PE_IV';E={$_.PE.impliedVolatility}} |
Where-Object { $_.CE_OI -or $_.PE_OI } |
Sort-Object strikePrice
$headers = @{ "User-Agent" = "Mozilla/5.0"; "Referer" = "https://www.nseindia.com" }
Invoke-WebRequest -Uri "https://www.nseindia.com" -SessionVariable nse -Headers $headers | Out-Null
$chain = Invoke-RestMethod -Uri "https://www.nseindia.com/api/option-chain-indices?symbol=NIFTY" `
-Headers $headers -WebSession $nse
$totalCE_OI = ($chain.records.data | ForEach-Object { $_.CE.openInterest } | Measure-Object -Sum).Sum
$totalPE_OI = ($chain.records.data | ForEach-Object { $_.PE.openInterest } | Measure-Object -Sum).Sum
$pcr = [math]::Round($totalPE_OI / $totalCE_OI, 2)
Write-Host "Nifty PCR: $pcr (CE OI: $totalCE_OI | PE OI: $totalPE_OI)"
$headers = @{ "User-Agent" = "Mozilla/5.0"; "Referer" = "https://www.nseindia.com" }
Invoke-WebRequest -Uri "https://www.nseindia.com" -SessionVariable nse -Headers $headers | Out-Null
$chain = Invoke-RestMethod -Uri "https://www.nseindia.com/api/option-chain-indices?symbol=NIFTY" `
-Headers $headers -WebSession $nse
$strikes = $chain.records.data | Select-Object strikePrice,
@{N='CE_OI';E={$_.CE.openInterest}},
@{N='PE_OI';E={$_.PE.openInterest}} |
Where-Object { $_.strikePrice }
# Max pain = strike where total dollar loss for option holders is maximum
$maxPainStrike = $strikes | ForEach-Object {
$s = $_.strikePrice
$pain = ($strikes | ForEach-Object {
$ceVal = [math]::Max(0, $s - $_.strikePrice) * $_.CE_OI
$peVal = [math]::Max(0, $_.strikePrice - $s) * $_.PE_OI
$ceVal + $peVal
} | Measure-Object -Sum).Sum
[PSCustomObject]@{ Strike = $s; TotalPain = $pain }
} | Sort-Object TotalPain | Select-Object -First 1
Write-Host "Max Pain Strike: $($maxPainStrike.Strike)"
$chain.records.data |
Where-Object { $_.CE.openInterest -gt 0 } |
Sort-Object { $_.CE.openInterest } -Descending |
Select-Object -First 5 strikePrice, @{N='CE_OI';E={$_.CE.openInterest}}, @{N='CE_OI_Change';E={$_.CE.changeinOpenInterest}}
$chain.records.data |
Where-Object { $_.PE.openInterest -gt 0 } |
Sort-Object { $_.PE.openInterest } -Descending |
Select-Object -First 5 strikePrice, @{N='PE_OI';E={$_.PE.openInterest}}, @{N='PE_OI_Change';E={$_.PE.changeinOpenInterest}}
"What is the current Nifty PCR?" → Fetch chain, sum all CE and PE OI, divide PE by CE — PCR > 1.2 is bullish, < 0.8 is bearish.
"Where is max pain for this week's expiry?" → Run the max pain calculation across all strikes and return the strike with minimum total option holder loss.
"Show me the top 5 CE and PE OI strikes for BankNifty"
→ Change URL to symbol=BANKNIFTY and sort by OI descending.