डबल ईएमए ब्रेकिंग ट्रेडिंग रणनीति एक ट्रेंड ट्रैकिंग रणनीति है जो दो अलग-अलग चक्र के ईएमए के मध्य रेखाओं का उपयोग करने के लिए व्यापार संकेतों का निर्णय लेने के लिए करती है। यह रणनीति ट्रेडिंग संकेतों को फ़िल्टर करने के लिए अतिरिक्त ईएमए संकेतों को जोड़ती है ताकि ट्रेंडिंग बाजार में बेहतर प्रवेश समय प्राप्त किया जा सके।
यह रणनीति खरीदारी और बिक्री के समय का निर्धारण करने के लिए तेजी से ईएमए (९ चक्र) और धीमे ईएमए (२१ चक्र) का उपयोग करती है। जब तेजी से ईएमए धीमी रेखा पर चलती है तो खरीदारी का संकेत मिलता है और जब तेजी से ईएमए धीमी रेखा पर चलती है तो बिक्री का संकेत मिलता है। झूठे संकेतों को दूर करने के लिए, रणनीति में सहायक ईएमए (५ चक्र) और दो अन्य ईएमए (१ चक्र, ४ चक्र) भी शामिल हैं। सहायक ईएमए केवल तेजी से ईएमए के बीच होता है जब तेजी से ईएमए धीमी रेखा पर होता है और एक चक्र चार चक्र ईएमए से अधिक होता है।
जब ट्रेडिंग सिग्नल ट्रिगर हो जाता है, तो रणनीति एटीआर के आधार पर स्टॉप-लॉस और स्टॉप-ट्रिगर को सेट करती है; टीपी 1 एटीआर का 6 गुना है, जो तेजी से गति पर कुछ लाभ प्राप्त करने के लिए उपयोग किया जाता है; यदि कीमत टीपी 1 को ट्रिगर नहीं करती है, तो यह सीधे स्थिति को फ्लैट कर देती है, जब तेजी से ईएमए सहायक ईएमए को फिर से पार करता है, तो टीपी 2 स्टॉप-ट्रिगर को प्राप्त करता है।
ऑप्टिमाइज़ करने की दिशाः
द्वि-ईएमए ब्रेक ट्रेडिंग रणनीति दो ईएमए के क्रॉसिंग का उपयोग करती है, जो कई ईएमए फ़िल्टर और एटीआर गतिशील स्टॉप-लॉस के साथ प्रभावी रूप से ट्रेडिंग लाभों को ट्रैक कर सकती है। लेकिन ईएमए वक्र फिट, स्टॉप-लॉस जोखिम और अन्य मुद्दों पर ध्यान देना आवश्यक है। पैरामीटर अनुकूलन, जोखिम प्रबंधन और अन्य उपायों के माध्यम से अधिक स्थिर ट्रेडिंग प्रदर्शन प्राप्त किया जा सकता है। यह रणनीति एक निश्चित आधार के साथ व्यापारियों के लिए उपयुक्त है जो उच्च पूंजी उपयोगिता प्राप्त करने के लिए ट्रेंडिंग बाजार में उपयोग करते हैं।
दोहरी ईएमए क्रॉसओवर ट्रेडिंग रणनीति ट्रेंड की दिशा की पहचान करके खरीद और बिक्री संकेत उत्पन्न करने के लिए विभिन्न अवधियों की दो ईएमए लाइनों का उपयोग करती है। इसमें संकेत फ़िल्टरिंग के लिए अतिरिक्त ईएमए संकेतक भी शामिल हैं, जिससे ट्रेंडिंग बाजारों में बेहतर प्रवेश समय की अनुमति मिलती है।
यह रणनीति प्रविष्टियों को निर्धारित करने के लिए एक तेज़ ईएमए लाइन (9 अवधि) और एक धीमी ईएमए लाइन (21 अवधि) का उपयोग करती है। एक स्वर्ण क्रॉस जहां तेज़ ईएमए धीमी ईएमए के ऊपर पार करता है, एक खरीद संकेत उत्पन्न करता है, जबकि धीमी ईएमए के नीचे तेजी से ईएमए के साथ एक मौत क्रॉस एक बिक्री संकेत उत्पन्न करता है। झूठे संकेतों को फ़िल्टर करने के लिए, रणनीति एक सहायक ईएमए (5 अवधि) और दो और ईएमए (1 अवधि, 4 अवधि) का भी उपयोग करती है। एक वास्तविक ट्रेडिंग संकेत तभी ट्रिगर किया जाता है जब तेज़ और धीमी ईएमए पार करते हैं जबकि सहायक ईएमए दोनों के बीच होता है, और 1-अवधि ईएमए 4-अवधि ईएमए से ऊपर होता है।
एक बार जब ट्रेडिंग सिग्नल ट्रिगर हो जाता है, तो रणनीति स्टॉप लॉस और लाभ स्तरों को सेट करने के लिए एटीआर मूल्यों का उपयोग करती है। तेजी से लाभ लेने के लिए टीपी 1 को 6 x एटीआर पर सेट किया जाता है। यदि कीमत टीपी 1 तक नहीं पहुंचती है, तो रणनीति सीधे स्थिति को बंद कर देगी जब तेजी से ईएमए सहायक ईएमए पर वापस पार हो जाती है, जिससे टीपी 2 का एहसास होता है।
सुधार की दिशाएँ:
दोहरी ईएमए क्रॉसओवर रणनीति ट्रेंड दिशा के लिए ईएमए क्रॉस का लाभ उठाती है, साथ ही कई ईएमए फ़िल्टरिंग और गतिशील एटीआर स्टॉप लॉस / लाभ लेने के साथ। यह प्रभावी ट्रेंड फॉलो और लाभ कटाई की अनुमति देता है। हालांकि, ईएमए फिटिंग सीमाओं और स्टॉप लॉस जोखिमों के लिए सावधानी की आवश्यकता होती है। उचित अनुकूलन, जोखिम प्रबंधन आदि अधिक मजबूत प्रदर्शन का कारण बन सकता है। यह रणनीति ट्रेंडिंग बाजारों में उच्च पूंजी दक्षता प्राप्त करने के लिए अनुभवी व्यापारियों के लिए उपयुक्त है।
[/trans]
/*backtest start: 2022-10-09 00:00:00 end: 2023-04-13 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/ // @author ADHDCRYPT0 //@version=4 strategy(title = "EMA double crossover", shorttitle = "(TEST) double cross over", overlay = true, default_qty_value = 100, initial_capital = 1000,default_qty_type=strategy.percent_of_equity, pyramiding=0, process_orders_on_close=true) // Variables ema_len1 = input(9 , title="Fast EMA") ema_len2 = input(21, title="Slow EMA") ema_len3 = input(5, title="Exit EMA") ema_len4 = input(1, title="FastConf EMA") ema_len5 = input(4, title="SlowConf EMA") fastEMA = ema(open, ema_len1) slowEMA = ema(open, ema_len2) exitEMA = ema(open, ema_len3) conf1EMA = ema(open, ema_len4) conf2EMA = ema(open, ema_len5) plot(fastEMA, title='fastEMA', transp=0, color=color.green) plot(slowEMA, title='slowEMA', transp=0, color=color.red ) plot(exitEMA, title='exitEMA', transp=0, color=color.orange) plot(conf1EMA, title='conf1EMA', transp=0, color=color.blue) plot(conf2EMA, title='conf2EMA', transp=0, color=color.black) vol = volume volma = sma(volume,7) vol_cond = vol>volma atr = atr(5) // Entry Conditions and vol_cond long = crossover(fastEMA, slowEMA) and (conf1EMA > conf2EMA) and (fastEMA < exitEMA) short= crossunder(fastEMA, slowEMA) and (conf1EMA < conf2EMA) and (fastEMA > exitEMA) tradeType = input("BOTH", title="What trades should be taken : ", options=["LONG", "SHORT", "BOTH", "NONE"]) pos = 0.0 if tradeType=="BOTH" pos:= long? 1 : short? -1 : pos[1] if tradeType=="LONG" pos:= long? 1 : pos[1] if tradeType=="SHORT" pos:=short? -1 : pos[1] longCond = long and (pos[1]!= 1 or na(pos[1])) shortCond = short and (pos[1]!=-1 or na(pos[1])) // EXIT FUNCTIONS // sl = input(1, title="Stop Loss (ATR)", minval=0) tp = input(6, title="Take Profit 1 (ATR)", minval=0) // Simple Stop Loss + 2 Take Profits sl_long = valuewhen(longCond , low - atr * sl, 0) sl_short = valuewhen(shortCond, high+ atr * sl, 0) tp_long = valuewhen(longCond , high + atr * tp, 0) tp_short = valuewhen(shortCond, low - atr * tp, 0) long_exit = crossover(fastEMA, exitEMA) and pos[1]==1 short_exit= crossover(exitEMA, fastEMA) and pos[1]==-1 if long_exit or short_exit pos:=0 // Position Adjustment long_sl = low <sl_long [1] and pos[1]==1 short_sl = high>sl_short[1] and pos[1]==-1 if long_sl or short_sl pos:=0 // Strategy Backtest Limiting Algorithm i_startTime = input(defval = timestamp("01 Sep 2002 13:30 +0000"), title = "Backtesting Start Time", type = input.time) i_endTime = input(defval = timestamp("30 Sep 2099 19:30 +0000"), title = "Backtesting End Time", type = input.time) timeCond = true // Make sure we are within the bar range, Set up entries and exit conditions if strategy.equity >0 strategy.entry("long" , strategy.long , when=longCond and timeCond and tradeType!="SHORT" , alert_message="INSERT MESSAGE HERE") strategy.entry("short", strategy.short, when=shortCond and timeCond and tradeType!="LONG" , alert_message="INSERT MESSAGE HERE") strategy.exit("SL/TP1", from_entry = "long" , stop=sl_long , limit=tp_long , alert_message="INSERT MESSAGE HERE") strategy.exit("SL/TP1", from_entry = "short", stop=sl_short, limit=tp_short, alert_message="INSERT MESSAGE HERE") strategy.exit("SL", from_entry = "long" , stop=sl_long, alert_message="INSERT MESSAGE HERE") strategy.exit("SL", from_entry = "short", stop=sl_short, alert_message="INSERT MESSAGE HERE") strategy.close("long", when=long_exit , comment="TP2", alert_message="INSERT MESSAGE HERE") strategy.close("short", when=short_exit, comment="TP2", alert_message="INSERT MESSAGE HERE")