
गतिशीलता के माध्यम से औसत रेखा को तोड़ने की रणनीति एक स्टॉक ट्रेडिंग रणनीति है जो गतिशीलता के संकेतकों के साथ औसत रेखा के क्रॉसिंग सिग्नल का उपयोग करती है। यह रणनीति सूचकांक चलती औसत (ईएमए), सरल चलती औसत (एसएमए), चलती औसत विखंडन सूचकांक (एमएसीडी) और संशोधित, अपेक्षाकृत मजबूत सूचकांक (स्टॉक आरएसआई) जैसे कई तकनीकी संकेतकों का उपयोग करती है, जो लंबे समय तक चलने वाली प्रवृत्ति की पुष्टि करते हैं।
इस रणनीति में मुख्य रूप से निम्नलिखित घटक शामिल हैं:
ईएमए/एसएमए औसत क्रॉसिंग: 9 चक्र की ईएमए तेज लाइन और 21 चक्र की एसएमए धीमी लाइन सेट करें, जब तेज लाइन धीमी लाइन से गुजरती है तो एक खरीद संकेत उत्पन्न होता है।
एमएसीडी सूचक: MACD संकेतक में MACD लाइन, सिग्नल लाइन और MACD कॉलम शामिल हैं। जब कॉलम सकारात्मक होता है और ईएमए/एसएमए द्वारा उत्पन्न खरीदारी संकेत के साथ सिंक्रनाइज़ होता है, तो अतिरिक्त पुष्टि के रूप में।
स्टॉक आरएसआईस्टॉकआरएसआई एक सुधारित आरएसआई संकेत है। एक खरीद संकेत तब उत्पन्न होता है जब सूचकांक रेखा ओवरबॉग लाइन से ऊपर होती है (80), या ओवरसोल्ड लाइन से नीचे होती है (२०) ।
ब्रिन बेल्ट: ब्रिन मध्य ट्रैक 20 दिन का एसएमए है, बैंडविड्थ ऊपर और नीचे के दोनों मानकों के बीच अंतर है। कीमतों को ब्रिन बैंड के भीतर होने की आवश्यकता होती है ताकि ट्रेडिंग सिग्नल उत्पन्न हो सके।
स्टॉप लॉस और स्टॉप प्लेसमेंट: पिछले 14 दिनों के एटीआर के आधार पर स्टॉप लॉस और स्टॉप प्राइस।
इस रणनीति के अनुसार, एक अंतिम खरीद संकेत प्राप्त करने के लिए, कम से कम दो संकेतकों को एक साथ खरीदना होगा, और स्टॉक की कीमत बुलिंग बैंड के भीतर होनी चाहिए और लंबी अवधि के लिए ऊपर की ओर बढ़ना चाहिए। जब MACD नीचे की ओर मुड़ता है, तो StockRSI ओवरबॉय क्षेत्र में प्रवेश करने के बाद एक बिक्री संकेत उत्पन्न करता है।
इस रणनीति में औसत रेखा क्रॉस, गतिमानता सूचकांक और अस्थिरता सूचकांक के विभिन्न लाभ शामिल हैं, जिनमें निम्नलिखित प्रमुख लाभ शामिल हैंः
बहुत बढ़िया प्रतिक्रिया: कई सूचकांक और सभी परिपक्व सूचकांक, रणनीति परिणाम बड़े हिस्सेदारी और एकल सूचकांक से बेहतर है।
पैरामीटर अनुकूलितमुख्य पैरामीटर जैसे कि ईएमए चक्र, बुरीन बैंड मार्ग को अनुकूलित किया गया है, जिससे सिस्टम की स्थिरता में सुधार हो सकता है।
ऑटो रोक: ब्रिनबैंड और एटीआर वास्तविक समय में स्टॉपलॉस को समायोजित कर सकते हैं, जो जोखिम नियंत्रण के लिए फायदेमंद है।
इसे लागू करना आसान है: कोड संक्षिप्त है, संकेतक आसानी से उपलब्ध हैं, और वास्तविक संचालन में कोई कठिनाई नहीं है।
हालांकि यह रणनीति अच्छी तरह से काम कर रही है, इसके मुख्य जोखिम हैंः
संकेतक गलत संकेत दे रहा है: जब बाजार में असामान्य उतार-चढ़ाव होता है या संकेतक विफल हो जाते हैं, तो एक गलत संकेत हो सकता है। इस समय दीर्घकालिक रुझानों के साथ निर्णय लिया जाना चाहिए।
गलत पैरामीटर: गलत पैरामीटर सेटिंग के कारण बहुत अधिक बार व्यापार किया जा सकता है या प्रतिक्रियाशील नहीं हो सकता है। विभिन्न किस्मों और बाजार की स्थिति के अनुसार समायोजन किया जाना चाहिए।
बहुत छोटा या बहुत बड़ास्टॉप लॉस के लिए, स्टॉप लॉस और स्टॉप लॉस को संतुलित किया जाना चाहिए।
उपरोक्त जोखिमों के संबंध में निम्नलिखित उपाय किए जा सकते हैंः
मानव हस्तक्षेप और संशोधन: असामान्य स्थिति में, सिग्नल को मैन्युअल रूप से पुष्टि करें, पैरामीटर को संशोधित करें या नीति को रोकें।
अनुकूलित पैरामीटर सेटिंग: आनुवांशिक एल्गोरिदम जैसे अधिक वैज्ञानिक और निष्पक्ष तरीकों का उपयोग करके पैरामीटर को अनुकूलित करना।
अस्थिरता समायोजन के साथ स्टॉप लॉसएटीआरः स्टॉप लॉस को उतार-चढ़ाव के आधार पर स्वचालित रूप से समायोजित किया जा सकता है, जैसे कि 1-3 गुना एटीआर।
इस रणनीति को और भी बेहतर बनाया जा सकता है:
रोकथाम तंत्र की स्थिरता में वृद्धि: ट्रैक किए गए स्टॉप या इंडेक्स चलती औसत को स्टॉप करने के लिए जोड़ा जा सकता है
लेनदेन फ़िल्टर के साथ: एक अक्षम ब्रेक से बचने के लिए लेन-देन की मात्रा के सूचकांक को जोड़ना।
गतिशील समायोजन पैरामीटर: बाजार की स्थिति के आधार पर स्वचालित रूप से औसत रेखा चक्र, चैनल की चौड़ाई आदि का अनुकूलन किया जा सकता है
मशीन लर्निंग एल्गोरिदम का परिचय: आरएनएन, एलएसटीएम आदि एल्गोरिदम का उपयोग करके पैरामीटर को गतिशील रूप से अनुकूलित करना
गति के माध्यम से तोड़ने के लिए एकसमान रेखा रणनीति एकीकृत तकनीकी संकेतकों का उपयोग करने का लाभ, लंबी और छोटी दौड़ के साथ सहयोग की स्थिति में, अच्छा लाभ प्राप्त हुआ। इस रणनीति को रोकना नियंत्रण में है, इसे लागू करने में कोई कठिनाई नहीं है। अगले कदम में, रोकथाम तंत्र को और बेहतर बनाया जाएगा, और अधिक बुद्धिमान तरीकों का उपयोग करके पैरामीटर अनुकूलन और सिग्नल फ़िल्टरिंग के लिए, अधिक स्थिर अतिरिक्त लाभ प्राप्त करने का प्रयास किया जाएगा।
/*backtest
start: 2022-11-20 00:00:00
end: 2023-11-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Improved Custom Strategy", shorttitle="ICS", overlay=true)
// Volatility
volatility = ta.atr(14)
// EMA/MA Crossover
fast_length = 9
slow_length = 21
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 and (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)
// Fractal-based Support and Resistance levels
isFractalHigh = high[2] < high[1] and high[1] > high[0]
isFractalLow = low[2] > low[1] and low[1] < low[0]
resistance = ta.valuewhen(isFractalHigh, high[1], 0)
support = ta.valuewhen(isFractalLow, low[1], 0)
// StockRSI
length = 14
K = 100 * (close - ta.lowest(close, length)) / (ta.highest(close, length) - ta.lowest(close, length))
D = ta.sma(K, 3)
overbought = 80
oversold = 20
stockrsi_signal = ((K < D) and (K < oversold)) or ((K > D) and (K > overbought))
// Buy and sell conditions
mandatory_buy_conditions = (crossover_signal ? 1 : 0) + (macd_signal ? 1 : 0) + (stockrsi_signal ? 1 : 0)
// Long-term Trend Check
long_term_ma = ta.sma(close, 200)
long_term_bullish = close > long_term_ma
long_term_bearish = close < long_term_ma
// Plot the long-term MA for visual clarity
plot(long_term_ma, color=color.gray, title="200-Day MA", linewidth=1)
// Simplified Buy and Sell conditions
buy_condition = long_term_bullish and (mandatory_buy_conditions >= 2) and (close > lower) and (close < upper)
sell_condition = (macdHistogram < 0) and (K > D) and (K > overbought)
// Potential SL and TP based on volatility
potential_SL = close - volatility
potential_TP = close + 2 * volatility
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)
// ... (rest of your code above)
// State variable to track if we're in a position, a counter for trades, and a delayed counter for plotting
var bool inPosition = false
var tradeCounter = 0
var tradeCounterDelayed = 0 // Declaration of the variable
// Buy logic: Check if tradeCounter is 0 and the buy condition is met
if tradeCounter == 0 and buy_condition
strategy.entry("BUY", strategy.long, stop=potential_SL, limit=potential_TP)
inPosition := true
tradeCounter := tradeCounter + 1
// Sell logic: Check if tradeCounter is 1, the sell condition is met, and we are in a position
if tradeCounter == 1 and inPosition and sell_condition
strategy.close("BUY")
inPosition := false
tradeCounter := tradeCounter - 1
// Update the delayed trade counter:
tradeCounterDelayed := tradeCounter
// Plotting
bgcolor(buy_condition ? color.new(color.green, 90) : sell_condition ? color.new(color.red, 90) : na)
plotshape(series=buy_condition and tradeCounterDelayed == 0, style=shape.labelup, location=location.belowbar, color=color.green, text="BUY", size=size.small)
plotshape(series=sell_condition and tradeCounterDelayed == 1, style=shape.labeldown, location=location.abovebar, color=color.red, text="SELL", size=size.small)
// ... (rest of your code if any)