এটি একটি ট্রেডিং কৌশল যা গতি এবং প্রবণতাকে একত্রিত করে, একাধিক এক্সপোনেনশিয়াল মুভিং এভারেজ (ইএমএ), আপেক্ষিক শক্তি সূচক (আরএসআই) এবং স্টোকাস্টিক দোলক ব্যবহার করে বাজারের প্রবণতা এবং গতি চিহ্নিত করে। কৌশলটি গড় সত্য পরিসীমা (এটিআর) এর উপর ভিত্তি করে একটি ঝুঁকি ব্যবস্থাপনা সিস্টেমকে অন্তর্ভুক্ত করে, এতে গতিশীল স্টপ-লস, মুনাফা লক্ষ্যমাত্রা এবং ট্রেলিং স্টপগুলি অন্তর্ভুক্ত রয়েছে।
কৌশলটি প্রবণতা দিক নির্ধারণের জন্য বিভিন্ন সময়ের সাথে 5 টি ইএমএ (8, 13, 21, 34, 55) ব্যবহার করে। যখন স্বল্প-মেয়াদী ইএমএগুলি দীর্ঘ-মেয়াদী ইএমএগুলির উপরে থাকে এবং বিপরীতভাবে ডাউনট্রেন্ডগুলির জন্য একটি আপট্রেন্ড চিহ্নিত করা হয়। আরএসআই বিভিন্ন প্রবেশ এবং প্রস্থান প্রান্তিকের সাথে গতি নিশ্চিত করে। স্টোকাস্টিক দোলক অতিরিক্ত ক্রয় এবং অতিরিক্ত বিক্রয় শর্তগুলি এড়াতে তৃতীয় ফিল্টার হিসাবে কাজ করে। ঝুঁকি ব্যবস্থাপনা সিস্টেমটি লাভের সুরক্ষার জন্য 1.5x এটিআর ট্রেলিং স্টপ সহ গতিশীল স্টপ-লস (2x এটিআর) এবং মুনাফা লক্ষ্যমাত্রা (4x এটিআর) সেট করতে এটিআর ব্যবহার করে। পজিশন সাইজিং অ্যাকাউন্ট ইক্যুইটি 1% ঝুঁকি ভিত্তিতে গণনা করা হয়।
কৌশলটি একটি শক্তিশালী ঝুঁকি ব্যবস্থাপনার সাথে একাধিক প্রযুক্তিগত সূচককে একত্রিত করে একটি বিস্তৃত ট্রেডিং সমাধান সরবরাহ করে। এর মূল শক্তিগুলি এর বহু-স্তরীয় ফিল্টারিং প্রক্রিয়া এবং গতিশীল ঝুঁকি ব্যবস্থাপনায় রয়েছে, তবে এটি এখনও নির্দিষ্ট বাজারের বৈশিষ্ট্যগুলির উপর ভিত্তি করে অপ্টিমাইজেশনের প্রয়োজন। সফল বাস্তবায়নের জন্য অবিচ্ছিন্ন পর্যবেক্ষণ এবং সমন্বয় প্রয়োজন, বিশেষত বিভিন্ন বাজারের পরিবেশে পরামিতি অভিযোজনযোগ্যতা। প্রস্তাবিত অপ্টিমাইজেশান দিকগুলির মাধ্যমে কৌশলটির স্থায়িত্ব এবং লাভজনকতা আরও উন্নত করার সম্ভাবনা রয়েছে।
/*backtest start: 2024-11-04 00:00:00 end: 2024-12-04 00:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Combined Strategy (Modernized)", overlay = true) //----------// // MOMENTUM // //----------// ema8 = ta.ema(close, 8) ema13 = ta.ema(close, 13) ema21 = ta.ema(close, 21) ema34 = ta.ema(close, 34) ema55 = ta.ema(close, 55) // Plotting EMAs for visualization plot(ema8, color=color.red, title="EMA 8", linewidth=1) plot(ema13, color=color.orange, title="EMA 13", linewidth=1) plot(ema21, color=color.yellow, title="EMA 21", linewidth=1) plot(ema34, color=color.aqua, title="EMA 34", linewidth=1) plot(ema55, color=color.lime, title="EMA 55", linewidth=1) longEmaCondition = ema8 > ema13 and ema13 > ema21 and ema21 > ema34 and ema34 > ema55 exitLongEmaCondition = ema13 < ema55 shortEmaCondition = ema8 < ema13 and ema13 < ema21 and ema21 < ema34 and ema34 < ema55 exitShortEmaCondition = ema13 > ema55 // ---------- // // OSCILLATORS // // ----------- // rsi = ta.rsi(close, 14) longRsiCondition = rsi < 70 and rsi > 40 exitLongRsiCondition = rsi > 70 shortRsiCondition = rsi > 30 and rsi < 60 exitShortRsiCondition = rsi < 30 // Stochastic k = ta.stoch(close, high, low, 14) d = ta.sma(k, 3) longStochasticCondition = k < 80 exitLongStochasticCondition = k > 95 shortStochasticCondition = k > 20 exitShortStochasticCondition = k < 5 //----------// // STRATEGY // //----------// // ATR for dynamic stop loss and take profit atr = ta.atr(14) stopLossMultiplier = 2 takeProfitMultiplier = 4 stopLoss = atr * stopLossMultiplier takeProfit = atr * takeProfitMultiplier // Trailing stop settings trailStopMultiplier = 1.5 trailOffset = atr * trailStopMultiplier // Risk management: dynamic position sizing riskPerTrade = 0.01 // 1% risk per trade positionSize = strategy.equity * riskPerTrade / stopLoss longCondition = longEmaCondition and longRsiCondition and longStochasticCondition and strategy.position_size == 0 exitLongCondition = (exitLongEmaCondition or exitLongRsiCondition or exitLongStochasticCondition) and strategy.position_size > 0 if (longCondition) strategy.entry("LONG", strategy.long, qty=positionSize) strategy.exit("Take Profit Long", "LONG", stop=close - stopLoss, limit=close + takeProfit, trail_offset=trailOffset) if (exitLongCondition) strategy.close("LONG") shortCondition = shortEmaCondition and shortRsiCondition and shortStochasticCondition and strategy.position_size == 0 exitShortCondition = (exitShortEmaCondition or exitShortRsiCondition or exitShortStochasticCondition) and strategy.position_size < 0 if (shortCondition) strategy.entry("SHORT", strategy.short, qty=positionSize) strategy.exit("Take Profit Short", "SHORT", stop=close + stopLoss, limit=close - takeProfit, trail_offset=trailOffset) if (exitShortCondition) strategy.close("SHORT")