এই কৌশলটি একটি বিস্তৃত ট্রেডিং সিস্টেম যা ট্রেন্ড অনুসরণকে সুইং ট্রেডিং পদ্ধতির সাথে একত্রিত করে, ইএমএ এবং এসএমএ ক্রসওভারগুলি ব্যবহার করে, সুইং উচ্চ / নিম্ন সনাক্তকরণ, ভলিউম ফিল্টারিং এবং শতাংশ-ভিত্তিক লাভ গ্রহণ এবং ট্রেলিং স্টপ-লস প্রক্রিয়া। কৌশলটি বহু-মাত্রিক সংকেত নিশ্চিতকরণকে জোর দেয়, প্রযুক্তিগত সূচকগুলির সিঙ্ক্রোনাইজেশনের মাধ্যমে ট্রেডিংয়ের নির্ভুলতা বাড়ায়।
কৌশলটি একটি মাল্টি-লেয়ার সিগন্যাল ফিল্টারিং প্রক্রিয়া ব্যবহার করে, যা মৌলিক প্রবণতা নির্ধারণের জন্য ইএমএ ((10) এবং এসএমএ ((21) ক্রসওভারের সাথে শুরু হয়, তারপরে প্রবেশের সময় নির্ধারণের জন্য 6-বার বাম / ডান পিভট পয়েন্ট ব্রেকআউট ব্যবহার করে, পর্যাপ্ত তরলতা নিশ্চিত করার জন্য 200-পরিসরের চলমান গড়ের উপরে ভলিউম প্রয়োজন। সিস্টেমটি ঝুঁকি পরিচালনার জন্য 2% লাভ এবং 1% ট্রেলিং স্টপ-লস ব্যবহার করে। যখন ভলিউম নিশ্চিতকরণের সাথে দাম সুইং হাইয়ের উপরে ভাঙ্গবে তখন লং পজিশন শুরু হয়; যখন ভলিউম নিশ্চিতকরণের সাথে দাম সুইং নিম্নের নীচে ভাঙ্গবে তখন শর্ট পজিশন নেওয়া হয়।
কৌশলটি চলমান গড়, মূল্য ব্রেকআউট এবং ভলিউম যাচাইকরণের মাধ্যমে একটি সম্পূর্ণ ট্রেডিং সিস্টেম তৈরি করে, যা মাঝারি থেকে দীর্ঘমেয়াদী প্রবণতা অনুসরণ করার জন্য উপযুক্ত। এর শক্তি একাধিক সংকেত নিশ্চিতকরণ এবং বিস্তৃত ঝুঁকি ব্যবস্থাপনায় রয়েছে, যদিও ব্যাপ্তি বাজারে পারফরম্যান্সের দিকে মনোযোগ প্রয়োজন। প্রস্তাবিত অপ্টিমাইজেশানগুলির মাধ্যমে, বিশেষত অভিযোজনযোগ্যতার মাধ্যমে, কৌশলটির স্থিতিশীলতা এবং পারফরম্যান্সের উন্নতির জন্য জায়গা রয়েছে।
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-09 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 // Strategy combining EMA/SMA Crossover, Swing High/Low, Volume Filtering, and Percentage TP & Trailing Stop strategy("Swing High/Low Strategy with Volume, EMA/SMA Crossovers, Percentage TP and Trailing Stop", overlay=true) // --- Inputs --- source = close TITLE = input(false, title='Enable Alerts & Background Color for EMA/SMA Crossovers') turnonAlerts = input(true, title='Turn on Alerts?') colorbars = input(true, title="Color Bars?") turnonEMASMA = input(true, title='Turn on EMA1 & SMA2?') backgroundcolor = input(false, title='Enable Background Color?') // EMA/SMA Lengths emaLength = input.int(10, minval=1, title='EMA Length') smaLength = input.int(21, minval=1, title='SMA Length') ema1 = ta.ema(source, emaLength) sma2 = ta.sma(source, smaLength) // Swing High/Low Lengths leftBars = input.int(6, title="Left Bars for Swing High/Low", minval=1) rightBars = input.int(6, title="Right Bars for Swing High/Low", minval=1) // Volume MA Length volMaLength = input.int(200, title="Volume Moving Average Length") // Percentage Take Profit with hundredth place adjustment takeProfitPercent = input.float(2.00, title="Take Profit Percentage (%)", minval=0.01, step=0.01) / 100 // Trailing Stop Loss Option useTrailingStop = input.bool(true, title="Enable Trailing Stop Loss?") trailingStopPercent = input.float(1.00, title="Trailing Stop Loss Percentage (%)", minval=0.01, step=0.01) / 100 // --- Swing High/Low Logic --- pivotHigh(_leftBars, _rightBars) => ta.pivothigh(_leftBars, _rightBars) pivotLow(_leftBars, _rightBars) => ta.pivotlow(_leftBars, _rightBars) ph = fixnan(pivotHigh(leftBars, rightBars)) pl = fixnan(pivotLow(leftBars, rightBars)) // --- Volume Condition --- volMa = ta.sma(volume, volMaLength) // Declare exit conditions as 'var' so they are initialized var bool longExitCondition = na var bool shortExitCondition = na // --- Long Entry Condition: Close above Swing High & Volume >= 200 MA --- longCondition = (close > ph and volume >= volMa) if (longCondition) strategy.entry("Long", strategy.long) // --- Short Entry Condition: Close below Swing Low & Volume >= 200 MA --- shortCondition = (close < pl and volume >= volMa) if (shortCondition) strategy.entry("Short", strategy.short) // --- Take Profit and Trailing Stop Logic --- // For long position: Set take profit at the entry price + takeProfitPercent longTakeProfitLevel = strategy.position_avg_price * (1 + takeProfitPercent) shortTakeProfitLevel = strategy.position_avg_price * (1 - takeProfitPercent) // --- Long Exit Logic --- if (useTrailingStop) // Trailing Stop for Long strategy.exit("Long Exit", "Long", stop=na, trail_offset=strategy.position_avg_price * trailingStopPercent, limit=longTakeProfitLevel) else // Exit Long on Take Profit only strategy.exit("Long Exit", "Long", limit=longTakeProfitLevel) // --- Short Exit Logic --- if (useTrailingStop) // Trailing Stop for Short strategy.exit("Short Exit", "Short", stop=na, trail_offset=strategy.position_avg_price * trailingStopPercent, limit=shortTakeProfitLevel) else // Exit Short on Take Profit only strategy.exit("Short Exit", "Short", limit=shortTakeProfitLevel) // --- Plot Swing High/Low --- plot(ph, style=plot.style_circles, linewidth=1, color=color.blue, offset=-rightBars, title="Swing High") plot(ph, style=plot.style_line, linewidth=1, color=color.blue, offset=0, title="Swing High") plot(pl, style=plot.style_circles, linewidth=1, color=color.red, offset=-rightBars, title="Swing High") plot(pl, style=plot.style_line, linewidth=1, color=color.red, offset=0, title="Swing High") // --- Plot EMA/SMA --- plot(turnonEMASMA ? ema1 : na, color=color.green, title="EMA") plot(turnonEMASMA ? sma2 : na, color=color.orange, title="SMA") // --- Alerts --- alertcondition(longCondition, title="Long Entry", message="Price closed above Swing High with Volume >= 200 MA") alertcondition(shortCondition, title="Short Entry", message="Price closed below Swing Low with Volume >= 200 MA") // --- Bar Colors for Visualization --- barcolor(longCondition ? color.green : na, title="Long Entry Color") barcolor(shortCondition ? color.red : na, title="Short Entry Color") bgcolor(backgroundcolor ? (ema1 > sma2 ? color.new(color.green, 50) : color.new(color.red, 50)) : na)