यह रणनीति रिवर्स ट्रेडिंग के अवसरों की पहचान करने के लिए 255 पीरियड ईएमए और एमएसीडी संकेतक का उपयोग करती है। यह रिवर्स पदों में प्रवेश करती है जब कीमत 255 ईएमए और एमएसीडी क्रॉसओवर से दूर होती है।
255 अवधि के ईएमए का उपयोग मध्यम से दीर्घकालिक प्रवृत्ति दिशा निर्धारित करने के लिए किया जाता है। ईएमए से दूर होने वाली कीमत ओवरबॉट/ओवरसोल्ड क्षेत्र का प्रतिनिधित्व करती है।
ऊपरी और निचले बैंड को ईएमए के आधार पर निर्धारित किया जाता है, जिसमें बैंड की चौड़ाई एटीआर संकेतक द्वारा गतिशील रूप से समायोजित की जाती है।
जब कीमत ऊपरी बैंड से ऊपर होती है, तो यह ओवरबॉट क्षेत्र में होती है। जब निचली बैंड से नीचे होती है, तो यह ओवरसोल्ड क्षेत्र में होती है। ये उल्टा होने की उम्मीद करने वाली स्थितियां हैं।
एमएसीडी संकेतक मानक मापदंडों (12, 26, 9) का उपयोग करता है। एमएसीडी क्रॉसओवर तेजी का संकेत है और मृत्यु क्रॉस मंदी का संकेत है।
ईएमए ओवरबॉट/ओवरसोल्ड और एमएसीडी संकेतों के साथ संयुक्त, रिवर्स पोजीशन तब ली जाती हैं जब कीमत ईएमए से दूर होती है और एमएसीडी रिवर्स होता है।
255-पीरियड ईएमए मध्यम से दीर्घकालिक रुझानों को काफी अच्छी तरह से निर्धारित कर सकता है।
एमएसीडी क्रॉसओवर संवेदी रूप से अल्पकालिक उलट अवसरों को पकड़ सकते हैं।
ईएमए बैंड ट्रेंड पीछा करने से बचने के लिए ओवरबॉट/ओवरसोल्ड क्षेत्रों की पहचान करने में मदद करते हैं।
रिवर्स ट्रेडिंग मूल्य में बदलाव से पहले शुरुआती प्रविष्टियों की अनुमति देता है, जिसमें कुछ योजना-आधारित लक्षण होते हैं।
गतिशील एटीआर स्टॉप लॉस जोखिमों को प्रभावी ढंग से नियंत्रित कर सकता है।
एमएसीडी संकेतों में झूठे उलटफेर हो सकते हैं, जिससे अनावश्यक नुकसान हो सकते हैं।
मजबूत रुझानों के परिदृश्यों में उलटफेर विफल होने की संभावना है, इसलिए अंधेरे उलटफेर से बचना चाहिए।
स्टॉप लॉस सेट करना बहुत तंग होने से समय से पहले स्टॉप आउट हो सकता है, जबकि बहुत चौड़ा होने से जोखिम नियंत्रण में कमी आ सकती है।
अनुचित पैरामीटर ट्यूनिंग भी रणनीति प्रदर्शन को प्रभावित कर सकता है, पुनरावर्ती अनुकूलन की आवश्यकता होती है।
व्यापार लागत भी अंतिम लाभप्रदता को प्रभावित कर सकती है और इस पर विचार किया जाना चाहिए।
मध्यम से दीर्घकालिक रुझान का बेहतर मापक खोजने के लिए विभिन्न ईएमए अवधियों का परीक्षण करें।
ओवरबॉट/ओवरसोल्ड की पहचान करने के लिए अन्य संकेतकों को ईएमए के साथ जोड़ने का प्रयास करें, उदाहरण के लिए बोलिंगर बैंड्स, केडी, आरएसआई।
बेहतर संवेदनशीलता या स्थिरता के लिए एमएसीडी मापदंडों का अनुकूलन करें।
अन्य स्टॉप लॉस विधियों का परीक्षण करें, जैसे लाभ में लॉक करने के लिए ट्रेलिंग स्टॉप।
स्थिरता के लिए विभिन्न उत्पादों और समय सीमाओं में मापदंडों का अनुकूलन करें।
मजबूत रुझानों में उलटफेर से बचने के लिए रुझान शक्ति फ़िल्टर शामिल करें।
यह रणनीति ईएमए मध्य-लंबी प्रवृत्ति और एमएसीडी अल्पकालिक उलटफेर को जोड़ती है, ओवरबॉट / ओवरसोल्ड क्षेत्रों में रिवर्स ट्रेडिंग करती है। यह पेशेवरों और विपक्षों के साथ एक बुनियादी उलटफेर रणनीति है। आगे पैरामीटर ट्यूनिंग और जोखिम नियंत्रण इसे एक कुशल ट्रेडिंग प्रणाली में बदल सकता है। लेकिन किसी भी रणनीति को यांत्रिक संकेतों के बजाय बाजार वातावरण के अनुसार अनुकूलन समायोजन की आवश्यकता होती है।
/*backtest start: 2023-09-12 00:00:00 end: 2023-09-19 00:00:00 period: 15m basePeriod: 5m 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/ // © bufirolas //--- From 15 Trading Examples by Trader Alyx --- // Seems like this strategy works better if we reverse the EMA filter logic. // "Description: This basic scalping strategy allows you to enter the market based upon sentiment // provided by the EMA, set at 255 periods. When price is trading below the 255 EMA, you would // look to enter a LONG BUY positions, and when price is trading above the 255 EMA, you would // look to enter a SELL SHORT position. The MACD lagging indicator will show you clear signals for // when to do this. When the MACD lines cross in a bullish manner and price is below the 255 // EMA, buy. When the MACD lines cross in a bearish manner and price is above the 255 EMA, // sell. // NOTE: Make sure that price is trading away from the 255EMA before entering a LONG or SHORT // position. As you can see in the chart below, the clearest signs for trade entry were presented // when price was trading AWAY from the 255EMA" //@version=4 // strategy("255 EMA Strategy", overlay=true, pyramiding=1, default_qty_type=strategy.cash, default_qty_value=100, commission_value = 0.04, initial_capital=100) //Inputs i_reverse=input(false, title="Trade Reverse") i_EMAreverse=input(true, title="EMA Reverse Entry") i_EMAlength=input(defval=255, title="EMA Length") i_EMAexpander=input(defval=5, title="EMA Expander") i_MACDmult=input(defval=1, minval=1, title="MACD Mult") //SL & TP Calculations i_SL=input(true, title="Use Swing Lo/Hi Stop Loss & Take Profit") i_SwingLookback=input(20, title="Swing Lo/Hi Lookback") i_SLExpander=input(defval=0, step=.2, title="SL Expander")*.01 i_TPExpander=input(defval=0, step=.2, title="TP Expander")*.01 //Strategy Variables EMA=ema(close,i_EMAlength) [macdLine, signalLine, histLine]=macd(close, 12*i_MACDmult, 26*i_MACDmult, 9*i_MACDmult) EMAupper=EMA+((atr(100))*i_EMAexpander) EMAlower=EMA-((atr(100))*i_EMAexpander) //SL & TP Variables SwingLow=lowest(i_SwingLookback) SwingHigh=highest(i_SwingLookback) //Calculations EMAbuy=i_EMAreverse ? close > EMAupper : close < EMAlower EMAsell=i_EMAreverse ? close < EMAlower : close > EMAupper MACDbuy=crossover(macdLine, signalLine) MACDsell=crossunder(macdLine, signalLine) //SL & TP Calculations bought=strategy.position_size != strategy.position_size[1] lSL=valuewhen(bought, SwingLow, 0)*(1-i_SLExpander) sSL=valuewhen(bought, SwingHigh, 0)*(1+i_SLExpander) lTP=strategy.position_avg_price + (strategy.position_avg_price-(valuewhen(bought, SwingLow, 0))*(1-i_TPExpander)) sTP=strategy.position_avg_price - (valuewhen(bought, SwingHigh, 0) - strategy.position_avg_price)*(1+i_TPExpander*100) islong=strategy.position_size > 0 isshort=strategy.position_size < 0 SL= islong ? lSL : isshort ? sSL : na TP= islong ? lTP : isshort ? sTP : na //Entries strategy.entry("long", long=not i_reverse?true:false, when=EMAbuy and MACDbuy) strategy.entry("short", long=not i_reverse?false:true, when=EMAsell and MACDsell) //Exits if i_SL strategy.exit("longexit", "long", stop=SL, limit=TP) strategy.exit("shortexit", "short", stop=SL, limit=TP) //Plots plot(EMA, "EMA", color=color.white, linewidth=2) plot(EMAupper, "EMA Upper Band") plot(EMAlower, "EMA Lower Band") plot(i_SL ? SL : na, color=color.red, style=plot.style_cross, title="SL") plot(i_SL ? TP : na, color=color.green, style=plot.style_cross, title="TP")