DEV Community

shakti tiwari
shakti tiwari

Posted on • Originally published at optiontradingwithai.in

Bank Nifty में PCR और IV Skew क्या है (हिंदी)

Bank Nifty Analysis

सीधी बात: Bank Nifty Options में PCR (Put-Call Ratio) बताता है बाज़ार किधर झुका है, और IV Skew बताता है Calls या Puts महँगे क्यों हैं। दोनों मिलकर AI Signal को मज़बूती देते हैं। नीचे Python code है।

सिर्फ सीखने के लिए। निवेश सलाह नहीं।

PCR क्या है

PCR = Put का OI ÷ Call का OI।

# Mac / Linux / Termux
python3 pcr_bank.py
# Windows CMD
py pcr_bank.py
Enter fullscreen mode Exit fullscreen mode
def calc_pcr(put_oi, call_oi):
    return put_oi / call_oi if call_oi else 0.0

# Bank Nifty उदाहरण
print("PCR:", calc_pcr(put_oi=90000, call_oi=76000))  # ~1.18
Enter fullscreen mode Exit fullscreen mode
  • PCR > 1 = Puts ज़्यादा (नीचे का डर) → कभी-कभी उल्टा Bullish।
  • PCR < 0.8 = Calls ज़्यादा (ऊपर का उत्साह) → कभी-कभी उल्टा Bearish।

IV Skew क्या है

हर Strike की Volatility (IV) अलग होती है। ATM (मध्य) से नीचे की Strikes की IV अगर ज़्यादा है → Puts महँगीं (नीचे का Insurance माँग)।

def iv_skew(chain):
    atm = min(chain["strikes"], key=lambda s: abs(s - chain["spot"]))
    atm_iv = chain["iv"][chain["strikes"].index(atm)]
    down_iv = chain["iv"][0]   # सबसे नीचे की Strike
    return down_iv - atm_iv    # positive = Put महँगी
Enter fullscreen mode Exit fullscreen mode

Worked Numbers (Bank Nifty 52000)

PCR = 1.18, Put IV skew +3%, Call IV skew -1%।

  • Puts महँगीं = नीचे का Insurance माँग।
  • PCR Bullish adjust (1.18) पर विरोध।
  • Model prob_up = 0.59 → Band 0.58-0.80 → Paper entry calm।

Bank Nifty बनाम Nifty

बात Bank Nifty Nifty 50
Volatility ज़्यादा कम
Vega Block टाइट (6) 8
PCR Speed तेज धीमी

Common Setup

  • मंगल/गुरु: PCR + Skew देखें।
  • जब PCR > 1.2 और Skew negative → Bullish confirm।
  • Risk Layer Vega Block चालू।

पूरी Production Pipeline (Data Engine → Predictor → Filter)

कच्चे बाज़ार Data और Trade के बीच पाँच चरण होते हैं:

1. Data Engine     हर कुछ सेकंड में Chain + IV + PCR लाएँ
2. Feature Engine  build_features() → साफ, duplicate हटाएँ, label
3. Predictor       Model → हर Strike की Probability
4. Filter          Greeks + Regime + Prob-band rules → allow/block
5. Executor        paper या live entry, size तय
Enter fullscreen mode Exit fullscreen mode

Data Engine ब्रोकर Feed से जोड़ता है। Feature Engine गलत Data हटाता है। Predictor Probability देता है। Filter सख्त नियम लगाता है — यही वजह है कि Model जो Training में नहीं देखा वो Regime भी सिस्टम झेल लेती है। Executor अनुमत Signal को size वाला Order बनाता है।

Market Microstructure और Liquidity (Model के लिए क्यों ज़रूरी)

Signal तभी काम करता है जब उसे लिक्विडिटी मिले। तीन microstructure facts जो Model मानता है:

  1. Bid-ask Spread छोटे edges को खा जाता है। ATM Option में 0.3% spread हो तो Signal को break-even के लिए 0.3% से ज़्यादा clear करना पड़ता है। spread_pct feature सजावट नहीं — पहला Filter है।
  2. Open Interest build-up support/resistance बनाता है। OI किसी Strike पर जमा हो तो Expiry में वो Strike magnet बनती है। Model OI concentration को नज़रअंदाज़ करे तो pinning effect गलत price करता है।
  3. Volume confirm करता है, OI position बताता है। बढ़ता Volume + बढ़ता OI = नया पैसा (trend confirm)। बढ़ता Volume + घटता OI = squaring (exhaustion)।

Entry भरोसा करने से पहले: spread tight, OI slope signal direction के साथ, volume exhaustion pattern में न हो।

Volatility Regime Detection (असली Code)

Market stationary नहीं है। Calm IV में सीखा Model vol spike में बिगड़ता है। Vol Index से Regime पहचानें:

# Mac / Linux / Termux
python3 regime.py
# Windows CMD
py regime.py
Enter fullscreen mode Exit fullscreen mode
def regime_state(vix, vix_ma20):
    z = (vix - vix_ma20) / (vix_ma20 + 1e-9)
    if z > 2.0:
        return "CRASH", 0.5      # size आधा
    if z > 1.0:
        return "STRESS", 0.75    # size घटाएँ
    if z < -1.0:
        return "CALM", 1.0       # full size
    return "NORMAL", 1.0
Enter fullscreen mode Exit fullscreen mode

CRASH state size 50% कर देता है — यही rule 2020 जैसे gaps में naive bots को बचाता है। Model की Probability वही रहती है; बस Executor की Capital adapt करती है।

Execution और Broker Reality

Backtest मानता है fill मध्य (mid) पर मिलेगा। Live fill ask (buy) / bid (sell) पर, plus brokerage और STT। तीन सच्चाइयाँ:

  • Brokerage + Taxes: per-lot flat fee + exchange charges। सस्ते Option का round-trip 0.5-1% का पड़ता है — Backtest में fees_bps रखें, zero नहीं।
  • Slippage: तेज बाज़ार में quoted mid signal और fill के बीच घूमता है। Position size छोटी रखें ताकि slippage edge से कम रहे।
  • Margin: short Options के लिए margin block, long के लिए premium। position_size() function premium risk से size करता है।

कभी ऐसा Backtest profit न दिखाएँ जो fees के बाद live account न दे सके।

Realistic Weekly Routine

Consistency bursts से जीतती है। इस सिस्टम का काम का हफ़्ता:

  • सोमवार: पिछले हफ़्ते का Chain CSV लाएँ, अगर drift alert बजा तो retrain, regime state देखें।
  • मंगल–गुरु: market hours में paper loop चलाएँ, हर entry/exit लॉग करें (Model की Probability + Filter का फैसला)।
  • शुक्रवार: expiry week हो तो DTE limits कसें, realized vs predicted देखें।
  • वीकेंड: एक regulatory update पढ़ें, broker margin rules बदले तो check करें।

ये get-rich loop नहीं — measurement loop है। 8-12 हफ़्ते ईमानदार paper logs के बाद असली edge पता चलती है।

Worked Example — पूरा नंबरों के साथ

मान लें Nifty 50 Spot = 24800, ATM Strike = 24800, Expiry 8 दिन दूर (DTE=8)।

Input Value
Spot 24800
ATM Strike 24800
IV 16%
Delta 0.50
Gamma 0.002
Theta -12 रु/दिन
Vega 35
OI 90000
Volume 6000
PCR 0.95
India VIX 14.5

Step 1 — Features बनाएँ: build_features() चलाने पर moneyness = 0, iv_skew ATM पर 0, theta_per_delta = -12/0.50 = -24

Step 2 — Model Prediction: मान लें Model ने prob_up = 0.62 दिया।

Step 3 — Risk Layer: 0.58 <= 0.62 <= 0.80 ✅, DTE=8 > 1 ✅, Vega=35 > 8 ❌ → BLOCK (Volatility बहुत है)।

यही अंतर है सही और गलत के बीच। Model bullish है पर Risk Layer ने रोका — क्योंकि Vega=35 मतलब IV बहुत high, ऐसे में Theta जल्दी काटता।

Step 4 — अगर Vega=5 होता: तब Risk Layer allow करती, size = (50000 * 0.01)/24 ≈ 20 units। 20 units का premium risk = 20 × 89 ≈ 1780 रु — छोटा, manageable।

ज़्यादा FAQ

प्र६. Vega high होने पर क्या करें?
या तो wait करें जब तक IV शांत न हो, या size आधा करें।

प्र७. DTE कम होने पर क्यों रोकें?
Theta तेज़ हो जाता है — हर दिन value घटती है, edge मार जाती है।

प्र८. Paper Trade कितने दिन?
कम से कम 20-30 trading sessions, ताकि अलग-अलग Regime देखें।

प्र९. Model कब Retrain करें?
जब drift alert बजे (feature mean 2 std घूमे) या हर सोमवार।

प्र१०. Loss कैसे control करें?
हर trade का max loss = premium ही (long option) → position size से ही सीमित।

Practical Tips Retail Traders के लिए

  • शुरू में सिर्फ 1 Index (Nifty या Bank Nifty) पर focus करें।
  • एक बार में 2-3 Strikes से ज़्यादा मत लें।
  • Expiry week में DTE limit कसें (<= 3)।
  • अपना हर trade लॉग करें — बिना लॉग के सुधार नहीं।
  • कभी भी पूरा capital एक trade में मत लगाएँ।

Glossary (और Terms)

  • Strike Price: वो कीमत जिस पर Option चलेगा।
  • Premium: Option खरीदने की कीमत (हमारा max loss)।
  • Spot: अंतर्निहित का वर्तमान भाव।
  • IV Crush: Expiry के पास IV गिरना (value टूटना)।
  • Hedging: एक position से दूसरे का risk कवर करना।
  • Break-even: वो Spot जहाँ न तो profit न loss।
  • Leverage: छोटी रकम से बड़ी exposure (F&O में common, risky)। ## Strategy Variations (अलग-अलग सेटअप)

एक ही Pipeline से कई रणनीतियाँ चल सकती हैं बिना Model बदले:

  • Directional Long: prob_up > 0.62 → ATM Call लें, DTE 5-15।
  • Spread: prob_up बैंड में + IV high → Bull Call Spread (limit Vega)।
  • Contrarian: PCR > 1.2 + Skew negative → mean-reversion Put sell (sophisticated, margin चाहिए)।
  • Vol Play: IV crush से बचने के लिए Expiry week में Long शुरू न करें।

हर वेरिएशन अलग Risk Layer सेटिंग्स लेता है — Vega limit, DTE limit, size multiplier अलग।

Model Comparison (कौन सा लें)

Model Speed Accuracy Phone fit
Logistic Regression सबसे तेज़ कम बढ़िया
HistGradientBoosting तेज़ अच्छी बढ़िया
XGBoost GPU तेज़ सबसे अच्छी wheel चाहिए
LightGBM सबसे तेज़ अच्छी बढ़िया

Retail के लिए HistGradientBoosting या LightGBM शुरुआत के लिए सही हैं — तेज़, सटीक, कम झंझट।

Troubleshooting (जब कुछ टूटे)

  • Model हमेशा 0.5 दे रहा → Features में bug, या Label leak।
  • Backtest profit, Live loss → fees/slippage नहीं जोड़ा।
  • डाटा गायब → Feed gap, stale mid मत भेजें Model को।
  • Overfit → max_depth कम करें, Early Stop चालू करें।
  • Regime बदला → Retrain, drift alert सुनें।

ये सब कॉमन हैं — हर एक का fix ऊपर लिखा है। जल्दबाज़ी मत करो, लॉग देखो।

Common Mistakes

  1. PCR को अकेला पढ़ना।
  2. Skew की अनदेखी।
  3. बिना Vega Block के बड़ी Position।

FAQ

प्र१. PCR क्या है?
Put OI / Call OI — बाज़ार भावना।

प्र२. Skew क्यों देखें?
बताता है Calls या Puts महँगीं — Insurance माँग कहाँ है।

प्र३. Bank Nifty Nifty से अलग क्यों?
Bank Nifty ज़्यादा Volatile — छोटी Vega limit।

प्र४. AI कहाँ जोड़ें?
PCR + Skew को Feature के रूप में Model में।

प्र५. शुरुआत?
PCR निकालें, Skew देखें, Paper Trade।

Glossary

  • PCR: Put OI / Call OI।
  • Skew: IV का फर्क।
  • VIX: Volatility Index।
  • CE/PE: Call/Put।
  • OI: Open Interest।

Footer

Shakti Tiwari — Options Trader, XGBoost Expert।
Books: Option Trading with AI (B0H9ZNTBPK) · The AI Opportunity (B0HBBFKDQF)
Site: optiontradingwithai.in · मुफ़्त मदद: shaktitiwari715@gmail.com
Dev.to: @shaktitiwari · X: @shaktitiwari

Top comments (0)