
اس حکمت عملی میں WaveTrend کے شاک اشارے ((WT) اور حجم کے وزن میں اوسط قیمت ((VWAP) کا امتزاج کیا گیا ہے تاکہ قیمتوں اور اشارے کے انحراف کی نشاندہی کرکے ممکنہ رجحان کو تبدیل کرنے کے مواقع کو پکڑ سکے۔ یہ حکمت عملی ATR ((Average True Range) کا استعمال کرتی ہے تاکہ اسٹاپ نقصان کی پوزیشن کا تعین کیا جاسکے اور اکاؤنٹ کے خطرے کے فیصد کے مطابق پوزیشن کو متحرک طور پر ایڈجسٹ کیا جاسکے۔ اس حکمت عملی کا بنیادی فائدہ اس کی رجحان سے باخبر رہنے کی صلاحیت اور خطرے سے نمٹنے کے اقدامات پر ہے ، لیکن اس میں ہلچل والے بازاروں میں نقصان کا سامنا کرنا پڑ سکتا ہے۔
WaveTrend Oscillator Divergence Strategy میں اتار چڑھاؤ کے رجحان کے اشارے اور ٹرانزیکشن ویٹڈ اوسط قیمتوں کا امتزاج کیا جاتا ہے تاکہ رجحان کے الٹ جانے کے ممکنہ مواقع کی نشاندہی کی جاسکے۔ اس حکمت عملی کا فائدہ اس کی رجحان سے باخبر رہنے کی صلاحیت اور خطرے سے نمٹنے کے اقدامات پر ہے ، لیکن یہ ہلچل والی مارکیٹوں میں خطرے کا شکار ہوسکتا ہے۔ اس حکمت عملی کی کارکردگی کو مزید بہتر بنانے کے لئے اضافی فلٹرنگ شرائط ، متحرک پیرامیٹر ایڈجسٹمنٹ اور بہتر انٹری کے قواعد متعارف کروائے جاسکتے ہیں۔ اس حکمت عملی کو نافذ کرنے سے پہلے ، مکمل پیمائش اور پیش گوئی کا تجزیہ ضروری ہے۔
/*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")