TradingView Supply Demand Zone और Order Block Indicator Pine Script v6
TradingView के लिए Pine Script v6 indicator से Supply Zone, Demand Zone और pivot-based Order Blocks देखें। पूरा code, settings और उपयोग करने का तरीका।
TradingView पर Supply Zone, Demand Zone और Order Block को एक साथ देखने के लिए यह Pine Script v6 indicator उपयोग कर सकते हैं। इसमें BUY/SELL signals और target predictions शामिल नहीं हैं; चार्ट पर केवल संभावित price zones दिखाए जाते हैं।
Supply Zone और Demand Zone क्या हैं?
Supply Zone: चार्ट पर लाल क्षेत्र संभावित selling pressure का क्षेत्र दर्शाता है। Demand Zone: हरा क्षेत्र संभावित buying interest का क्षेत्र दर्शाता है। ये क्षेत्र price pivots और ATR के आधार पर बनते हैं, इसलिए इन्हें निश्चित support/resistance या institutional order data न मानें।
TradingView में Indicator कैसे लगाएँ?
- TradingView खोलें और किसी chart पर जाएँ।
- नीचे Pine Editor खोलें और पुराना code हटाएँ।
- नीचे दिया पूरा Pine Script paste करें।
- Save पर क्लिक करके Add to chart चुनें।
- Settings में Pivot Length, Zone Height, Supply/Demand visibility और zones की संख्या बदलें।
Order Blocks और Zones के लिए Pine Script v6 Code
यह indicator confirmed pivot highs से supply zones और confirmed pivot lows से demand zones बनाता है। Pivot confirmation के कारण zone बनने में कुछ candles की देरी होती है।
//@version=6
indicator("Order Blocks + Supply & Demand Zones", overlay=true, max_boxes_count=50)
// SETTINGS
groupOB = "Order Block Settings"
showOrderBlocks = input.bool(true, "Show Order Blocks", group=groupOB)
pivotLen = input.int(5, "Pivot Length", minval=2, maxval=50, group=groupOB)
atrLen = input.int(14, "ATR Length", minval=1, group=groupOB)
zoneATR = input.float(0.5, "Zone Height (ATR)", minval=0.1, step=0.1, group=groupOB)
extendZones = input.bool(true, "Extend Zones Right", group=groupOB)
keepZones = input.int(10, "Zones to Keep (each type)", minval=1, maxval=20, group=groupOB)
groupDisplay = "Display Settings"
showSupply = input.bool(true, "Show Supply Zones", group=groupDisplay)
showDemand = input.bool(true, "Show Demand Zones", group=groupDisplay)
showMidline = input.bool(false, "Show Zone Midline", group=groupDisplay)
atr = ta.atr(atrLen)
pivotHigh = ta.pivothigh(high, pivotLen, pivotLen)
pivotLow = ta.pivotlow(low, pivotLen, pivotLen)
zoneExtension = extendZones ? extend.right : extend.none
var box[] supplyBoxes = array.new_box()
var box[] demandBoxes = array.new_box()
var line[] supplyLines = array.new_line()
var line[] demandLines = array.new_line()
// SUPPLY ZONES
if showOrderBlocks and showSupply and not na(pivotHigh)
float topPrice = high[pivotLen]
float bottomPrice = topPrice - atr[pivotLen] * zoneATR
float midPrice = (topPrice + bottomPrice) / 2.0
box newSupply = box.new(left=bar_index - pivotLen, top=topPrice, right=bar_index, bottom=bottomPrice, xloc=xloc.bar_index, extend=zoneExtension, bgcolor=color.new(color.red, 85), border_color=color.red)
array.push(supplyBoxes, newSupply)
if showMidline
line newSupplyLine = line.new(x1=bar_index - pivotLen, y1=midPrice, x2=bar_index, y2=midPrice, xloc=xloc.bar_index, extend=zoneExtension, color=color.new(color.red, 25), style=line.style_dashed)
array.push(supplyLines, newSupplyLine)
if array.size(supplyBoxes) > keepZones
box.delete(array.shift(supplyBoxes))
if array.size(supplyLines) > keepZones
line.delete(array.shift(supplyLines))
// DEMAND ZONES
if showOrderBlocks and showDemand and not na(pivotLow)
float bottomPrice = low[pivotLen]
float topPrice = bottomPrice + atr[pivotLen] * zoneATR
float midPrice = (topPrice + bottomPrice) / 2.0
box newDemand = box.new(left=bar_index - pivotLen, top=topPrice, right=bar_index, bottom=bottomPrice, xloc=xloc.bar_index, extend=zoneExtension, bgcolor=color.new(color.green, 85), border_color=color.green)
array.push(demandBoxes, newDemand)
if showMidline
line newDemandLine = line.new(x1=bar_index - pivotLen, y1=midPrice, x2=bar_index, y2=midPrice, xloc=xloc.bar_index, extend=zoneExtension, color=color.new(color.green, 25), style=line.style_dashed)
array.push(demandLines, newDemandLine)
if array.size(demandBoxes) > keepZones
box.delete(array.shift(demandBoxes))
if array.size(demandLines) > keepZones
line.delete(array.shift(demandLines))
// HIDE / RESTORE EXISTING ZONES WHEN DISPLAY OPTIONS CHANGE
if barstate.islast
if not showOrderBlocks or not showSupply
if array.size(supplyBoxes) > 0
for i = 0 to array.size(supplyBoxes) - 1
box.set_bgcolor(array.get(supplyBoxes, i), color.new(color.red, 100))
box.set_border_color(array.get(supplyBoxes, i), color.new(color.red, 100))
if array.size(supplyLines) > 0
for i = 0 to array.size(supplyLines) - 1
line.set_color(array.get(supplyLines, i), color.new(color.red, 100))
else
if array.size(supplyBoxes) > 0
for i = 0 to array.size(supplyBoxes) - 1
box.set_bgcolor(array.get(supplyBoxes, i), color.new(color.red, 85))
box.set_border_color(array.get(supplyBoxes, i), color.red)
if array.size(supplyLines) > 0
for i = 0 to array.size(supplyLines) - 1
line.set_color(array.get(supplyLines, i), color.new(color.red, 25))
if not showOrderBlocks or not showDemand
if array.size(demandBoxes) > 0
for i = 0 to array.size(demandBoxes) - 1
box.set_bgcolor(array.get(demandBoxes, i), color.new(color.green, 100))
box.set_border_color(array.get(demandBoxes, i), color.new(color.green, 100))
if array.size(demandLines) > 0
for i = 0 to array.size(demandLines) - 1
line.set_color(array.get(demandLines, i), color.new(color.green, 100))
else
if array.size(demandBoxes) > 0
for i = 0 to array.size(demandBoxes) - 1
box.set_bgcolor(array.get(demandBoxes, i), color.new(color.green, 85))
box.set_border_color(array.get(demandBoxes, i), color.green)
if array.size(demandLines) > 0
for i = 0 to array.size(demandLines) - 1
line.set_color(array.get(demandLines, i), color.new(color.green, 25))
महत्वपूर्ण बातें
- लाल बॉक्स Supply Zone और हरा बॉक्स Demand Zone दर्शाता है।
- Pivot Length बढ़ाने पर zones कम और अधिक देर से बन सकते हैं; इसे घटाने पर zones अधिक बन सकते हैं।
- यह script market की भविष्यवाणी या लाभ की गारंटी नहीं देता।
- वास्तविक पूँजी लगाने से पहले इसे Paper Trading या Bar Replay में जाँचें।
Disclaimer: यह शैक्षिक जानकारी है, निवेश सलाह नहीं। Trading में जोखिम होता है।
