
इस रणनीति का नाम “ईएमए और यादृच्छिक आरएसआई पर आधारित बहु-चक्र प्रवृत्ति ट्रैकिंग ट्रेडिंग रणनीति” है, जो दो अलग-अलग चक्रों के सूचकांक चलती औसत (ईएमए) और यादृच्छिक आरएसआई संकेतक का उपयोग करके बाजार के मध्यम और दीर्घकालिक रुझान को पकड़ने के लिए है। रणनीति का मुख्य विचार ईएमए के क्रॉसिंग के माध्यम से प्रवृत्ति की दिशा का न्याय करना है, जबकि यादृच्छिक आरएसआई को प्रवृत्ति की पुष्टि और पूर्व चेतावनी संकेत के रूप में संयोजित करना है।
EMA की गणना करें। EMA का डिफ़ॉल्ट मान 12 है, और EMA का डिफ़ॉल्ट मान 25 है, जो वास्तविक अनुप्रयोगों में बाजार की विशेषताओं और ट्रेडिंग आवृत्ति के आधार पर समायोजित किया जा सकता है।
इस तरह की घटनाओं को देखते हुए:
रुझान की पुष्टि करेंः एक बार जब एक ओवर / डाउन सिग्नल दिखाई देता है, तो रुझान की पुष्टि करने के लिए लगातार 2 ओवर / डाउन K लाइनों की आवश्यकता होती है। यह झूठे संकेतों को फ़िल्टर करने में मदद करता है।
यादृच्छिक आरएसआई का उपयोग सहायक निर्णय के रूप में करेंः
दो अलग-अलग चक्रों के ईएमए का एक साथ उपयोग करने से ट्रेंड कैप्चर की संवेदनशीलता और विश्वसनीयता को बेहतर ढंग से संतुलित किया जा सकता है। विश्लेषण से पता चलता है कि 12⁄25 चक्र ईएमए संयोजन मध्यम और दीर्घकालिक रुझानों को बेहतर ढंग से पकड़ता है।
ट्रेंड कन्फर्मेशन सिस्टम ज्यादातर झूठे संकेतों को प्रभावी ढंग से फ़िल्टर कर सकता है, जिससे रणनीति की जीत की संभावना बढ़ जाती है।
यादृच्छिक आरएसआई एक सहायक निर्णय के रूप में कार्य करता है, जो प्रवृत्ति की शुरुआत में प्रवृत्ति की ताकत का आकलन करने में मदद करता है, और प्रवृत्ति के बाद के चरणों में संभावित प्रवृत्ति उलट की पूर्व चेतावनी देता है।
रणनीति तर्क सरल है, कम पैरामीटर, समझने और लागू करने में आसान है, और कई बाजारों और किस्मों के लिए उपयुक्त है।
ईएमए एक पिछड़ा सूचक है, जो प्रवृत्ति में बदलाव की शुरुआत में एक बड़ी स्लाइड हो सकता है।
प्रवृत्ति-आधारित रणनीतियाँ आमतौर पर अस्थिर शहरों में काम करती हैं। इस रणनीति में अस्थिर शहरों के लिए विशेष निर्णय की कमी है।
यादृच्छिक आरएसआई बाजार में भारी उतार-चढ़ाव के दौरान गलत हो सकता है, जो निर्णय की गुणवत्ता को प्रभावित करता है।
फिक्स्ड पैरामीटर सभी बाजार स्थितियों के अनुकूल नहीं हो सकते हैं और बाजार विशेषताओं के अनुसार गतिशीलता को समायोजित करने की आवश्यकता है।
एटीआर जैसे उतार-चढ़ाव के संकेतकों को पेश करना और ईएमए पैरामीटर को उतार-चढ़ाव की गतिशीलता के आधार पर समायोजित करना, ताकि यह विभिन्न बाजारों की लय के अनुकूल हो सके।
अस्थिर बाजारों के बारे में अधिक निर्णय लेने के लिए, जैसे कि बुरीन बैंड के उद्घाटन की दिशा के साथ, अस्थिर बाजारों में अक्सर व्यापार से बचें।
यादृच्छिक आरएसआई के आधार पर अधिक सहायक आंकड़ों को शामिल करना, जैसे कि लेनदेन की मात्रा में परिवर्तन, संकेत की विश्वसनीयता में सुधार करता है।
बाजार की प्रासंगिकता को ध्यान में रखते हुए, विभिन्न प्रकार के कनेक्टिविटी सिग्नल की शुरुआत करें और सिस्टम की जोखिम प्रतिरोध क्षमता को बढ़ाएं।
यह रणनीति ईएमए और यादृच्छिक आरएसआई के लाभों का पूरा उपयोग करती है, एक मध्यम और दीर्घकालिक ट्रेडिंग रणनीति का गठन करती है जो ट्रेंड ट्रैकिंग और गतिशीलता रिवर्स पर आधारित है। ट्रेंड कैप्चर के माध्यम से, यादृच्छिक आरएसआई ट्रेंड की ताकत की पुष्टि करता है और पूर्व चेतावनी रिवर्स करता है, ट्रेंड कन्फर्मेशन मैकेनिज्म सिग्नल की गुणवत्ता को बढ़ाता है, तीनों को व्यवस्थित रूप से संयोजित किया जाता है, एक सरल और प्रभावी मात्रात्मक ट्रेडिंग रणनीति ढांचा बनाता है। मुख्य लाभ तर्क की सरलता, कम पैरामीटर को लागू करने, कम कठिनाई, और व्यापक रूप से लागू होता है।
/*backtest
start: 2023-03-02 00:00:00
end: 2024-03-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy('[Jacky] Trader XO Macro Trend Scanner', overlay=true)
// Variables
var ok = 0
var countBuy = 0
var countSell = 0
src = input(close, title='OHLC Type')
i_fastEMA = input(12, title='Fast EMA')
i_slowEMA = input(25, title='Slow EMA')
i_defEMA = input(25, title='Consolidated EMA')
// Allow the option to show single or double EMA
i_bothEMAs = input(title='Show Both EMAs', defval=true)
// Define EMAs
v_fastEMA = ta.ema(src, i_fastEMA)
v_slowEMA = ta.ema(src, i_slowEMA)
v_biasEMA = ta.ema(src, i_defEMA)
// Color the EMAs
emaColor = v_fastEMA > v_slowEMA ? color.green : v_fastEMA < v_slowEMA ? color.red : #FF530D
// Plot EMAs
plot(i_bothEMAs ? na : v_biasEMA, color=emaColor, linewidth=3, title='Consolidated EMA')
plot(i_bothEMAs ? v_fastEMA : na, title='Fast EMA', color=emaColor)
plot(i_bothEMAs ? v_slowEMA : na, title='Slow EMA', color=emaColor)
// Colour the bars
buy = v_fastEMA > v_slowEMA
sell = v_fastEMA < v_slowEMA
if buy
countBuy += 1
countBuy
if buy
countSell := 0
countSell
if sell
countSell += 1
countSell
if sell
countBuy := 0
countBuy
buysignal = countBuy < 2 and countBuy > 0 and countSell < 1 and buy and not buy[1]
sellsignal = countSell > 0 and countSell < 2 and countBuy < 1 and sell and not sell[1]
barcolor(buysignal ? color.green : na)
barcolor(sellsignal ? color.red : na)
// Strategy backtest
if (buysignal)
strategy.entry("Buy", strategy.long)
if (sellsignal)
strategy.entry("Sell", strategy.short)
// Plot Bull/Bear
plotshape(buysignal, title='Bull', text='Bull', style=shape.triangleup, location=location.belowbar, color=color.new(color.green, 0), textcolor=color.new(color.black, 0), size=size.tiny)
plotshape(sellsignal, title='Bear', text='Bear', style=shape.triangledown, location=location.abovebar, color=color.new(color.red, 0), textcolor=color.new(color.black, 0), size=size.tiny)
bull = countBuy > 1
bear = countSell > 1
barcolor(bull ? color.green : na)
barcolor(bear ? color.red : na)
// Set Alerts
alertcondition(ta.crossover(v_fastEMA, v_slowEMA), title='Bullish EMA Cross', message='Bullish EMA crossover')
alertcondition(ta.crossunder(v_fastEMA, v_slowEMA), title='Bearish EMA Cross', message='Bearish EMA Crossover')
// Stoch RSI code
smoothK = input.int(3, 'K', minval=1)
smoothD = input.int(3, 'D', minval=1)
lengthRSI = input.int(14, 'RSI Length', minval=1)
lengthStoch = input.int(14, 'Stochastic Length', minval=1)
rsi1 = ta.rsi(src, lengthRSI)
k = ta.sma(ta.stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = ta.sma(k, smoothD)
bandno0 = input.int(80, minval=1, title='Upper Band', group='Bands (change this instead of length in Style for Stoch RSI colour to work properly)')
bandno2 = input.int(50, minval=1, title='Middle Band', group='Bands (change this instead of length in Style for Stoch RSI colour to work properly)')
bandno1 = input.int(20, minval=1, title='Lower Band', group='Bands (change this instead of length in Style for Stoch RSI colour to work properly)')
// Alerts
crossoverAlertBgColourMidOnOff = input.bool(title='Crossover Alert Background Colour (Middle Level) [ON/OFF]', group='Crossover Alerts', defval=false)
crossoverAlertBgColourOBOSOnOff = input.bool(title='Crossover Alert Background Colour (OB/OS Level) [ON/OFF]', group='Crossover Alerts', defval=false)
crossoverAlertBgColourGreaterThanOnOff = input.bool(title='Crossover Alert >input [ON/OFF]', group='Crossover Alerts', defval=false)
crossoverAlertBgColourLessThanOnOff = input.bool(title='Crossover Alert <input [ON/OFF]', group='Crossover Alerts', defval=false)
maTypeChoice = input.string('EMA', title='MA Type', group='Moving Average', options=['EMA', 'WMA', 'SMA', 'None'])
maSrc = input.source(close, title='MA Source', group='Moving Average')
maLen = input.int(200, minval=1, title='MA Length', group='Moving Average')
maValue = if maTypeChoice == 'EMA'
ta.ema(maSrc, maLen)
else if maTypeChoice == 'WMA'
ta.wma(maSrc, maLen)
else if maTypeChoice == 'SMA'
ta.sma(maSrc, maLen)
else
0
crossupCHECK = maTypeChoice == 'None' or open > maValue and maTypeChoice != 'None'
crossdownCHECK = maTypeChoice == 'None' or open < maValue and maTypeChoice != 'None'
crossupalert = crossupCHECK and ta.crossover(k, d) and (k < bandno2 or d < bandno2)
crossdownalert = crossdownCHECK and ta.crossunder(k, d) and (k > bandno2 or d > bandno2)
crossupOSalert = crossupCHECK and ta.crossover(k, d) and (k < bandno1 or d < bandno1)
crossdownOBalert = crossdownCHECK and ta.crossunder(k, d) and (k > bandno0 or d > bandno0)
aboveBandalert = ta.crossunder(k, bandno0)
belowBandalert = ta.crossover(k, bandno1)
bgcolor(color=crossupalert and crossoverAlertBgColourMidOnOff ? #4CAF50 : crossdownalert and crossoverAlertBgColourMidOnOff ? #FF0000 : na, title='Crossover Alert Background Colour (Middle Level)', transp=70)
bgcolor(color=crossupOSalert and crossoverAlertBgColourOBOSOnOff ? #fbc02d : crossdownOBalert and crossoverAlertBgColourOBOSOnOff ? #000000 : na, title='Crossover Alert Background Colour (OB/OS Level)', transp=70)
bgcolor(color=aboveBandalert and crossoverAlertBgColourGreaterThanOnOff ? #ff0014 : crossdownalert and crossoverAlertBgColourMidOnOff ? #FF0000 : na, title='Crossover Alert - K > Upper level', transp=70)
bgcolor(color=belowBandalert and crossoverAlertBgColourLessThanOnOff ? #4CAF50 : crossdownalert and crossoverAlertBgColourMidOnOff ? #FF0000 : na, title='Crossover Alert - K < Lower level', transp=70)
alertcondition(crossupalert or crossdownalert, title='Stoch RSI Crossover', message='STOCH RSI CROSSOVER')