এই কৌশলটি ওয়েভট্রেন্ডের অস্থিরতার সূচক ((ডাব্লুটি) এবং লেনদেনের ওজনযুক্ত গড় মূল্য ((ভিডাব্লুএপি) এর সাথে মিলিত হয় যাতে মূল্য এবং সূচকের বিচ্যুতি সনাক্ত করে সম্ভাব্য প্রবণতা বিপরীত সুযোগগুলি ধরা যায়। এই কৌশলটি এটিআর (গড় সত্যিকারের পরিসীমা) ব্যবহার করে যাতে স্টপ পজিশন নির্ধারণ করা যায় এবং অ্যাকাউন্টের ঝুঁকির শতাংশের উপর ভিত্তি করে পজিশন স্কেলকে গতিশীলভাবে সামঞ্জস্য করা যায়। এই কৌশলটির প্রধান সুবিধা হল এর প্রবণতা ট্র্যাকিং ক্ষমতা এবং ঝুঁকি পরিচালনার ব্যবস্থা, তবে অস্থির বাজারে ক্ষতিগ্রস্থ হতে পারে। অপ্টিমাইজেশনের দিকনির্দেশনাগুলির মধ্যে রয়েছে অতিরিক্ত ওভারল্যাপ শর্তাবলী যুক্ত করা এবং প্রস্থান নিয়ম উন্নত করা।
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")