এটি একাধিক এক্সপোনেনশিয়াল মুভিং এভারেজ (ইএমএ) ক্রসওভারের উপর ভিত্তি করে একটি ট্রেন্ড অনুসরণকারী কৌশল। কৌশলটি বাজারের প্রবণতা ক্যাপচার করতে এবং শর্ত পূরণ হলে দীর্ঘ / সংক্ষিপ্ত বাণিজ্য সম্পাদন করতে 10 পিরিয়ডের স্বল্পমেয়াদী ইএমএ, 50 পিরিয়ডের মাঝারি মেয়াদী ইএমএ এবং 200 পিরিয়ডের দীর্ঘমেয়াদী ইএমএর মধ্যে ক্রসওভার সম্পর্কগুলি ব্যবহার করে। মূল ধারণাটি একাধিক সময়সীমার চলমান গড়ের মাধ্যমে বাজারের গোলমাল ফিল্টার করা, মূল প্রবণতার দিক সনাক্ত করা এবং প্রবণতা অব্যাহত রাখার সময় মুনাফা অর্জন করা।
কৌশলটি তার সংকেত উত্পাদন প্রক্রিয়া হিসাবে একটি ট্রিপল ইএমএ ক্রসওভার সিস্টেম ব্যবহার করে। বিশেষতঃ 1. 200-পরিসরের ইএমএকে প্রধান প্রবণতা সূচক হিসাবে ব্যবহার করে, কেবল তার উপরে দীর্ঘ অবস্থান এবং তার নীচে সংক্ষিপ্ত অবস্থান গ্রহণ করে 2. যখন স্বল্পমেয়াদী EMA (10-period) মধ্যমেয়াদী EMA (50-period) এর উপরে ক্রস করে এবং দাম দীর্ঘমেয়াদী EMA এর উপরে থাকে তখন লং পজিশন খোলে ৩. যখন স্বল্পমেয়াদী EMA মধ্যমেয়াদী EMA এর নিচে ক্রস করে এবং দাম দীর্ঘমেয়াদী EMA এর নিচে থাকে তখন শর্ট পজিশন খোলে ৪. স্বল্পমেয়াদী ইএমএ-র নীচে ক্রস করলে লম্বা পজিশন বন্ধ করে দেয় ৫. স্বল্পমেয়াদী ইএমএ-র উপরে যখন স্বল্পমেয়াদী ইএমএ অতিক্রম করে তখন শর্ট পজিশন বন্ধ করে দেয় কৌশলটিতে অস্বাভাবিক ইএমএ ক্রসওভার এবং সম্পর্কগুলি পর্যবেক্ষণের জন্য ডিবাগিং বৈশিষ্ট্য অন্তর্ভুক্ত রয়েছে।
এই কৌশলটি একটি ক্লাসিক প্রবণতা অনুসরণকারী সিস্টেম যা একাধিক ইএমএ ব্যবহারের মাধ্যমে সময়মতো লাভ গ্রহণ এবং স্টপ-লস বজায় রেখে বড় প্রবণতা ক্যাপচার নিশ্চিত করে। যদিও এর কিছু অন্তর্নিহিত বিলম্ব রয়েছে, যুক্তিসঙ্গত পরামিতি সেটিংস এবং ঝুঁকি ব্যবস্থাপনা এখনও ট্রেন্ডিং বাজারে স্থিতিশীল রিটার্ন তৈরি করতে পারে। অতিরিক্ত প্রযুক্তিগত সূচক এবং পরিমার্জিত ট্রেডিং নিয়মের প্রবর্তনের মাধ্যমে কৌশলটির উল্লেখযোগ্য অপ্টিমাইজেশন সম্ভাবনা রয়েছে।
/*backtest start: 2024-12-10 00:00:00 end: 2025-01-09 00:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=5 strategy("EMA Crossover Strategy (Enhanced Debug)", overlay=true) // Inputs for EMA periods shortEMA = input.int(10, title="Short EMA Period") mediumEMA = input.int(50, title="Medium EMA Period") longEMA = input.int(200, title="Long EMA Period") // Calculating EMAs emaShort = ta.ema(close, shortEMA) emaMedium = ta.ema(close, mediumEMA) emaLong = ta.ema(close, longEMA) // Plot EMAs plot(emaShort, color=color.green, title="Short EMA") plot(emaMedium, color=color.blue, title="Medium EMA") plot(emaLong, color=color.red, title="Long EMA") // Conditions for entry and exit longCondition = close > emaLong and ta.crossover(emaShort, emaMedium) and emaMedium > emaLong shortCondition = close < emaLong and ta.crossunder(emaShort, emaMedium) and emaMedium < emaLong closeLongCondition = ta.crossunder(emaShort, emaMedium) closeShortCondition = ta.crossover(emaShort, emaMedium) // Debugging labels for unexpected behavior if (ta.crossover(emaShort, emaLong) and not ta.crossover(emaShort, emaMedium)) label.new(bar_index, high, "Short > Long", style=label.style_circle, color=color.red, textcolor=color.white) // Debugging EMA relationships if (emaMedium <= emaLong) label.new(bar_index, high, "Medium < Long", style=label.style_cross, color=color.orange, textcolor=color.white) // Entry logic if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) // Exit logic if (closeLongCondition) strategy.close("Long") if (closeShortCondition) strategy.close("Short") // Display labels for signals plotshape(series=longCondition, style=shape.labelup, color=color.green, location=location.belowbar, title="Buy Signal") plotshape(series=shortCondition, style=shape.labeldown, color=color.red, location=location.abovebar, title="Sell Signal")