এই কৌশলটি লং বা শর্ট এন্ট্রি সিগন্যাল তৈরি করে যখন দ্রুত 30 দিনের সহজ চলমান গড় এবং স্টক মূল্যের ধীর 33 দিনের সহজ চলমান গড় ক্রস হয়। এটি বিপরীত সংকেত ঘটে তখন অবিলম্বে অবস্থান থেকে বেরিয়ে আসে। এটি কার্যকরভাবে প্রবণতা পরিবর্তন ক্যাপচার করতে পারে।
এই কৌশলটির মূলটি হল দ্রুত 30 দিনের এমএ এবং ধীর 33 দিনের এমএ গণনা করা। দ্রুত লাইনটি দামের পরিবর্তনের দ্রুত প্রতিক্রিয়া জানাতে পারে যখন ধীর লাইনের আরও ভাল ফিল্টারিং প্রভাব রয়েছে। যখন দ্রুত লাইনটি ধীর লাইনের মধ্য দিয়ে উঠে আসে, তখন একটি ক্রয় সংকেত উত্পন্ন হয়। এটি নির্দেশ করে যে দাম বাড়তে শুরু করে এবং ধীর লাইনটি এখনও পিছিয়ে থাকাকালীন দ্রুত লাইনটি প্রতিক্রিয়া জানিয়েছে। যখন দ্রুত লাইনটি ধীর লাইনের মধ্য দিয়ে পড়ে, তখন একটি বিক্রয় সংকেত উত্পন্ন হয়। এটি নির্দেশ করে যে দ্রুত লাইনটি প্রতিক্রিয়া জানায় তবে ধীর লাইনটি এখনও পিছিয়ে থাকে।
এই ধরনের দ্রুত এবং ধীর এমএ ক্রসওভার ডিজাইনের মাধ্যমে, এটি একটি নতুন প্রবণতা শুরু হলে ট্রেডিং সংকেত তৈরি করতে পারে এবং বিপরীত সংকেতগুলিতে প্রস্থান করতে পারে, কার্যকরভাবে মাঝারি থেকে দীর্ঘমেয়াদী মূল্য প্রবণতা ক্যাপচার করে। এদিকে এটি খুব বেশি বাজারের ওঠানামা দ্বারা বিভ্রান্ত হওয়া এড়ায়।
এই কৌশলটির নিম্নলিখিত সুবিধা রয়েছে:
এই কৌশলটির জন্য কিছু ঝুঁকিও রয়েছেঃ
প্যারামিটার অপ্টিমাইজেশান, স্টপ লস লেভেল সেটিং, ট্রেডিং শুধুমাত্র ট্রেন্ড পরিষ্কার হলে ইত্যাদি এই ঝুঁকিগুলি নিয়ন্ত্রণ এবং হ্রাস করতে ব্যবহার করা যেতে পারে।
কৌশলটি নিম্নলিখিত দিকগুলিতে অপ্টিমাইজ করা যেতে পারেঃ
পরীক্ষার মাধ্যমে এবং অপ্টিমাইজেশান, কৌশল নিয়ম বিভিন্ন বাজার পরিবেশে আরো নির্ভরযোগ্য ট্রেডিং সংকেত পেতে ক্রমাগত উন্নত করা যেতে পারে।
সংক্ষেপে, এই দ্বৈত এমএ ক্রসওভার ব্রেকআউট কৌশলটি বেশ সহজ এবং ব্যবহারিক। দ্রুত এমএ এবং ধীর এমএ একত্রিত করে এটি কার্যকরভাবে মাঝারি থেকে দীর্ঘমেয়াদী প্রবণতার শুরু সনাক্ত করতে পারে এবং তুলনামূলকভাবে নির্ভরযোগ্য ট্রেডিং সংকেত তৈরি করতে পারে। এছাড়াও, এর স্টপ লস নিয়মটি বাস্তবায়ন করা সহজ। আরও অপ্টিমাইজেশনের সাথে, এই কৌশলটি একটি মূল্যবান দীর্ঘমেয়াদী পরিমাণগত সিস্টেমে পরিণত হতে পারে।
/*backtest start: 2022-11-20 00:00:00 end: 2023-11-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //future strategy //strategy(title = "es1!_1minute_hull", default_qty_type = strategy.fixed, initial_capital=250000, overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=2, calc_on_order_fills=false, calc_on_every_tick=false,pyramiding=0) //strategy.risk.max_position_size(2) //stock strategy strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital=1000000, overlay = false)//, calc_on_order_fills=true, calc_on_every_tick=true) //forex strategy //strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, overlay = true,initial_capital=250000, default_qty_type = strategy.percent_of_equity) //crypto strategy //strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, overlay = true, commission_type=strategy.commission.percent,commission_value=.005,default_qty_value=10000) //strategy.risk.allow_entry_in(strategy.direction.long) // There will be no short entries, only exits from long. testStartYear = 2010 testStartMonth = 1 testStartDay = 1 testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testEndYear = 2039 testEndMonth = 1 testEndDay = 1 testPeriodEnd = timestamp(testEndYear,testEndMonth,testEndDay,0,0) testPeriod() => //true time >= testPeriodStart and time <= testPeriodEnd ? true : false fast_length = 30 slow_length = 33 ema1 = 0.0 ema2 = 0.0 volumeSum1 = sum(volume, fast_length) volumeSum2 = sum(volume, slow_length) //ema1 := (((volumeSum1 - volume) * nz(ema1[1]) + volume * close) / volumeSum1) ema1 := ema(close,fast_length) //ema2 := (((volumeSum2 - volume) * nz(ema2[1]) + volume * close) / volumeSum2) ema2 := ema(close,slow_length) plot(ema1,color=#00ff00, linewidth=3) plot(ema2, color=#ffff00, linewidth=3) go_long = crossover(ema1,ema2) go_short = crossunder(ema1,ema2) if testPeriod() strategy.entry("long_ride", strategy.long, when=go_long) strategy.entry("short_ride", strategy.short,when=go_short) strategy.close("long_ride",when=go_short) strategy.close("short_ride",when=go_long)