चलती औसत और एमएसीडी के साथ एक संयुक्त आरएसआई रणनीति

लेखक:चाओझांग, दिनांक: 2024-02-20 14:28:59
टैगः

img

अवलोकन

यह रणनीति मूल्य रुझानों की पहचान करती है और चलती औसत, एमएसीडी संकेतक और आरएसआई संकेतक को मिलाकर कम खरीदने के लिए उच्च बिक्री निर्णय लेती है। यह खरीद संकेत उत्पन्न करती है जब छोटी अवधि चलती औसत लंबी अवधि चलती औसत से ऊपर जाती है और बंद कीमत 50 दिनों के चलती औसत से ऊपर होती है। यह विपरीत होने पर बेच संकेत उत्पन्न करती है। इसके अलावा, रणनीति ओवरबॉट और ओवरसोल्ड जोन से बचने के लिए आरएसआई संकेतक का उपयोग करती है, और मध्य से दीर्घकालिक प्रवृत्ति निर्धारित करने के लिए एमएसीडी हिस्टोग्राम।

रणनीति तर्क

इस रणनीति का मूल दोहरी चलती औसत क्रॉसओवर प्रणाली पर निर्भर करता है, जो खरीद और बिक्री संकेत उत्पन्न करता है जब एक छोटी अवधि ईएमए (3 दिन) एक लंबी अवधि ईएमए (30 दिन) को पार करता है। यह मूल्य की अल्पकालिक और दीर्घकालिक प्रवृत्ति निर्धारित करने के लिए एक आम तकनीक है।

इसके अतिरिक्त, रणनीति में अक्सर व्यापार करने से बचने के लिए 50-दिवसीय चलती औसत रेखा शामिल है, जिसका उपयोग व्यापार संकेतों के लिए एक फ़िल्टर के रूप में किया जाता है। केवल 50-दिवसीय रेखा से ऊपर खरीद संकेत ट्रिगर होंगे, और इसके विपरीत।

इसके अतिरिक्त, आरएसआई संकेतक ओवरबॉट (70 से ऊपर) और ओवरसोल्ड (30 से नीचे) परिदृश्यों की पहचान करता है। रणनीति इन तर्कहीन क्षेत्रों में एमए क्रॉसओवर संकेतों के उभरने पर भी पदों को लेना छोड़ देगी।

अंत में, एमएसीडी हिस्टोग्राम का उपयोग बाजार के मध्यम से दीर्घकालिक प्रवृत्ति को निर्धारित करने के लिए किया जाता है। एमएसीडी हिस्टोग्राम > 0 के साथ, पृष्ठभूमि अपट्रेंड है इसलिए खरीद संकेत अधिक विश्वसनीय हैं। जब एमएसीडी हिस्टोग्राम < 0 है, तो पृष्ठभूमि डाउनट्रेंड है इसलिए खरीद संकेतों को जल्द ही सुधार का सामना करना पड़ सकता है।

फायदे

इस रणनीति का सबसे बड़ा लाभ कई संकेतकों का संयुक्त उपयोग है, जो हर ट्रेडिंग निर्णय को अत्यधिक आश्वस्त और विश्वसनीय बनाता है। व्यक्तिगत संकेतकों के लिए झूठे संकेत काफी बार हो सकते हैं, जबकि यह रणनीति अल्पकालिक प्रवृत्ति, दीर्घकालिक प्रवृत्ति, ओवरबॉट / ओवरसोल्ड स्थिति, मध्यवर्ती प्रवृत्ति, आदि के संदर्भ में संकेतों की पुष्टि करके सटीकता में सुधार करती है।

एक और लाभ यह है कि यह ट्रेंड ट्रेडिंग और मीड रिवर्सन ट्रेडिंग को जोड़ती है। ट्रेंड ट्रेडरों के लिए ट्रेंड का पालन करना महत्वपूर्ण है, लेकिन उन्नत रणनीतियाँ इसके बारे में कठोर नहीं होंगी। तर्कसंगत क्षेत्रों में विपरीत स्थिति लेना भी आकर्षक अतिरिक्त रिटर्न का कारण बन सकता है।

जोखिम

प्रमुख जोखिम महत्वपूर्ण समाचार घटनाओं के कारण अचानक मूल्य झटकों से आते हैं, जो स्टॉप लॉस बिंदुओं में प्रवेश कर सकते हैं और बड़े नुकसान का सामना कर सकते हैं। नीतिगत परिवर्तन भी रणनीति प्रदर्शन में व्यवधान पैदा कर सकते हैं।

एक अन्य जोखिम मध्यम से दीर्घकालिक तेजी वाले बाजार में अस्थायी गिरावट के दौरान रोकना है। यदि रणनीति को समय से पहले रोक दिया जाता है तो यह पूरी तरह से ऊपर की ओर बढ़ने की क्षमता को पकड़ने में विफल हो सकती है।

सुधार

इस रणनीति को निम्नलिखित आयामों में अनुकूलित किया जा सकता हैः

  1. इष्टतम संयोजन खोजने के लिए पैरामीटर अनुकूलन।

  2. मॉडल को समृद्ध करने के लिए बोलिंगर बैंड और केडीजे जैसे अधिक संकेतक शामिल करें।

  3. अधिक उन्नत स्टॉप लॉस तंत्रों का परीक्षण करें जैसे कि ट्रेलिंग स्टॉप लॉस और अस्थिरता स्टॉप लॉस।

  4. अधिक प्रकार के बाजारों के अनुकूल करने के लिए रणनीति के कुछ हिस्सों को अनुकूलित करना।

निष्कर्ष

अंत में, चलती औसत, आरएसआई और एमएसीडी को मिलाकर, यह रणनीति उच्च गुणवत्ता वाले संकेत उत्पन्न करने और एकल संकेतकों की सीमाओं से बचने का प्रबंधन करती है। यह प्रवृत्ति की पुष्टि करके हर व्यापार को आत्मविश्वास से करती है। इसके अलावा, रणनीति प्रवृत्ति व्यापार और विपरीत व्यापार को संतुलित करती है, जब उपयुक्त हो तो गति का पीछा करने और विरोधी-चक्रगत स्थिति लेने दोनों में उत्कृष्ट है। यह एक ठोस और कुशल मात्रात्मक रणनीति है।


/*backtest
start: 2023-02-13 00:00:00
end: 2024-02-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('sachin 3.30 ', overlay=true)

// Input parameters
length = input.int(14, title='RSI Length', minval=1)
overbought = input.int(70, title='RSI Overbought Level', minval=0, maxval=100)
oversold = input.int(30, title='RSI Oversold Level', minval=0, maxval=100)
ema3_length = input(3, title='EMA 3 Length')
ema30_length = input(30, title='EMA 30 Length')
ema50_length = input(50, title='EMA 50 Length')

// Calculate EMAs
ema3 = ta.ema(close, ema3_length)
ema30 = ta.ema(close, ema30_length)
ema50 = ta.ema(close, ema50_length)

// Calculate RSI
rsiValue = ta.rsi(close, length)

// Calculate MACD
[macdLine, signalLine, hist] = ta.macd(close, 12, 26, 9)

var float buyPrice = na

// Buy condition: EMA 3 crosses above EMA 30 and price is above EMA 50
buyCondition = ta.crossover(ema3, ema30) and close > ema50
if (buyCondition)
    buyPrice := close
    strategy.entry('Buy', strategy.long)

// Exit long position when close is below EMA30 and below the low of the previous 3 candles after the buy entry
exitLongCondition = close < ema30 and close < ta.lowest(low, 3) and close < buyPrice
if (exitLongCondition)
    strategy.close('BuyExit')

// Sell condition: EMA 3 crosses below EMA 30 and price is below EMA 50
sellCondition = ta.crossunder(ema3, ema30) and close < ema50
if (sellCondition)
    strategy.entry('Sell', strategy.short)

// Exit short position when close is above EMA30 and above the high of the previous 3 candles after the sell entry
exitShortCondition = close > ema30 and close > ta.highest(high, 3)
if (exitShortCondition)
    strategy.close('SellExit')

// Plot EMAs on the chart
plot(ema3, color=color.new(color.blue, 0), title='EMA 3')
plot(ema30, color=color.new(color.red, 0), title='EMA 30')

// Change color of EMA 50 based on MACD histogram
ema50Color = hist > 0 ? color.new(color.blue, 0) : hist < 0 ? color.new(color.black, 0) : color.new(color.blue, 0)
plot(ema50, color=ema50Color, title='EMA 50 Colored')

// Change color of EMA 30 based on RSI trend
ema30Color = rsiValue > oversold ? color.new(color.green, 0) : rsiValue < overbought ? color.new(color.red, 0) : color.new(color.blue, 0)
plot(ema30, color=ema30Color, title='EMA 30 Colored')

// Highlight Buy and Sell signals on the chart
bgcolor(buyCondition ? color.new(color.green, 90) : na)
bgcolor(sellCondition ? color.new(color.red, 90) : na)

// Plotting Buy and Sell Signals on the Chart until strategy exit
barcolor(strategy.position_size > 0 and rsiValue > overbought ? color.new(color.yellow, 0) : strategy.position_size < 0 and rsiValue < oversold ? color.new(color.black, 0) : na)


अधिक