डायनेमिक मूविंग एवरेज क्रॉसओवर कॉम्बो रणनीति एक संयुक्त ट्रेडिंग रणनीति है जो कई तकनीकी संकेतकों और बाजार की स्थिति का पता लगाने को एकीकृत करती है। यह गतिशील रूप से बाजार की अस्थिरता की गणना करती है और लंबी अवधि के मूविंग एवरेज और अस्थिरता से मूल्य दूरी के आधार पर तीन बाजार चरणों का निर्धारण करती हैः अस्थिर, प्रवृत्ति और समेकन। विभिन्न बाजार स्थितियों में, रणनीति अलग-अलग प्रवेश और निकास नियमों को अपनाती है और ईएमए / एसएमए क्रॉसओवर, एमएसीडी और बोलिंगर बैंड जैसे संकेतकों के संयोजन के साथ खरीद और बिक्री संकेत उत्पन्न करती है।
पिछले 14 दिनों की बाजार अस्थिरता को मापने के लिए एटीआर संकेतक का प्रयोग करें। फिर औसत अस्थिरता प्राप्त करने के लिए 100-दिवसीय एसएमए फ़िल्टर लागू करें।
मूल्य और 200-दिवसीय एसएमए के बीच की दूरी की गणना करें। यदि पूर्ण दूरी स्पष्ट दिशा के साथ औसत अस्थिरता के 1.5 गुना से अधिक है, तो यह एक प्रवृत्ति बाजार के रूप में निर्धारित किया जाता है। यदि वर्तमान अस्थिरता औसत के 1.5 गुना से अधिक है, तो यह एक अस्थिर बाजार है।
फास्ट ईएमए अवधि 10 दिन की है। स्लो एसएमए अवधि 30 दिन की है। एक खरीद संकेत तब उत्पन्न होता है जब फास्ट ईएमए धीमी एसएमए से ऊपर पार करता है।
12, 26, 9 मापदंडों के साथ एमएसीडी की गणना करें। एक सकारात्मक एमएसीडी हिस्टोग्राम खरीद संकेत देता है।
20 दिन के मानक विचलन चैनल की गणना करें. यदि चैनल चौड़ाई अपने आप में 20 दिन के एसएमए से छोटी है, तो यह समेकन कर रहा है.
अस्थिरः क्रॉसओवर या एमएसीडी पॉजिटिव होने पर बैंड के भीतर मूल्य के साथ लॉन्ग दर्ज करें।
ट्रेंडिंगः क्रॉसओवर या एमएसीडी पॉजिटिव होने पर लॉन्ग दर्ज करें।
समेकनः क्रॉसओवर और निचले बैंड से ऊपर की कीमत पर लॉन्ग दर्ज करें।
सामान्यः जब एमएसीडी 2 बार के लिए नकारात्मक हो और कीमत 2 दिन गिर जाए तो बाहर निकलें।
अस्थिरताः स्टॉकआरएसआई ओवरबॉट होने पर प्लस एक्जिट।
समेकनः जब कीमत ऊपरी बैंड से नीचे हो तो प्लस एक्जिट।
इस रणनीति के निम्नलिखित लाभ हैंः
कम व्यक्तिपरक हस्तक्षेपों के साथ व्यवस्थित संचालन।
अनुकूलनशील मापदंडों को बाजार की स्थितियों के आधार पर समायोजित किया गया।
कई संकेतकों के संयोजन के साथ उच्च संकेत सटीकता।
बोलिंगर बैंड्स ऑटो स्टॉप लॉस के साथ कम जोखिम।
झूठे संकेतों से बचने के लिए सभी गोल स्थिति फ़िल्टरिंग।
गतिशील स्टॉप लॉस और ट्रेंड का पालन करने के लिए लाभ लें।
मुख्य जोखिम हैंः
अमान्य रणनीति यदि अनुचित पैरामीटर ट्यूनिंग. अनुकूलन का सुझाव दिया.
अचानक घटनाओं के कारण मॉडल विफलता. तर्क अद्यतन की सिफारिश की.
व्यापार लागत से संकुचित लाभ मार्जिन। कम कमीशन ब्रोकर की सलाह दी।
कई मॉड्यूलों के साथ अधिक जटिलता।
अनुकूलन के संभावित दिशाएं:
बाजार के माहौल का आकलन करने के मापदंडों में सुधार।
स्वचालित पैरामीटर अनुकूलन के लिए मशीन लर्निंग का परिचय दें।
घटनाओं का पता लगाने के लिए पाठ विश्लेषण जोड़ें.
सर्वोत्तम मापदंडों को खोजने के लिए बहु-बाजार बैकटेस्टिंग।
बेहतर लाभ के लिए ट्रेलिंग स्टॉप रणनीति लागू करें।
डायनेमिक मूविंग एवरेज क्रॉसओवर कॉम्बो रणनीति एक बुद्धिमान बहु-सूचक मात्रात्मक ट्रेडिंग प्रणाली है। यह व्यवस्थित नियम-आधारित ट्रेडिंग को लागू करने के लिए बाजार की स्थितियों के आधार पर पैरामीटर को गतिशील रूप से समायोजित करती है। रणनीति अत्यधिक अनुकूलनशील और निर्धारक है। लेकिन अत्यधिक जटिलता से बचने के लिए पैरामीटर और अतिरिक्त मॉड्यूल को सावधानीपूर्वक पेश करने की आवश्यकता है। कुल मिलाकर यह एक व्यवहार्य मात्रात्मक रणनीति विचार है।
/*backtest start: 2024-01-28 00:00:00 end: 2024-02-04 00:00:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Improved Custom Strategy", shorttitle="ICS", overlay=true) // Volatility volatility = ta.atr(14) avg_volatility_sma = ta.sma(volatility, 100) avg_volatility = na(avg_volatility_sma) ? 0 : avg_volatility_sma // Market Phase detection long_term_ma = ta.sma(close, 200) distance_from_long_term_ma = close - long_term_ma var bool isTrending = math.abs(distance_from_long_term_ma) > 1.5 * avg_volatility and not na(distance_from_long_term_ma) var bool isVolatile = volatility > 1.5 * avg_volatility // EMA/MA Crossover fast_length = 10 slow_length = 30 fast_ma = ta.ema(close, fast_length) slow_ma = ta.sma(close, slow_length) crossover_signal = ta.crossover(fast_ma, slow_ma) // MACD [macdLine, signalLine, macdHistogram] = ta.macd(close, 12, 26, 9) macd_signal = crossover_signal or (macdHistogram > 0) // Bollinger Bands source = close basis = ta.sma(source, 20) upper = basis + 2 * ta.stdev(source, 20) lower = basis - 2 * ta.stdev(source, 20) isConsolidating = (upper - lower) < ta.sma(upper - lower, 20) // StockRSI length = 14 K = 100 * (close - ta.lowest(close, length)) / (ta.highest(close, length) - ta.lowest(close, length)) D = ta.sma(K, 3) overbought = 75 oversold = 25 var float potential_SL = na var float potential_TP = na var bool buy_condition = na var bool sell_condition = na // Buy and Sell Control Variables var bool hasBought = false var bool hasSold = true // Previous values tracking prev_macdHistogram = macdHistogram[1] prev_close = close[1] // Modify sell_condition with the new criteria if isVolatile buy_condition := not hasBought and crossover_signal or macd_signal and (close > lower) and (close < upper) sell_condition := hasBought and (macdHistogram < 0 and prev_macdHistogram < 0) and (close < prev_close and prev_close < close[2]) potential_SL := close - 0.5 * volatility potential_TP := close + volatility if isTrending buy_condition := not hasBought and crossover_signal or macd_signal sell_condition := hasBought and (macdHistogram < 0 and prev_macdHistogram < 0) and (close < prev_close and prev_close < close[2]) potential_SL := close - volatility potential_TP := close + 2 * volatility if isConsolidating buy_condition := not hasBought and crossover_signal and (close > lower) sell_condition := hasBought and (close < upper) and (macdHistogram < 0 and prev_macdHistogram < 0) and (close < prev_close and prev_close < close[2]) potential_SL := close - 0.5 * volatility potential_TP := close + volatility // Update the hasBought and hasSold flags if buy_condition hasBought := true hasSold := false if sell_condition hasBought := false hasSold := true // Strategy Entry and Exit if buy_condition strategy.entry("BUY", strategy.long, stop=potential_SL, limit=potential_TP) strategy.exit("SELL_TS", from_entry="BUY", trail_price=close, trail_offset=close * 0.05) if sell_condition strategy.close("BUY") // Visualization plotshape(series=buy_condition, style=shape.labelup, location=location.belowbar, color=color.green, text="BUY", size=size.small) plotshape(series=sell_condition, style=shape.labeldown, location=location.abovebar, color=color.red, text="SELL", size=size.small) plot(long_term_ma, color=color.gray, title="200-Day MA", linewidth=1) plot(potential_SL, title="SL Level", color=color.red, linewidth=1, style=plot.style_linebr) plot(potential_TP, title="TP Level", color=color.green, linewidth=1, style=plot.style_linebr) bgcolor(isVolatile ? color.new(color.purple, 90) : isTrending ? color.new(color.blue, 90) : isConsolidating ? color.new(color.orange, 90) : na)