এই কৌশলটি বাজারের প্রবণতা নির্ধারণের জন্য বিভিন্ন সময়কালের দুটি ইএমএ লাইনের মধ্যে ক্রসওভার গণনা করে ট্রেডিং সংকেত তৈরি করে। এটি দীর্ঘ সময়ের ইএমএ দীর্ঘ সময়ের ইএমএ অতিক্রম করার সময় দীর্ঘ অবস্থান খুলবে, এটি একটি আপট্রেন্ড নির্দেশ করে এবং এটি একটি ডাউনট্রেন্ড নির্দেশ করে, যখন সংক্ষিপ্ত সময়ের ইএমএ দীর্ঘ সময়ের ইএমএ অতিক্রম করে তখন এটি অবস্থান বন্ধ করবে।
কৌশলটি মূলত ডাবল ইএমএ লাইনের সোনার ক্রস এবং ডেথ ক্রস তত্ত্ব প্রয়োগ করে। ডাবল ইএমএ লাইনে একটি দীর্ঘ ইএমএ এবং একটি সংক্ষিপ্ত ইএমএ রয়েছে। সংক্ষিপ্ত ইএমএ প্যারামিটারটি 10 দিনের জন্য এবং দীর্ঘ ইএমএ প্যারামিটারটি 21 দিনের জন্য সেট করা হয়েছে।
যখন সংক্ষিপ্ত ইএমএ দীর্ঘ ইএমএ অতিক্রম করে, তখন একটি ক্রয় সংকেত উত্পন্ন হয়। যখন সংক্ষিপ্ত ইএমএ দীর্ঘ ইএমএর নীচে অতিক্রম করে, তখন একটি বিক্রয় সংকেত উত্পন্ন হয়। কৌশলটি বৃদ্ধির হারের থ্রেশহোল্ডগুলিও সেট করে, যখন বৃদ্ধি একটি ইতিবাচক থ্রেশহোল্ড অতিক্রম করে তখনই দীর্ঘ অবস্থানগুলি খুলবে এবং যখন হ্রাস নেতিবাচক থ্রেশহোল্ড অতিক্রম করে তখনই অবস্থানগুলি বন্ধ করবে।
বিশেষ করে, ক্রয় শর্ত হল যখন সংক্ষিপ্ত EMA দীর্ঘ EMA এর চেয়ে বেশি হয় এবং স্টক বৃদ্ধির হার ইতিবাচক প্রান্তিক সীমা অতিক্রম করে। বন্ধ অবস্থানের শর্ত হল যখন সংক্ষিপ্ত EMA দীর্ঘ EMA এর চেয়ে কম হয় এবং স্টক বৃদ্ধির হার নেতিবাচক প্রান্তিকের নীচে পড়ে।
সামগ্রিক কৌশলটি তুলনামূলকভাবে সহজ এবং নির্ভরযোগ্য, দামের প্রবণতা নির্ধারণ করতে ডাবল ইএমএ ক্রসওভার ব্যবহার করে এবং ট্রেডিং সিগন্যাল তৈরির জন্য বৃদ্ধি হারের প্রান্তিককরণ সেট করে। একক লাইন ক্রসওভারের তুলনায় এটি কিছু মিথ্যা সংকেত ফিল্টার করতে পারে। তবে ইএমএ লাইনের নিজস্ব পিছনে সমস্যা রয়েছে। অন্যান্য সূচক বা গতিশীল পরামিতি সমন্বয়কে একত্রিত করা কৌশল কর্মক্ষমতা আরও উন্নত করতে পারে।
/*backtest start: 2022-11-14 00:00:00 end: 2023-11-20 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title="ema(ema10-21)", overlay=true, pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital = 15000, commission_type = strategy.commission.percent, commission_value = 0.2) useTimeLimit = input(defval = false, title = "Use Start Time Limiter?") startYear = input(defval = 2016, title = "Start From Year", minval = 0, step = 1) startMonth = input(defval = 05, title = "Start From Month", minval = 0,step = 1) startDay = input(defval = 01, title = "Start From Day", minval = 0,step = 1) startHour = input(defval = 00, title = "Start From Hour", minval = 0,step = 1) startMinute = input(defval = 00, title = "Start From Minute", minval = 0,step = 1) startTimeOk() => true lenght0 = input(10) lenght1 = input(21) source = close EmaShort = ema(ema(source, lenght0), lenght0) EmaLong = ema(ema(source, lenght1),lenght1) plot(EmaShort, color=red) plot(EmaLong, color=purple) growth = ((EmaShort-EmaLong)*100)/((EmaShort+EmaLong)/2) thresholdUp = input(defval=0.05, title="Threshold Up", type=float, step=0.01) thresholdDown = input(defval=-0.165, title="Threshold Down", type=float, step=0.001) if( startTimeOk() ) buy_condition = EmaShort > EmaLong and growth > thresholdUp buy_exit_condition = EmaShort < EmaLong and growth < thresholdDown strategy.entry("buy", strategy.long, comment="buy", when=buy_condition) strategy.close(id='buy', when=buy_exit_condition)