এই কৌশলটি দুটি চলমান গড় (ইএমএ) এর ক্রসওভারের উপর ভিত্তি করে ট্রেডিং সংকেত তৈরি করে। যখন স্বল্পমেয়াদী ইএমএ (20 দিনের) দীর্ঘমেয়াদী ইএমএ (50 দিনের) এর উপরে অতিক্রম করে, তখন একটি ক্রয় সংকেত ট্রিগার করা হয়; যখন স্বল্পমেয়াদী ইএমএ দীর্ঘমেয়াদী ইএমএ এর নীচে অতিক্রম করে, তখন একটি বিক্রয় সংকেত ট্রিগার করা হয়। অতিরিক্তভাবে, কৌশলটি দীর্ঘমেয়াদী প্রবণতার জন্য একটি রেফারেন্স হিসাবে 200 দিনের ইএমএ প্লট করে। এই কৌশলটির পিছনে মূল ধারণাটি বিভিন্ন সময়ের সাথে চলমান গড়গুলির ক্রসওভার ব্যবহার করে বাজারের প্রবণতার পরিবর্তনগুলি ক্যাপচার করা।
ইএমএ ডাবল মুভিং এভারেজ ক্রসওভার কৌশলটি ট্রেন্ডিং মার্কেটের জন্য উপযুক্ত একটি সহজ এবং সরল ট্রেডিং কৌশল। এটি একটি দীর্ঘমেয়াদী প্রবণতা রেফারেন্স অন্তর্ভুক্ত করার সময় বাজারের প্রবণতার পরিবর্তনগুলি ক্যাপচার করতে স্বল্পমেয়াদী এবং দীর্ঘমেয়াদী মুভিং এভারেজগুলির ক্রসওভার ব্যবহার করে। যদিও কৌশলটির কিছু সীমাবদ্ধতা রয়েছে, যেমন অস্থির বাজারগুলিতে অনুপম পারফরম্যান্স এবং মুভিং এভারেজগুলির বিলম্ব, এটি অতিরিক্ত সূচকগুলি অন্তর্ভুক্ত করে, প্যারামিটারগুলি অনুকূল করে, ঝুঁকি ব্যবস্থাপনা ব্যবস্থাগুলি বাস্তবায়ন করে এবং প্রবণতা নিশ্চিত করে আরও উন্নত করা যেতে পারে। এই অপ্টিমাইজেশনগুলি কৌশলটির দৃust়তা এবং লাভজনকতা উন্নত করতে পারে।
/*backtest start: 2023-03-23 00:00:00 end: 2024-03-28 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Crossover Strategy by Peter Gangmei", overlay=true) // Define the length for moving averages short_ma_length = input.int(20, "Short MA Length") long_ma_length = input.int(50, "Long MA Length") long_ma_200_length = input.int(200, "Long MA 200 Length") // Define start time for testing start_time = timestamp(2024, 01, 01, 00, 00) // Calculate current date and time current_time = timenow // Calculate moving averages ema20 = ta.ema(close, short_ma_length) ema50 = ta.ema(close, long_ma_length) ema200 = ta.ema(close, long_ma_200_length) // Crossing conditions crossed_above = ta.crossover(ema20, ema50) crossed_below = ta.crossunder(ema20, ema50) // Entry and exit conditions within the specified time frame if true if (crossed_above) strategy.entry("Buy", strategy.long) alert("Buy Condition", alert.freq_once_per_bar_close) if (crossed_below) strategy.entry("Sell", strategy.short) alert("Sell Condition", alert.freq_once_per_bar_close) // Plotting moving averages for visualization plot(ema20, color=color.green, title="EMA20") plot(ema50, color=color.red, title="EMA50") plot(ema200, color=color.blue, title="EMA200") // Placing buy and sell markers plotshape(series=crossed_above, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal") plotshape(series=crossed_below, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")