এই কৌশলটি প্রবণতা অনুসরণকারী কৌশলগুলির অন্তর্গত দ্রুত এবং ধীর ইএমএ লাইনের ক্রসওভার এবং ক্রসওন্ডারের উপর ভিত্তি করে ট্রেডিং সংকেত তৈরি করে। এটি যখন দ্রুত ইএমএ ধীর ইএমএর উপরে অতিক্রম করে তখন এটি কিনে এবং যখন দ্রুত ইএমএ ধীর ইএমএর নীচে অতিক্রম করে তখন এটি বিক্রি করে, একটি সহজ প্রবণতা ট্র্যাকিং কৌশল বাস্তবায়ন করে।
এই কৌশলটির মূল যুক্তিতে প্রধানত নিম্নলিখিত অংশগুলি অন্তর্ভুক্ত রয়েছেঃ
দ্রুত এবং ধীর EMAs গণনা করুন: দৈর্ঘ্যের দ্রুত EMA fastInput এবং দৈর্ঘ্যের ধীর EMA slowInput গণনা করতে ta.ema() ব্যবহার করুন।
ব্যাকটেস্ট সময় পরিসীমা সেট করুনঃ ব্যাকটেস্ট সময় পরিসীমা ফিল্টার করতে useDateFilter ব্যবহার করুন, এবং শুরু এবং শেষ সময় সেট করতে ব্যাকটেস্টস্টার্টডেট এবং ব্যাকটেস্টএন্ডডেট ব্যবহার করুন।
ট্রেডিং সিগন্যাল তৈরি করুন: দ্রুত এবং ধীর EMA তুলনা করতে ta.crossover (() এবং ta.crossunder (() ব্যবহার করুন, যখন দ্রুত EMA ধীর EMA অতিক্রম করে তখন ক্রয় সংকেত তৈরি করুন এবং যখন দ্রুত EMA ধীর EMA অতিক্রম করে তখন বিক্রয় সংকেত তৈরি করুন।
সময়সীমার বাইরে অর্ডার পরিচালনা করুনঃ ব্যাকটেস্টের সময়সীমার বাইরে অর্ডার বাতিল করুন এবং সমস্ত অবস্থান সমতল করুন।
ইএমএ লাইনগুলি গ্রাফ করুন: চার্টে দ্রুত এবং ধীর ইএমএ লাইনগুলি গ্রাফ করুন।
এটি একটি খুব সহজ প্রবণতা অনুসরণকারী কৌশল, নিম্নলিখিত সুবিধার সাথেঃ
সহজ যুক্তি, সহজেই বোঝা যায় এবং বাস্তবায়ন করা যায়।
ইএমএ মূল্যের তথ্যকে মসৃণ করে এবং গোলমাল হ্রাস করে।
বিভিন্ন বাজারের পরিবেশে অভিযোজিত EMA সময়কাল।
নির্দিষ্ট সময়ের জন্য পরীক্ষার জন্য নমনীয় ব্যাকটেস্ট সময়সীমা।
অপ্টিমাইজযোগ্য প্রবেশ এবং প্রস্থান শর্ত, অন্যান্য সূচকগুলির সাথে একত্রিত করা যেতে পারে।
এই কৌশলটির কিছু ঝুঁকিও রয়েছেঃ
ডুয়াল ইএমএ কৌশলটি অপরিশোধিত, বাজারের পরিবর্তনের সাথে নমনীয়ভাবে মানিয়ে নিতে অক্ষম।
ঘন ঘন ট্রেডিং এবং পুনরাবৃত্তি ট্রেডিং এর ঝুঁকি।
ভুল EMA পরামিতি ভুল ট্রেডিং সংকেত সৃষ্টি করতে পারে।
অযৌক্তিক ব্যাকটেস্ট সময়সীমা অতিরিক্ত ফিটিংয়ের দিকে পরিচালিত করতে পারে।
অনিবার্য হ্রাস ও ক্ষতির ঝুঁকি।
প্যারামিটার অপ্টিমাইজেশান, ফিল্টারিং ওঠানামা, স্টপ লস ইত্যাদির মাধ্যমে ঝুঁকি পরিচালনা করা যায়।
এই কৌশলটি নিম্নলিখিত দিকগুলিতে অনুকূলিত করা যেতে পারেঃ
সর্বোত্তম প্যারামিটার সমন্বয় খুঁজে পেতে EMA সময়কাল অপ্টিমাইজ করুন।
অপ্রয়োজনীয় লেনদেন ফিল্টার করার জন্য অন্যান্য সূচক যোগ করুন।
একক ট্রেড লস নিয়ন্ত্রণের জন্য স্টপ লস যোগ করুন।
ট্রেডিং ফ্রিকোয়েন্সি কমাতে ট্রেন্ড, ভোল্টেবিলিটি ফিল্টার অন্তর্ভুক্ত করুন।
সেরা ফিট খুঁজে পেতে বিভিন্ন পণ্য পরীক্ষা করুন।
আরো বাস্তবসম্মত ব্যাকটেস্টের জন্য স্লিপিং, কমিশন ব্যবহার করুন।
সংক্ষেপে, এটি দ্রুত এবং ধীর ইএমএগুলির তুলনা করে স্পষ্ট যুক্তি সহ একটি খুব সহজ দ্বৈত ইএমএ ক্রসওভার কৌশল। সুবিধাটি সহজ বাস্তবায়ন, তবে এর মধ্যে ঘন ঘন ট্রেডিং, ওভারফিটিংয়ের মতো সমস্যাও রয়েছে। পরবর্তী পদক্ষেপটি আরও শক্তিশালী কৌশলটির জন্য প্যারামিটার অপ্টিমাইজেশন, ঝুঁকি ব্যবস্থাপনা উন্নত করা।
/*backtest start: 2022-11-06 00:00:00 end: 2023-11-12 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("MollyETF_EMA_Crossover", overlay = true, initial_capital = 100000, default_qty_value=100, default_qty_type=strategy.percent_of_equity) fastInput = input( 10, "Fast EMA") slowInput = input( 21, "Slow EMA") // Calculate two moving averages with different lengths. float fastMA = ta.ema(close, fastInput) float slowMA = ta.ema(close, slowInput) // STEP 1. Create inputs that configure the backtest's date range useDateFilter = input.bool(true, title="Filter Date Range of Backtest", group="Backtest Time Period") backtestStartDate = input(timestamp("1 Jan 2018"), title="Start Date", group="Backtest Time Period", tooltip="This start date is in the time zone of the exchange " + "where the chart's instrument trades. It doesn't use the time " + "zone of the chart or of your computer.") backtestEndDate = input(timestamp("7 Sep 2023"), title="End Date", group="Backtest Time Period", tooltip="This end date is in the time zone of the exchange " + "where the chart's instrument trades. It doesn't use the time " + "zone of the chart or of your computer.") // STEP 2. See if current bar falls inside the date range inTradeWindow = true // STEP 3. Include the date filter with the entry order conditions // Enter a long position when `fastMA` crosses over `slowMA`. if inTradeWindow and ta.crossover(fastMA, slowMA) strategy.entry("buy", strategy.long) // Enter a short position when `fastMA` crosses under `slowMA`. if inTradeWindow and ta.crossunder(fastMA, slowMA) strategy.close_all(comment="sell") // STEP 4. With the backtest date range over, exit all open // trades and cancel all unfilled pending orders if not inTradeWindow and inTradeWindow[1] strategy.cancel_all() strategy.close_all(comment="Date Range Exit") // Plot the moving averages. plot(fastMA, "Fast MA", color.aqua) plot(slowMA, "Slow MA", color.orange)