یہ حکمت عملی ایک مخصوص مدت میں قیمت اور حجم کی تقسیم کا تجزیہ کرکے خرید و فروخت کے سگنل پیدا کرنے کے لئے حجم ہیٹ میپ اور ریئل ٹائم قیمت کو جوڑتی ہے۔ اس حکمت عملی میں پہلے موجودہ قیمت اور مقررہ قیمت کی حد کے فیصد کی بنیاد پر کئی قیمت کی سطحوں کا حساب لگایا جاتا ہے۔ اس کے بعد یہ گذشتہ مدت میں ہر قیمت کی سطح پر خرید و فروخت کے حجم کو گنتی ہے اور مجموعی خرید و فروخت کے حجم کا حساب لگاتا ہے۔ لیبلوں کا رنگ مجموعی خرید و فروخت کے حجم کی بنیاد پر طے ہوتا ہے۔ اس کے علاوہ ، حکمت عملی میں حقیقی وقت کی قیمت کے منحنی خطوط کا نقشہ بنایا جاتا ہے۔ مزید برآں ، حکمت عملی میں ای ایم اے اور وی ڈبلیو اے پی جیسے اشارے شامل ہوتے ہیں تاکہ قیمت اور حجم کے ساتھ ان کے تعلقات کی بنیاد پر خرید و فروخت کے سگنل پیدا کیے جاسکیں۔ جب خرید کی شرائط پوری ہوجاتی ہیں تو خرید کا سگنل پیدا ہوتا ہے ، اور اس سے پہلے کوئی سگنل نہیں ہوا ہے۔ جب فروخت کی شرائط پوری ہوجاتی ہیں ، یا دو لگاتار سرخ موم بتیاں ہیں ، اور اس سے پہلے کوئی سگنل نہیں ہوا ہے۔
یہ حکمت عملی حجم ہیٹ میپ ، ریئل ٹائم قیمت ، اور متعدد تکنیکی اشارے کو ملا کر خرید و فروخت کے سگنل تیار کرتی ہے ، جس سے ایک خاص حوالہ کی قیمت ملتی ہے۔ حکمت عملی کا فائدہ اس کی قیمت اور حجم کی تقسیم کو بدیہی طور پر ظاہر کرنے اور سگنل پیدا کرنے کے لئے متعدد عوامل پر جامع طور پر غور کرنے کی صلاحیت میں ہے۔ تاہم ، حکمت عملی میں کچھ حدود اور خطرات بھی ہیں ، جیسے پیرامیٹر کی ترتیبات کا اثر ، اشارے کی پسماندگی کی نوعیت ، اور رجحان سازی کی منڈیوں پر انحصار۔ لہذا ، عملی ایپلی کیشنز میں ، حکمت عملی کی مزید اصلاح اور بہتری کی ضرورت ہے ، جیسے زیادہ اشارے متعارف کرانا ، سگنل کی حالت کو بہتر بنانا ، خطرے کے کنٹرول کو بڑھانا ، وغیرہ۔ حکمت عملی کی استحکام اور منافع بخش بنانے کے ل.
/*backtest start: 2024-04-01 00:00:00 end: 2024-04-30 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Buy and Sell Volume Heatmap with Real-Time Price Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10) // Settings for Volume Heatmap lookbackPeriod = input.int(100, title="Lookback Period") baseGreenColor = input.color(color.green, title="Buy Volume Color") baseRedColor = input.color(color.red, title="Sell Volume Color") priceLevels = input.int(10, title="Number of Price Levels") priceRangePct = input.float(0.01, title="Price Range Percentage") labelSize = input.string("small", title="Label Size", options=["tiny", "small", "normal", "large"]) showLabels = input.bool(true, title="Show Volume Labels") // Initialize arrays to store price levels, buy volumes, and sell volumes var float[] priceLevelsArr = array.new_float(priceLevels) var float[] buyVolumes = array.new_float(priceLevels) var float[] sellVolumes = array.new_float(priceLevels) // Calculate price levels around the current price for i = 0 to priceLevels - 1 priceLevel = close * (1 + (i - priceLevels / 2) * priceRangePct) // Adjust multiplier for desired spacing array.set(priceLevelsArr, i, priceLevel) // Calculate buy and sell volumes for each price level for i = 0 to priceLevels - 1 level = array.get(priceLevelsArr, i) buyVol = 0.0 sellVol = 0.0 for j = 1 to lookbackPeriod if close[j] > open[j] if close[j] >= level and low[j] <= level buyVol := buyVol + volume[j] else if close[j] <= level and high[j] >= level sellVol := sellVol + volume[j] array.set(buyVolumes, i, buyVol) array.set(sellVolumes, i, sellVol) // Determine the maximum volumes for normalization maxBuyVolume = array.max(buyVolumes) maxSellVolume = array.max(sellVolumes) // Initialize cumulative buy and sell volumes for the current bar cumulativeBuyVol = 0.0 cumulativeSellVol = 0.0 // Calculate colors based on the volumes and accumulate volumes for the current bar for i = 0 to priceLevels - 1 buyVol = array.get(buyVolumes, i) sellVol = array.get(sellVolumes, i) cumulativeBuyVol := cumulativeBuyVol + buyVol cumulativeSellVol := cumulativeSellVol + sellVol // Determine the label color based on which volume is higher labelColor = cumulativeBuyVol > cumulativeSellVol ? baseGreenColor : baseRedColor // Initialize variables for plotshape var float shapePosition = na var color shapeColor = na if cumulativeBuyVol > 0 or cumulativeSellVol > 0 if showLabels labelText = "Buy: " + str.tostring(cumulativeBuyVol) + "\nSell: " + str.tostring(cumulativeSellVol) label.new(x=bar_index, y=high + (high - low) * 0.02, text=labelText, color=color.new(labelColor, 0), textcolor=color.white, style=label.style_label_down, size=labelSize) else shapePosition := high + (high - low) * 0.02 shapeColor := labelColor // Plot the shape outside the local scope plotshape(series=showLabels ? na : shapePosition, location=location.absolute, style=shape.circle, size=size.tiny, color=shapeColor) // Plot the real-time price on the chart plot(close, title="Real-Time Price", color=color.blue, linewidth=2, style=plot.style_line) // Mpullback Indicator Settings a = ta.ema(close, 9) b = ta.ema(close, 20) e = ta.vwap(close) volume_ma = ta.sma(volume, 20) // Calculate conditions for buy and sell signals buy_condition = close > a and close > e and volume > volume_ma and close > open and low > a and low > e // Ensure close, low are higher than open, EMA, and VWAP sell_condition = close < a and close < b and close < e and volume > volume_ma // Store the previous buy and sell conditions var bool prev_buy_condition = na var bool prev_sell_condition = na // Track if a buy or sell signal has occurred var bool signal_occurred = false // Generate buy and sell signals based on conditions buy_signal = buy_condition and not prev_buy_condition and not signal_occurred sell_signal = sell_condition and not prev_sell_condition and not signal_occurred // Determine bearish condition (close lower than the bottom 30% of the candle's range) bearish = close < low + (high - low) * 0.3 // Add sell signal when there are two consecutive red candles and no signal has occurred two_consecutive_red_candles = close[1] < open[1] and close < open sell_signal := sell_signal or (two_consecutive_red_candles and not signal_occurred) // Remember the current conditions for the next bar prev_buy_condition := buy_condition prev_sell_condition := sell_condition // Update signal occurred status signal_occurred := buy_signal or sell_signal // Plot buy and sell signals plotshape(buy_signal, title="Buy", style=shape.labelup, location=location.belowbar, color=color.green, text="Buy", textcolor=color.white) plotshape(sell_signal, title="Sell", style=shape.labeldown, location=location.abovebar, color=color.red, text="Sell", textcolor=color.white) // Strategy entry and exit if buy_signal strategy.entry("Buy", strategy.long) if sell_signal strategy.entry("Sell", strategy.short)