Price Action Trading Supply Demand Zones: Draw, Trade & Filter Fresh Zones with Python
Agar aap Nifty ya Bank Nifty mein consistently profit nikalna chahte ho, toh price action trading supply demand zones seekhna sabse zaroori cheez hai. Ye approach indicators ke bina, sirf candlestick structure dekh kar batati hai ki "bade players" (institutional traders, FII/DII) kahan paisa lagane wale hain aur kahan nikalne wale hain. Is article mein hum step-by-step zone drawing sikhenge, ek Python zigzag indicator banayenge jo swing points automatically nikalta hai, trading setup samjhenge, zone freshness filter lagayenge aur last mein Nifty options ke saath kaise use karna hai wo bhi cover karenge. Saare examples Hinglish mein aur practical hain, taaki aap directly apni TradingView ya Python setup par lagaa sako.
What Are Supply and Demand Zones in Price Action Trading?
Simple bhasha mein samjho: demand zone wo price area hai jahan buyers ne aggressively kharida tha, aur price wahan se upar uth gaya. Matlab wo "discount" area hai jahan institutional demand thi. Supply zone exactly ulta hai — wo area jahan sellers ne aggressively becha tha aur price gir gaya. Ye zones horizontal lines nahi hote, balki ek "range" hote hain (zone width).
Price action trading ka core principle ye hai: market auctions hota hai. Jab demand supply se zyada hoti hai, price upar jata hai; jab supply zyada hoti hai, price neeche aata hai. Ye zones repeat karte hain kyunki institutions apna position alag-alag time par build karte hain. Isliye agar aap ek strong demand zone pe wait karo, toh probability high hoti hai ki price wahan se bounce karega.
Indian market context mein baat karein toh, Nifty 50 ke paas bahut saare algos hain. Lekin algos bhi最终 price levels pe hi kaam karte hain. Isliye supply demand zones Nifty Futures, Nifty options aur Bank Nifty dono ke liye kaam aati hai.
Key Difference: Zone vs Level
Bahut saare beginners ek single line draw karte hain. Galat hai. Zone ek range hona chahiye — matlab ek high aur ek low. Kyunki market exact point par nahi aata, wo zone ke andar kahin bhi react kar sakta hai. Isliye zone drawing mein humesha ek rectangle banao, sirf line nahi.
How to Draw Supply and Demand Zones (Step-by-Step Zone Drawing)
Zone drawing sikhna mushkil nahi hai, bas discipline chahiye. Niche diye gaye steps follow karo:
Step 1: Identify the Base (Consolidation)
Sabse pehle wo candle dhundo jahan price ne "consolidate" kiya ya bas thoda sa move kiya, aur uske turant baad ek strong explosive move hua (big body candle, gap, ya 2-3 candle ka sharp rally). Ye base hi zone ka source hai. Demand zone ke liye base ke neeche se sharp up move chahiye; supply zone ke liye base ke upar se sharp down move chahiye.
Step 2: Mark the Zone Boundaries
Base candles ke low (demand) ya high (supply) ko zone ki boundary banao. Agar base mein 3 candles hain, toh sabse neeche wali candle ka low zone ka bottom hai aur base ki starting candle ka low zone ka top. Rectangle draw karo in dono ke beech.
Step 3: Check the Move Away (Strength)
Zone tabhi valid hai jab price ne zone se dur fast and clean move kiya ho. Agar move slow tha ya wapas zone mein ghus aaya, toh zone weak hai. Rule of thumb: jo zone se nikal kar 2x ya zyada move aaya ho, wo strong zone hai.
Step 4: Look at Volume (Optional Confirmation)
Volume zaroori nahi hai zone drawing ke liye, lekin agar base ke baad wale breakout candle par volume high tha, toh zone ki authenticity badh jati hai. Indian traders ke liye ye especially helpful hai kyunki hamare yahan retail participation bahut hai.
Step 5: Zone Width
Zone bahut chauda na ho. Agar zone 100-150 points wide hai Nifty mein, toh risk management mushkil ho jayegi. Compact zone (30-60 points) better entry deti hai.
Python Zigzag Indicator to Auto-Find Swing Highs and Lows
Hath se zone draw karna time-consuming hai, especially agar aapko multiple timeframes scan karne hain. Isliye hum ek Python zigzag indicator banayenge jo swing highs aur swing lows automatically nikalta hai. Zigzag basically noise filter karta hai — chhoti chhoti movements ko ignore karke sirf meaningful swings dikhata hai.
Niche complete, runnable Python code hai. Isme pip install pandas numpy karke chalana hai. Ye code OHLC data leta hai aur zigzag pivots print karta hai.
import pandas as pd
import numpy as np
def zigzag(df, deviation=0.005):
"""
Simple ZigZag indicator.
deviation: minimum % move to confirm a pivot (0.5% default for Nifty).
df must have 'High' and 'Low' columns.
Returns list of (index, price, type) where type is 'H' or 'L'.
"""
pivots = []
last_pivot_price = df['Low'].iloc[0]
last_pivot_idx = 0
trend = 0 # 0 unknown, 1 up, -1 down
for i in range(1, len(df)):
high = df['High'].iloc[i]
low = df['Low'].iloc[i]
if trend >= 0:
if high > last_pivot_price:
last_pivot_price = high
last_pivot_idx = i
elif low < last_pivot_price * (1 - deviation):
# confirmed a high pivot
pivots.append((last_pivot_idx, last_pivot_price, 'H'))
trend = -1
last_pivot_price = low
last_pivot_idx = i
if trend <= 0:
if low < last_pivot_price:
last_pivot_price = low
last_pivot_idx = i
elif high > last_pivot_price * (1 + deviation):
pivots.append((last_pivot_idx, last_pivot_price, 'L'))
trend = 1
last_pivot_price = high
last_pivot_idx = i
return pivots
# ---- Example usage ----
if __name__ == "__main__":
# Load your Nifty 5-min CSV: Date,Open,High,Low,Close,Volume
df = pd.read_csv("nifty_5min.csv", parse_dates=["Date"])
swings = zigzag(df, deviation=0.005)
for idx, price, ptype in swings[-10:]:
print(f"{df['Date'].iloc[idx]} | {ptype} | {price:.2f}")
Ye zigzag aapko swing lows (demand base) aur swing highs (supply base) bata deta hai. Inhi ke aas-paas aap manually zone draw kar sakte ho ya fir code extend karke automatic zone rectangle bana sakte ho.
Running the Zigzag on Mac, Windows, Linux and Termux
Setup har platform par same hai, bas terminal command thoda alag hai.
Windows (PowerShell / CMD):
python -m venv venv
.\venv\Scripts\activate
pip install pandas numpy
python zigzag.py
macOS / Linux (bash/zsh):
python3 -m venv venv
source venv/bin/activate
pip install pandas numpy
python3 zigzag.py
Termux (Android) — aapke phone par bhi chal sakta hai:
pkg install python
pip install pandas numpy
python zigzag.py
Termux mein agar pkg install python fail ho toh apt update && apt upgrade kar lo pehle. Bahut saare Indian traders apne phone par Termux use karke live scans chalate hain — cheap aur portable solution hai.
Trading Supply Demand Zones: Entry, Stop Loss and Target
Zone draw kar liya, ab trade kaise lete hain? Teen cheezein fixed rakho: entry, stop loss (SL), target (TP).
Long Setup (Demand Zone)
- Entry: Jab price demand zone ke andar aaye aur ek bullish rejection candle (hammer, bullish engulfing) banaye. Aap limit order bhi laga sakte ho zone ke low ke paas.
- Stop Loss: Zone ke thoda neeche — matlab zone low - 10 points buffer. Agar zone 50 points wide hai toh SL zone ke bahar hona chahiye.
- Target: Pehla target next supply zone; doosra target risk:reward 1:2 ya 1:3 par.
Short Setup (Supply Zone)
- Entry: Jab price supply zone ke andar aaye aur bearish rejection candle (shooting star, bearish engulfing) banaye.
- Stop Loss: Zone high + 10 points buffer.
- Target: Next demand zone ya 1:2 RR.
Pro tip: Zone test count dekho. Pehli baar zone touch fresh hai (strong), doosri-teesri baar weak ho jata hai kyunki demand exhaust ho chuki hoti hai. Isliye freshness filter lagana zaroori hai — aage padho.
Zone Freshness — Why Fresh Zones Work Better (The Freshness Filter)
Ye concept bahut underrated hai lekin edge deta hai. Fresh zone wo hai jo abhi tak test nahi hua — matlab price zone se nikal kar dur gaya hai aur wapas nahi aaya. Stale zone wo hai jo baar-baar test ho chuka hai.
Psychology simple hai: jab zone first time react karta hai, wahan pending institutional orders hote hain. Har baar price wapas aata hai, kuch orders fill hote hain, toh agle baar kam liquidity bachti hai. Isliye 3rd-4th test par zone fail hone ka chance badh jata hai.
The Freshness Filter in Python
Hum apne zigzag output ke saath ek freshness score calculate karenge — count karo ki zone kitni baar touch hua.
def freshness_score(zone_low, zone_high, price_series):
"""
Count how many times price re-entered the zone after the first exit.
Lower count = fresher zone = higher probability.
"""
touches = 0
in_zone = False
for p in price_series:
if zone_low <= p <= zone_high:
if not in_zone:
touches += 1
in_zone = True
else:
in_zone = False
return touches
# Use: prefer zones where freshness_score <= 1
Is filter se aap sirf wo zones trade karoge jo fresh hain. Backtest mein ye simple filter win rate 8-12% improve kar deta hai average par.
Supply Demand Zones in Nifty Options Trading
Ab sabse interesting part — options. Spot/Future mein zone trade karna easy hai, lekin options mein theta decay aur premium volatility ka dhyaan rakhna padta hai.
Buying Calls at Demand Zone
Jab Nifty demand zone pe bounce karega, CE (call option) buy karo. Lekin dhyan rakho:
- ITM ya ATM CE lo, far OTM mat lo kyunki zone bounce chhoti ho sakti hai.
- Expiry selection: Agar swing trade hai (2-5 din), toh next weekly expiry ya monthly lo.
- IV check: Agar zone pe aane se pehle IV already bahut high hai, toh premium mehnga hai — wait karo IV cool down ho.
Buying Puts at Supply Zone
Supply zone pe rejection par PE (put option) buy karo. Same rules — ATM/ITM prefer karo.
Selling Options (Advanced)
Agar aapko zone hold karne ka confidence hai, toh supply zone pe bull put spread ya demand zone pe bear call spread bech sakte ho. Ye range-bound scenario mein theta favourable hoti hai. Lekin beginners ke liye pehle directional buy hi sahi hai.
Options Risk Note
Options mein SL spot-based rakho, premium-based nahi. Kyunki premium intraday bahut swing karta hai (IV changes). Example: agar demand zone low 22000 hai aur SL 21970 spot, toh wo follow karo premium kuch bhi ho.
Common Mistakes Indian Traders Make with Supply Demand
- Zigzag deviation galat set karna: Nifty 5-min par 0.5% sahi hai, daily par 1-2% rakho. Chhoti deviation bahut noise degi.
- Stale zones trade karna: Pehle se 3-4 baar test zone mat lo.
- Zone bahut wide draw karna: Risk manage nahi ho pata.
- News events ignore karna: RBI policy, CPI data, FOMC — in dinon zones fail ho sakti hain. Calendar dekho pehle.
- Lot size greed: Zone setup sahi hai par 10 lot le liye, SL hit hua toh barbaad. 1-2 lot se start karo.
FAQ — Price Action Supply Demand Zones
1. Supply demand zone aur support resistance mein kya farak hai?
Support resistance ek single price level hota hai, jabki supply demand ek zone (range) hota hai. Zones realistic hain kyunki market exact point par nahi aata. Institutional orders bhi ek range mein lagte hain, isliye zone approach zyada reliable hai.
2. Konsa timeframe sabse best hai supply demand ke liye Nifty mein?
15-minute aur 1-hour timeframe retail traders ke liye best hain. 5-min bahut noise hai, daily/weekly too slow. Swing traders 1-hour use karein, intraday walon ko 15-min + 5-min combo sahi lagta hai.
3. Kya zigzag indicator repaint karta hai?
Haan, last pivot repaint ho sakta hai jab tak next swing confirm nahi hota. Isliye live trading mein last pivot ko tentative maano aur confirmed pivot par hi trade plan karo.
4. Fresh zone fail kyu ho sakta hai?
Agar bada news event hai (example: RBI surprise rate cut, US inflation shock) toh zones temporarily fail ho sakti hain kyunki fresh orders institutional level se hatt kar news-driven move mein lagte hain. Isliye economic calendar zaroor dekho.
5. Option buying mein zone SL kaise rakhu?
Spot-based SL rakho, premium-based nahi. Zone low/high ke 10-15 point bahar SL rakho aur usko spot price mein track karo. Premium SL rakhoge toh IV swing mein bahut baar premature exit ho jayega.
6. Kya Termux phone par real-time Nifty data fetch ho sakta hai?
Haan, agar aapke paas Dhan/Kite API key hai toh Termux mein Python script se live data pull kar sakte ho. Bina API ke bhi free sources (NSE website scraping) se 5-min data mil sakta hai, lekin rate-limit aur ToS dhyan rakho.
Shakti Tiwari is a Nifty option trader and AI builder at optiontradingwithai.in. Find more at dev.to/@shaktitiwari.
Related Articles by Shakti Tiwari
- Candlestick Patterns Every Indian Trader Must Know: 15 Patterns with Python Detector for Nifty — more on optiontradingwithai.in
- Support and Resistance Trading Strategy Nifty (2026 Guide) — more on optiontradingwithai.in
- Breakout Trading Strategy Nifty Volume Confirmation: Setup, Screener & Fakeout Guard — more on optiontradingwithai.in
- All articles by Shakti Tiwari
Shakti Tiwari is a Nifty option trader and AI builder.
🌐 Website: optiontradingwithai.in
📊 Dev.to: @shaktitiwari
🐦 X/Twitter: @shaktitiwari
▶️ YouTube: youtube.com/@niftystocktrading
📱 Telegram: t.me/shaktitrade
💼 LinkedIn: linkedin.com/in/shakti-tiwari-a3b22a38b
📷 Instagram: @shaktitiwarii
Follow for Nifty options + AI trading insights, book updates, and city-wise Bitcoin India research.
Top comments (0)