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