यह रणनीति लॉन्ग या शॉर्ट एंट्री सिग्नल उत्पन्न करती है जब स्टॉक की कीमत का तेज़ 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)