घातीय चलती औसत (ईएमए) उछाल रणनीति एक रणनीति है जो चलती औसत रेखा के मूल्य सफलताओं को ट्रैक करती है। यह जांचती है कि क्या मोमबत्तियां चलती औसत रेखा के नीचे से वापस उछालती हैं। यदि हां, तो यह एक तेजी का संकेत है; यदि मोमबत्ती चलती औसत रेखा के ऊपर से नीचे की ओर उछालती है, तो यह एक मंदी का संकेत है।
घातीय चलती औसत उछाल रणनीति
यह रणनीति घातीय चलती औसत (ईएमए) रेखा पर आधारित है। यह वास्तविक समय में ईएमए रेखा की गणना करता है। फिर यह जांचता है कि क्या मूल्य ईएमए रेखा से वापस उछलता हैः
इस तरह की उछाल रणनीति के लिए प्रवेश संकेत है।
ईएमए उछाल रणनीति केवल मूल्य उलट की पुष्टि के बाद प्रवेश करती है, जो प्रवृत्ति के खिलाफ व्यापार करने और फंसने से बचती है।
घातीय चलती औसत का उपयोग करके, रणनीति प्रभावी रूप से मूल्य डेटा को चिकना कर सकती है और बाजार शोर को फ़िल्टर कर सकती है, जिसके परिणामस्वरूप छोटे ड्रॉडाउन और अच्छे ऐतिहासिक रिटर्न होते हैं।
ईएमए उछाल रणनीति केवल चलती औसत पर निर्भर करती है, जो शुरुआती लोगों के लिए समझ में आसान है। इस बीच, ईएमए अवधि को विभिन्न उत्पादों के अनुकूल लचीले ढंग से समायोजित किया जा सकता है।
ईएमए रेखा के आसपास अक्सर घने झूठे ब्रेकआउट होते हैं, जिससे गलत संकेत हो सकते हैं। ईएमए मापदंडों को शोर को फ़िल्टर करने के लिए समायोजित करने की आवश्यकता होती है।
यह रणनीति अनिवार्य रूप से प्रवृत्ति के साथ व्यापार करती है। यह मूल्य मोड़ बिंदुओं की भविष्यवाणी करने में असमर्थ है और केवल प्रवृत्ति का पालन कर सकती है। यह चक्रीय समायोजन के दौरान सबसे अच्छा प्रवेश अवसर खो सकता है।
चलती औसत रेखा के निकट स्टॉप लॉस कभी-कभी मारा जाता है, जिससे नुकसान बढ़ जाता है। इससे अधिक लचीली स्टॉप लॉस विधियों की आवश्यकता होती है।
आरएसआई और एमएसीडी जैसे संकेतकों को मूल्य उलट की पुष्टि करने और झूठे संकेतों को फ़िल्टर करने के लिए जोड़ा जा सकता है।
अधिक लचीली स्टॉप लॉस विधियों जैसे समय स्टॉप और अस्थिरता स्टॉप का उपयोग किया जा सकता है ताकि बाहर निकलने के जोखिम को कम किया जा सके।
सर्वोत्तम पैरामीटर संयोजन खोजने के लिए ईएमए अवधि मापदंडों का अनुकूलन करें। बाजार चक्रों को ट्रैक करने के लिए ईएमए मापदंडों को गतिशील भी बनाया जा सकता है।
ईएमए उछाल रणनीति एक सरल और व्यावहारिक प्रवृत्ति के बाद की रणनीति है। इसमें छोटे ड्रॉडाउन हैं और इसे समझना आसान है। साथ ही, इसमें झूठे संकेतों और रोके जाने के कुछ जोखिम भी हैं। हम इसे एक स्थिर और विश्वसनीय मात्रात्मक रणनीति बनाने के लिए बेहतर संकेतक संयोजन, स्टॉप लॉस विधियों और पैरामीटर चयन का उपयोग करके रणनीति का अनुकूलन कर सकते हैं।
/*backtest start: 2022-12-01 00:00:00 end: 2023-12-07 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/ // © tweakerID // Simple strategy that checks for price bounces over an Exponential Moving Average. If the CLOSE of the candle bounces // back from having it's LOW below the EMA, then it's a Bull Bounce. If the CLOSE of the candle bounces down from having it's // high above the EMA, then it's a Bear Bounce. This logic can be reverted. //@version=4 strategy("EMA Bounce", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=10000, commission_value=0.04, calc_on_every_tick=false, slippage=0) direction = input(0, title = "Strategy Direction", type=input.integer, minval=-1, maxval=1) strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long)) /////////////////////// STRATEGY INPUTS //////////////////////////////////////// title1=input(true, "-----------------Strategy Inputs-------------------") i_EMA=input(20, title="EMA Length") /////////////////////// BACKTESTER ///////////////////////////////////////////// title2=input(true, "-----------------General Inputs-------------------") // Backtester General Inputs i_SL=input(true, title="Use Swing Stop Loss and Take Profit") i_SPL=input(defval=10, title="Swing Point Loopback") i_PercIncrement=input(defval=.2, step=.1, title="Swing Point SL Perc Increment")*0.01 i_TPRRR = input(1.2, step=.1, title="Take Profit Risk Reward Ratio") // Bought and Sold Boolean Signal bought = strategy.position_size > strategy.position_size[1] or strategy.position_size < strategy.position_size[1] // Price Action Stop and Take Profit LL=(lowest(i_SPL))*(1-i_PercIncrement) HH=(highest(i_SPL))*(1+i_PercIncrement) LL_price = valuewhen(bought, LL, 0) HH_price = valuewhen(bought, HH, 0) entry_LL_price = strategy.position_size > 0 ? LL_price : na entry_HH_price = strategy.position_size < 0 ? HH_price : na tp=strategy.position_avg_price + (strategy.position_avg_price - entry_LL_price)*i_TPRRR stp=strategy.position_avg_price - (entry_HH_price - strategy.position_avg_price)*i_TPRRR /////////////////////// STRATEGY LOGIC ///////////////////////////////////////// EMA=ema(close, i_EMA) LowAboveEMA=low > EMA LowBelowEMA=low < EMA HighAboveEMA=high > EMA HighBelowEMA=high < EMA BullBounce=LowAboveEMA[1] and LowBelowEMA and close > EMA //and close > open BearBounce=HighBelowEMA[1] and HighAboveEMA and close < EMA //and close < open plot(EMA) BUY=BullBounce SELL=BearBounce //Inputs DPR=input(false, "Allow Direct Position Reverse") reverse=input(false, "Reverse Trades") // Entries if reverse if not DPR strategy.entry("long", strategy.long, when=SELL and strategy.position_size == 0) strategy.entry("short", strategy.short, when=BUY and strategy.position_size == 0) else strategy.entry("long", strategy.long, when=SELL) strategy.entry("short", strategy.short, when=BUY) else if not DPR strategy.entry("long", strategy.long, when=BUY and strategy.position_size == 0) strategy.entry("short", strategy.short, when=SELL and strategy.position_size == 0) else strategy.entry("long", strategy.long, when=BUY) strategy.entry("short", strategy.short, when=SELL) SL=entry_LL_price SSL=entry_HH_price TP=tp STP=stp strategy.exit("TP & SL", "long", limit=TP, stop=SL, when=i_SL) strategy.exit("TP & SL", "short", limit=STP, stop=SSL, when=i_SL) /////////////////////// PLOTS ////////////////////////////////////////////////// plot(strategy.position_size > 0 ? SL : na , title='SL', style=plot.style_cross, color=color.red) plot(strategy.position_size < 0 ? SSL : na , title='SSL', style=plot.style_cross, color=color.red) plot(strategy.position_size > 0 ? TP : na, title='TP', style=plot.style_cross, color=color.green) plot(strategy.position_size < 0 ? STP : na, title='STP', style=plot.style_cross, color=color.green) // Draw price action setup arrows plotshape(BUY ? 1 : na, style=shape.triangleup, location=location.belowbar, color=color.green, title="Bullish Setup", transp=80, size=size.auto) plotshape(SELL ? 1 : na, style=shape.triangledown, location=location.abovebar, color=color.red, title="Bearish Setup", transp=80, size=size.auto)