یہ حکمت عملی وی ڈبلیو اے پی (بڑے پیمانے پر وزن والی اوسط قیمت) اور سپر ٹرینڈ اشارے کو جوڑتی ہے۔ یہ وی ڈبلیو اے پی کے سلسلے میں قیمت کی پوزیشن اور سپر ٹرینڈ اشارے کی سمت کا موازنہ کرکے خرید اور فروخت کے سگنل کا تعین کرتی ہے۔ جب قیمت وی ڈبلیو اے پی سے اوپر ہوتی ہے اور سپر ٹرینڈ مثبت ہوتا ہے تو خرید کا سگنل تیار ہوتا ہے ، جبکہ جب قیمت وی ڈبلیو اے پی سے نیچے ہوتی ہے اور سپر ٹرینڈ منفی ہوتا ہے تو فروخت کا سگنل تیار ہوتا ہے۔ یہ حکمت عملی پچھلی سگنل کی حالت کو ریکارڈ کرکے ڈپلیکیٹ سگنل تیار کرنے سے بھی گریز کرتی ہے جب تک کہ مخالف سگنل ظاہر نہ ہو۔
وی ڈبلیو اے پی اور سپر ٹرینڈ خرید / فروخت کی حکمت عملی کا مقصد دو مختلف اقسام کے اشارے کو یکجا کرکے مارکیٹ کے رجحانات اور ممکنہ موڑ کے مقامات کو جامع طور پر حاصل کرنا ہے۔ حکمت عملی کا منطق واضح اور لاگو اور بہتر بنانا آسان ہے۔ تاہم ، حکمت عملی کی کارکردگی پیرامیٹر کے انتخاب پر منحصر ہے اور اس میں رسک مینجمنٹ کے اقدامات کا فقدان ہے۔ عملی ایپلی کیشنز میں ، مارکیٹ کے مختلف حالات اور تجارتی ضروریات کے مطابق ڈھالنے کے لئے مزید اصلاح اور اصلاح کی ضرورت ہے۔
/*backtest start: 2023-05-28 00:00:00 end: 2024-06-02 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="VWAP and Super Trend Buy/Sell Strategy", shorttitle="VWAPST", overlay=true) //===== VWAP ===== showVWAP = input.bool(title="Show VWAP", defval=true, group="VWAP") VWAPSource = input.source(title="VWAP Source", defval=hl2, group="VWAP") VWAPrice = ta.vwap(VWAPSource) plot(showVWAP ? VWAPrice : na, color=color.teal, title="VWAP", linewidth=2) //===== Super Trend ===== showST = input.bool(true, "Show SuperTrend Indicator", group="Super Trend") Period = input.int(title="ATR Period", defval=10, group="Super Trend") Multiplier = input.float(title="ATR Multiplier", defval=2.0, group="Super Trend") // Super Trend ATR Up = hl2 - (Multiplier * ta.atr(Period)) Dn = hl2 + (Multiplier * ta.atr(Period)) var float TUp = na var float TDown = na TUp := na(TUp[1]) ? Up : close[1] > TUp[1] ? math.max(Up, TUp[1]) : Up TDown := na(TDown[1]) ? Dn : close[1] < TDown[1] ? math.min(Dn, TDown[1]) : Dn var int Trend = na Trend := na(Trend[1]) ? 1 : close > TDown[1] ? 1 : close < TUp[1] ? -1 : Trend[1] Tsl = Trend == 1 ? TUp : TDown linecolor = Trend == 1 ? color.green : color.red plot(showST ? Tsl : na, color=linecolor, style=plot.style_line, linewidth=2, title="SuperTrend") // Buy/Sell Conditions var bool previousBuysignal = false var bool previousSellsignal = false buysignal = not previousBuysignal and Trend == 1 and close > VWAPrice sellsignal = not previousSellsignal and Trend == -1 and close < VWAPrice // Ensure the signals are not repetitive if (buysignal) previousBuysignal := true previousSellsignal := false else if (sellsignal) previousBuysignal := false previousSellsignal := true // Execute buy and sell orders if (buysignal) strategy.entry("Buy", strategy.long) if (sellsignal) strategy.entry("Sell", strategy.short) // Plot Buy/Sell Labels //plotshape(buysignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", textcolor=color.white, size=size.normal) //plotshape(sellsignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", textcolor=color.white, size=size.normal)