
डायनामिक मूविंग एवरेज क्रॉसओवर कॉम्बो स्ट्रैटेजी (Dynamic Moving Average Crossover Combo Strategy) एक मिश्रित ट्रेडिंग रणनीति है जो कई तकनीकी संकेतकों और बाजार चरणों की जांच को एकीकृत करती है। यह गतिशील रूप से बाजार की अस्थिरता की गणना करती है, कीमतों और लंबी अवधि के मूविंग एवरेज से दूरी और अस्थिरता के आधार पर बाजार के तीन चरणों का आकलन करती हैः उतार-चढ़ाव, प्रवृत्ति और संरेखण। विभिन्न बाजार चरणों में, रणनीति अलग-अलग प्रवेश और बाहर निकलने के नियमों का उपयोग करती है, जबकि ईएमए/एसएमए क्रॉसओवर, एमएसीडी और बोलिंगर बैंड्स जैसे कई संकेतकों के साथ एक साथ खरीद और बिक्री संकेत देती है।
एटीआर (औसत वास्तविक अस्थिरता) सूचकांक का उपयोग करके बाजार में हाल के 14 दिनों की अस्थिरता की गणना की जाती है। फिर 100 दिनों की सरल चलती औसत फ़िल्टर के साथ औसत अस्थिरता प्राप्त की जाती है।
मूल्य की गणना 200-दिवसीय सरल चलती औसत से दूरी के आधार पर की जाती है। यदि दूरी औसत अस्थिरता के 1.5 गुना से अधिक है, और दिशा स्पष्ट है, तो इसे ट्रेंडिंग घटना के रूप में माना जाता है। यदि वर्तमान अस्थिरता औसत अस्थिरता के 1.5 गुना से अधिक है, तो इसे आघात के रूप में माना जाता है।
फास्ट ईएमए की अवधि 10 दिनों की होती है और धीमी एसएमए की अवधि 30 दिनों की होती है। जब फास्ट ईएमए धीमी एसएमए से गुजरता है, तो एक खरीद संकेत उत्पन्न होता है।
12, 26, 9 पैरामीटर MACD की गणना करें। जब MACD स्तंभ सकारात्मक हो जाता है तो एक खरीद संकेत उत्पन्न होता है।
20 दिनों के भीतर मानक विचलन चैनल की गणना करें. यदि चैनल की चौड़ाई 20 दिनों के एसएमए से कम है, तो इसे समेकन अवधि के रूप में माना जाता है।
अस्थिर अवधि: तेजी से लाइन क्रॉस या MACD स्तंभ सही हो गया, और Bollinger Bands के भीतर समापन की कीमत, प्रवेश अधिक किया गया
रुझान अवधिः धीमी गति से लाइन क्रॉस या MACD स्तंभों में परिवर्तन।
इस अवधि के दौरान, लाइन क्रॉसिंग की गति धीमी हो जाती है, और लोअर बैंड से अधिक मूल्य पर बंद होने पर, अधिक प्रवेश किया जाता है।
निम्नलिखित शर्तों को पूरा करने के लिए एक बर्फ की स्थिति में प्रवेश करेंः MACD लगातार दो K लाइनों के लिए नकारात्मक है, और समापन मूल्य लगातार दो दिनों के लिए गिर गया है।
अस्थिरता: जब स्टॉक आरएसआई ओवरबॉय क्षेत्र में प्रवेश करता है, तो बाहर निकलें।
यह भी देखेंः जब कीमतें ऊपरी बैंड से कम होती हैं, तो खेलें
यह एक स्मार्ट ट्रेडिंग रणनीति है जो बाजार की परिस्थितियों के साथ जुड़ी हुई है और इसके निम्नलिखित फायदे हैंः
यह सब कुछ व्यवस्थित रूप से किया जा रहा है ताकि व्यक्तिपरक हस्तक्षेप को कम किया जा सके
बाजार की स्थिति के लिए अनुकूलित रणनीतिक पैरामीटर के संयोजन के साथ, अधिक अनुकूलनशील।
सिग्नल निश्चितता बढ़ाने के लिए बहु-सूचक संयोजन
बॉलिंगर बैंड्स में जोखिम को कम करने के लिए स्वचालित स्टॉप लॉस।
सभी प्रकार की शर्तों को देखते हुए, झूठे संकेतों को फ़िल्टर करें।
गतिशील स्टॉप-लॉस स्टॉप-लॉस, ट्रेंड ट्रैक-लाभ।
मुख्य जोखिम इस प्रकार हैं:
अनुचित पैरामीटर सेटिंग नीति विफलता का कारण बन सकता है. पैरामीटर संयोजन का अनुकूलन करने की सिफारिश की जाती है.
आकस्मिक घटनाएं मॉडल को विफल कर देती हैं।
ट्रेडिंग शुल्क संपीड़न लाभ कमाने की जगह कम शुल्क वाले ब्रोकरों को चुनने की सलाह
बहु-सूचक संयोजन रणनीतिक जटिलता को बढ़ाता है। कोर सूचक चुनने की सिफारिश की जाती है।
हम निम्नलिखित आयामों से अनुकूलन जारी रख सकते हैंः
बाजार के माहौल में निर्णय के मानदंडों को अनुकूलित करना और सटीकता में सुधार करना।
मशीन लर्निंग मॉड्यूल को जोड़ना और पैरामीटर को अनुकूलित करना।
पाठ प्रसंस्करण के संयोजन के साथ एक महत्वपूर्ण घटना के जोखिम का आकलन करना।
मल्टी-मार्केट रिट्वीट, इष्टतम संयोजन पैरामीटर की तलाश में।
ट्रेलिंग स्टॉप रणनीति को जोड़ना।
गतिशील चलती औसत क्रॉस-कॉम्बिनेशन रणनीति एक बहु-सूचक स्मार्ट ट्रेडिंग रणनीति है। यह बाजार की स्थिति को समायोजित करने वाले मापदंडों को जोड़ने में सक्षम है, जो कि सशर्त निर्णय के आधार पर व्यवस्थित व्यापार को लागू करता है। इसकी मजबूत अनुकूलनशीलता और निश्चितता है। लेकिन पैरामीटर सेटिंग और नए मॉड्यूल को सावधानी बरतने की आवश्यकता है ताकि रणनीति की जटिलता को बढ़ाया न जा सके। कुल मिलाकर, यह एक मजबूत व्यवहार्यता है।
/*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)