اس حکمت عملی میں ویو ٹرینڈ آسکیلیٹر (ڈبلیو ٹی) اور حجم وزن شدہ اوسط قیمت (وی ڈبلیو اے پی) کو یکجا کیا گیا ہے تاکہ قیمت اور اشارے کے مابین اختلافات کی نشاندہی کرکے ممکنہ رجحان الٹ کے مواقع کو حاصل کیا جاسکے۔ حکمت عملی میں اسٹاپ نقصان کی سطح کا تعین کرنے کے لئے اوسط حقیقی رینج (اے ٹی آر) کا استعمال کیا جاتا ہے اور اکاؤنٹ کے خطرے کے فیصد کی بنیاد پر متحرک طور پر پوزیشن سائزنگ کو ایڈجسٹ کیا جاتا ہے۔ حکمت عملی کی اہم طاقتیں اس کی رجحان کی پیروی کرنے کی صلاحیتوں اور رسک مینجمنٹ کے اقدامات میں ہیں ، لیکن اس میں ہلچل مچانے والی منڈیوں میں نقصان ہوسکتا ہے۔ اصلاح کی سمتوں میں اضافی فلٹر شامل کرنا اور اندراج اور خارجی قوانین کو بہتر بنانا شامل ہے۔
ویو ٹرینڈ اوسیلیٹر تغیراتی حکمت عملی میں ویو ٹرینڈ اشارے اور حجم وزن شدہ اوسط قیمت کو مل کر ممکنہ رجحان الٹ کے مواقع کی نشاندہی کی جاتی ہے۔ اس حکمت عملی کی طاقت اس کی رجحان کی پیروی کرنے کی صلاحیتوں اور رسک مینجمنٹ اقدامات میں ہے ، لیکن اسے ہلکی مارکیٹوں میں خطرات کا سامنا کرنا پڑ سکتا ہے۔ اس حکمت عملی کو اضافی فلٹرز ، متحرک پیرامیٹر ایڈجسٹمنٹ ، اور داخلے اور باہر نکلنے کے بہتر قوانین متعارف کرانے سے مزید بہتر بنایا جاسکتا ہے۔ حکمت عملی کو نافذ کرنے سے پہلے مکمل بیک ٹیسٹنگ اور مستقبل کا تجزیہ ضروری ہے۔
/*backtest start: 2023-05-22 00:00:00 end: 2024-05-27 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("PipShiesty Swagger", overlay=true) // WaveTrend Oscillator (WT) n1 = input.int(10, "Channel Length") n2 = input.int(21, "Average Length") obLevel1 = input.float(60.0, "Overbought Level 1") obLevel2 = input.float(53.0, "Overbought Level 2") osLevel1 = input.float(-60.0, "Oversold Level 1") osLevel2 = input.float(-53.0, "Oversold Level 2") ap = hlc3 esa = ta.ema(ap, n1) d = ta.ema(math.abs(ap - esa), n1) ci = (ap - esa) / (0.015 * d) tci = ta.ema(ci, n2) // VWAP vwap = ta.vwma(close, n1) // Signal Line wt1 = tci wt2 = ta.sma(wt1, 4) // Bullish and Bearish Divergences bullishDivergence = (ta.lowest(close, 5) > ta.lowest(close[1], 5)) and (wt1 < wt1[1]) and (close > close[1]) bearishDivergence = (ta.highest(close, 5) < ta.highest(close[1], 5)) and (wt1 > wt1[1]) and (close < close[1]) // Plot WaveTrend Oscillator plot(wt1, title="WT1", color=color.blue) plot(wt2, title="WT2", color=color.red) // Plot Divergences plotshape(series=bullishDivergence, location=location.belowbar, color=color.green, style=shape.labelup, title="Bullish Divergence") plotshape(series=bearishDivergence, location=location.abovebar, color=color.red, style=shape.labeldown, title="Bearish Divergence") // Risk Management Parameters riskPercentage = input.float(1, title="Risk Percentage per Trade", minval=0.1, step=0.1) / 100 stopLossATR = input.float(1.5, title="Stop Loss ATR Multiplier", minval=0.5, step=0.1) // ATR Calculation atr = ta.atr(14) // Position Size Calculation calculatePositionSize(stopLoss) => riskAmount = strategy.equity * riskPercentage positionSize = riskAmount / stopLoss positionSize // Entry and Exit Logic with Stop Loss if bullishDivergence stopLoss = low - atr * stopLossATR positionSize = calculatePositionSize(close - stopLoss) strategy.entry("Buy", strategy.long, qty=positionSize) strategy.exit("Sell", from_entry="Buy", stop=stopLoss) if bearishDivergence strategy.close("Buy") // Plot VWAP plot(vwap, title="VWAP", color=color.orange) // Background color to indicate Overbought/Oversold conditions bgcolor(wt1 > obLevel1 ? color.new(color.red, 90) : na, title="Overbought Level 1") bgcolor(wt1 < osLevel1 ? color.new(color.green, 90) : na, title="Oversold Level 1") bgcolor(wt1 > obLevel2 ? color.new(color.red, 70) : na, title="Overbought Level 2") bgcolor(wt1 < osLevel2 ? color.new(color.green, 70) : na, title="Oversold Level 2")