डबल ईएमए क्रॉसओवर प्रणाली दो घातीय चलती औसत (ईएमए) के आधार पर एक प्रवृत्ति के बाद ट्रेडिंग प्रणाली है। यह वर्तमान प्रवृत्ति की दिशा निर्धारित करने और तदनुसार ट्रेडिंग संकेत उत्पन्न करने के लिए अलग-अलग अवधि के साथ दो ईएमए का उपयोग करता है। अपने सरल तर्क और आसान कार्यान्वयन के साथ, यह प्रणाली बाजार के रुझानों को प्रभावी ढंग से पकड़ सकती है और मध्यम से दीर्घकालिक व्यापारियों के लिए उपयुक्त है।
इस प्रणाली का मूल दो ईएमए पर निर्भर करता है, एक तेज ईएमए और एक धीमी ईएमए। जब तेज ईएमए धीमी ईएमए से ऊपर होता है, तो इसे तेजी माना जाता है। जब तेज ईएमए धीमी ईएमए से नीचे होता है, तो इसे मंदी माना जाता है।
दोनों ईएमए के साथ मूल्य के संबंध के आधार पर, सलाखों को विभिन्न व्यापार क्षेत्रों में वर्गीकृत किया जा सकता हैः
जब तेज ईएमए धीमी ईएमए से ऊपर होता है और कीमत तेज ईएमए (जी1) से ऊपर होती है, तो यह एक मजबूत खरीद क्षेत्र है, यहां एक लंबी स्थिति ली जा सकती है।
जब तेज ईएमए धीमी ईएमए से नीचे होता है और कीमत तेज ईएमए (आर1) से नीचे होती है, तो यह एक मजबूत बिक्री क्षेत्र है, यहां एक छोटी स्थिति ली जा सकती है।
जब दो ईएमए पार होते हैं, तो चेतावनी (पीला) और संक्रमण (नारंगी) क्षेत्र दोनों ईएमए के साथ मूल्य संबंध के आधार पर निर्धारित किए जाते हैं। ये क्षेत्र संभावित रुझान शिफ्ट को इंगित करते हैं और अतिरिक्त संकेतकों का उपयोग करके सावधानी से व्यापार किया जाना चाहिए।
ट्रेडिंग सिग्नल तब उत्पन्न होते हैं जब मूल्य विभिन्न क्षेत्रों में चलता है। मजबूत क्षेत्रों G1 और R1 में, सिग्नल सीधे लिए जा सकते हैं। चेतावनी और संक्रमण क्षेत्रों में, अतिरिक्त संकेतक पुष्टि की आवश्यकता होती है।
स्टोचआरएसआई को संभावित प्रवेश और निकास बिंदुओं की पहचान करने में सहायता के लिए भी लागू किया गया है। स्टोचआरएसआई से ओवरसोल्ड और ओवरबॉट रीडिंग अतिरिक्त खरीद और बिक्री संकेत प्रदान कर सकती है।
सरल और स्वच्छ तर्क जिसे समझना और लागू करना आसान हो
मध्यम से दीर्घकालिक रुझानों को प्रभावी ढंग से पकड़ता है
चेतावनी/संक्रमण क्षेत्रों से मजबूत क्षेत्रों को अलग करता है, विश्वसनीय व्यापार संकेत उत्पन्न करता है
स्टॉकआरएसआई को शामिल करने से प्रवेश और निकास के समय में और सुधार होता है
एक शुद्ध प्रवृत्ति के बाद प्रणाली के रूप में, प्रदर्शन गैर-प्रवृत्ति बाजारों में पीड़ित हो सकता है
अनुचित ईएमए अवधि सेटिंग्स से झूठे संकेत हो सकते हैं
चेतावनी और संक्रमण क्षेत्रों में अधिक व्यापारिक जोखिम होते हैं और सावधानी बरतनी चाहिए
स्टॉप लॉस की अनुपस्थिति के कारण अधिक नुकसान हो सकता है
जोखिमों को निम्न द्वारा कम किया जा सकता हैः
प्रवृत्ति के साथ मजबूत साधनों का चयन करना और प्रवृत्ति कमजोर होने पर व्यापार को रोकना
झूठे संकेतों को कम करने के लिए ईएमए अवधि का अनुकूलन
चेतावनी/संक्रमण क्षेत्रों में पुष्टि के लिए अतिरिक्त संकेतकों की शुरूआत
व्यापार के प्रति हानि को नियंत्रित करने के लिए स्टॉप लॉस लागू करना
इस प्रणाली को निम्नलिखित क्षेत्रों में और बेहतर बनाया जा सकता हैः
संकेत की पुष्टि के लिए MACD, KDJ जैसे अधिक संकेतकों को शामिल करें
व्यापार सफलता दर में सुधार के लिए व्यापार क्षेत्रों में मात्रा विस्तार जैसे फ़िल्टर जोड़ें
अनुकूलित मापदंडों के लिए बाजार स्थितियों के आधार पर ईएमए अवधि को गतिशील रूप से समायोजित करें
कुछ हानि प्रतिशत पर ट्रेडों से बाहर निकलने के लिए स्टॉप लॉस रणनीतियों को लागू करें
स्थिति आकार और धन प्रबंधन को अनुकूलित करें
सबसे अच्छा विन्यास खोजने के लिए विभिन्न उपकरणों में परीक्षण और ठीक समायोजन पैरामीटर
अधिक संकेत पुष्टि, गतिशील पैरामीटर अनुकूलन, स्टॉप लॉस और उचित धन प्रबंधन की शुरूआत करके, बेहतर परिणामों के लिए सिस्टम की मजबूती में सुधार किया जा सकता है और जोखिमों को कम किया जा सकता है।
डबल ईएमए क्रॉसओवर प्रणाली दो ईएमए की तुलना करने पर आधारित एक प्रवृत्ति अनुसरण प्रणाली है। यह प्रवृत्ति की दिशा निर्धारित करने और व्यापार संकेत उत्पन्न करने के लिए ईएमए के साथ मूल्य के संबंध के आधार पर विभिन्न व्यापार क्षेत्रों की पहचान करता है। स्पष्ट तर्क और आसान कार्यान्वयन के साथ एक प्रणाली के रूप में, यह प्रभावी रूप से रुझानों को पकड़ सकती है। जबकि जोखिम मौजूद हैं, उन्हें सहायक संकेतकों, गतिशील अनुकूलन, स्टॉप लॉस और धन प्रबंधन के माध्यम से कम किया जा सकता है। कुल मिलाकर, डबल ईएमए क्रॉसओवर प्रणाली मध्यम से दीर्घकालिक व्यापारियों के लिए उपयुक्त एक ठोस प्रवृत्ति अनुसरण प्रणाली है।
/*backtest start: 2023-01-01 00:00:00 end: 2023-10-25 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Vvaz_ //base-on CDC ActionZone By Piriya a simple 2EMA and is most suitable for use with medium volatility market //@version=4 strategy(title="Vin's Playzone" ,shorttitle="VPz", overlay=true, margin_long=4, margin_short=2) //variable srcf = input(title="Source",type=input.source,defval=close) tffix = input(title="Fixed Timeframe",type=input.bool,defval=true) tfn = input(title="Timeframe in",type=input.resolution,defval="D") ema1 = input(title="Fast EMA",type=input.integer,defval=12) ema2 = input(title="Slow EMA",type=input.integer,defval=26) ema3 = input(title="EMA 100",type=input.bool,defval=true) smooter =input(title="Smoothing period (1 = no smoothing)",type=input.integer,defval=2) fillbar =input(title="Fill Bar Color",type=input.bool,defval=true) emasw = input(title="Show EMA",type=input.bool,defval=true) bssw = input(title="Show Buy-Sell signal",type=input.bool,defval=true) plotmm = input(title="Show Buy-Sell Momentum",type=input.bool,defval=true) plotmmsm = input(title="RSI Smoothing",type=input.integer,defval=0,minval=0,maxval=2) //math xcross =ema(srcf,smooter) efast = tffix ? ema(security(syminfo.tickerid,tfn,ema(srcf,ema1), gaps = barmerge.gaps_off,lookahead = barmerge.lookahead_on),smooter) :ema(xcross,ema1) eslow = tffix ? ema(security(syminfo.tickerid,tfn,ema(srcf,ema2), gaps = barmerge.gaps_off,lookahead = barmerge.lookahead_on),smooter) :ema(xcross,ema2) ema3x = ema(xcross,100) //Zone Bull = efast > eslow Bear = efast < eslow G1 = Bull and xcross > efast //buy G2 = Bear and xcross > efast and xcross > eslow //pre-buy1 G3 = Bear and xcross > efast and xcross < eslow //pre-buy2 R1 = Bear and xcross < efast //sell R2 = Bull and xcross < efast and xcross < eslow //pre-sell1 R3 = Bull and xcross < efast and xcross > eslow //pre-sell2 //color bcl = G1 ? color.green : G2 ? color.yellow : G3 ? color.orange :R1 ? color.red :R2 ? color.orange : R3 ? color.yellow : color.black barcolor(color=fillbar ? bcl : na ) //plots line1 = plot(ema3 ? ema3x : na ,"EMA100",color=color.white) line2 = plot(emasw ? efast : na ,"Fast EMA",color=color.green) line3 = plot(emasw ? eslow : na ,"Slow EMA",color=color.red) fillcl = Bull ? color.green : Bear ? color.red : color.black fill(line2,line3,fillcl) //actions buywhen = G1 and G1[1]==0 sellwhen = R1 and R1[1]==0 bullish = barssince(buywhen) < barssince(sellwhen) bearish = barssince(sellwhen) < barssince(buywhen) buy = bearish[1] and buywhen sell = bullish[1] and sellwhen bullbearcl = bullish ? color.green : bearish ? color.red : color.black //plot trend plotshape(bssw ? buy : na ,style=shape.arrowup,title="BUY",location=location.belowbar,color=color.green) plotshape( bssw ? sell : na ,style=shape.arrowdown ,title="Sell",location=location.abovebar,color=color.red) // Momentum Signal using StochRSI smoothK = input(5,"StochRSI smooth K",type=input.integer,minval=1) smoothD = input(4,"StochRSI smooth D",type=input.integer,minval=1) RSIlen = input(14,"RSI length",type=input.integer,minval=1) STOlen = input(14,"Stochastic length",type=input.integer,minval=1) SRsrc = input(close,"Source for StochasticRSI",type=input.source) OSlel = input(20,"Oversold Threshold",type=input.float,minval=0.00) OBlel = input(80,"Oversold Threshold",type=input.float,minval=0.00) rsil = rsi(SRsrc,RSIlen) K = sma(stoch(rsil,rsil,rsil,STOlen),smoothK) D = sma(K,smoothD) buymore = iff( bullish ,iff(D < OSlel and crossover(K,D), 2, iff(D > OSlel and crossover(K,D), 1,0)),0) sellmore = iff( bearish,iff(D > OBlel and crossunder(K,D), 2, iff(D < OBlel and crossunder(K,D), 1,0)),0) //plot momentum plotshape(plotmm ? buymore > plotmmsm ? buymore : na : na ,"Buy More!" ,style=shape.triangleup,location=location.belowbar,color=color.green) plotshape(plotmm ? sellmore > plotmmsm ? sellmore : na : na ,"Sell More!" ,style=shape.triangledown,location=location.abovebar,color=color.red) // === INPUT BACKTEST RANGE === FromYear = input(defval = 2009, title = "From Year", minval = 2009) FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) ToYear = input(defval = 9999, title = "To Year", minval = 2009) ToMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31) // === FUNCTION EXAMPLE === start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window window() => time >= start and time <= finish ? true : false // create function "within window of time" //stratgy excuter strategy.entry("Long",true,when=window() and buy or buymore) strategy.close("Long",when=window() and sell or sellmore,comment="TP Long") strategy.entry("Short",false,when=window() and sell or sellmore) strategy.close("Short",when=window() and buy or buymore,comment="TP Short")