यह रणनीति ट्रेडिंग सिग्नल उत्पन्न करने के लिए मोमेंटम स्मूथ मूविंग एवरेज लाइन (एएलएमए) और दो एक्सपोनेंशियल मूविंग एवरेज लाइन (ईएमए) के क्रॉसओवर का उपयोग करती है।
यह रणनीति मूल्य प्रवृत्ति का न्याय करने के लिए मुख्य संकेतक के रूप में ALMA का उपयोग करती है। ALMA में मूल्य डेटा को चिकना करने का कार्य है और कीमतों में यादृच्छिक उतार-चढ़ाव को फ़िल्टर कर सकता है। ALMA की अवधि, ऑफसेट मूल्य और सिग्मा मापदंडों को समायोजित करके, इसे अधिक संवेदनशील या स्थिर बनाया जा सकता है। जब कीमतें बढ़ती हैं, तो ALMA हरा दिखाएगा, और जब कीमतें गिरती हैं, तो ALMA लाल दिखाएगा।
यह रणनीति दो ईएमए लाइनों का उपयोग करती है जिनकी अलग-अलग लंबाई होती है। जब तेज ईएमए लाइन धीमी ईएमए लाइन के ऊपर से गुजरती है, तो एक खरीद संकेत उत्पन्न होता है। जब तेज ईएमए लाइन धीमी ईएमए लाइन के नीचे से गुजरती है, तो एक बिक्री संकेत उत्पन्न होता है। ईएमए क्रॉसओवर में अच्छी प्रवृत्ति निर्णय क्षमता होती है। विभिन्न ट्रेडिंग किस्मों और चक्रों के अनुकूल होने के लिए तेज और धीमी ईएमए की अवधि को मापदंडों के माध्यम से समायोजित किया जा सकता है।
स्टोकैस्टिक आरएसआई सूचक की भूमिका ओवरबॉट और ओवरसोल्ड क्षेत्रों में ट्रेडिंग सिग्नल जारी करने से बचना है। यह आरएसआई और स्टोकैस्टिक दोनों संकेतकों के फायदे को जोड़ती है, और शिखर और निचले क्षेत्रों को बेहतर ढंग से निर्धारित कर सकती है। जब स्टोकैस्टिक आरएसआई सूचक ओवरबॉट या ओवरसोल्ड होता है, तो रणनीति मौजूदा लंबे या छोटे आदेशों को रद्द कर देगी।
रणनीति में मूल्य प्रवृत्ति की दिशा निर्धारित करने के लिए ईएमए क्रॉसओवर का पूर्ण उपयोग किया गया है, जो ट्रेंड ट्रेडिंग को लागू करने के लिए प्रमुख लंबे और छोटे अवसरों का पता लगाने के लिए एएलएमए संकेतक के साथ संयुक्त है।
ईएमए और एएलएमए मापदंडों की अवधि समायोज्य स्थान प्रदान करती है। उपयोगकर्ता अपनी आवश्यकताओं के अनुसार मापदंडों को अनुकूलित कर सकते हैं ताकि रणनीति को विभिन्न बाजार वातावरणों के अनुकूल बनाया जा सके।
इस रणनीति में अंतर्निहित स्टॉप लॉस और टेक प्रॉफिट सेटिंग्स हैं। फ्लोटिंग स्टॉप लॉस का उपयोग करने से स्टॉप लॉस का पीछा करने की संभावना कम हो सकती है; लाभ लेने की सेटिंग्स लाभ में लॉक कर सकती हैं और लाभ को बाहर निकालने से बच सकती हैं।
जटिल बाजारों में, ईएमए और एएलएमए लाइनें गलत संकेत दे सकती हैं। नुकसान को नियंत्रित करने के लिए स्टॉप लॉस पर भरोसा करें।
यदि पैरामीटर गलत तरीके से सेट किए जाते हैं, तो ईएमए और एएलएमए लाइनें ठीक से काम नहीं कर सकती हैं, जिससे ट्रेडिंग जोखिम बढ़ेगा। सर्वोत्तम पैरामीटर संयोजन का चयन करने के लिए परीक्षण और अनुकूलन की आवश्यकता होती है।
इष्टतम मापदंडों का चयन करने के लिए ईएमए और एएलएमए की पैरामीटर सेटिंग्स का परीक्षण और अनुकूलन करें।
संकेतों को फ़िल्टर करने और गलत संकेतों के कारण होने वाले नुकसान से बचने के लिए अन्य संकेतकों को शामिल करें। जैसे कि एमएसीडी, केडीजे, आदि।
जोखिम नियंत्रण और लाभप्रदता के बीच संतुलन खोजने के लिए स्टॉप लॉस परिमाण को अनुकूलित करें।
अधिक बाजारों में रणनीति लागू करने के लिए विभिन्न किस्मों और चक्र मापदंडों का परीक्षण करें।
कुल मिलाकर, यह एक सरल और व्यावहारिक प्रवृत्ति ट्रैकिंग रणनीति है। यह प्रवृत्ति की दिशा निर्धारित करने के लिए ईएमए क्रॉसओवर, ऐड-ऑन बिंदुओं का पता लगाने के लिए एएलएमए संकेतक, ओवरबॉट और ओवरसोल्ड के जोखिमों से बचने के लिए स्टोकैस्टिक आरएसआई का उपयोग करता है, जबकि जोखिमों को नियंत्रित करने के लिए स्टॉप लॉस और लाभ लेने की रणनीति निर्धारित करता है। पैरामीटर समायोजन और संकेतक अनुकूलन के माध्यम से, यह रणनीति अच्छे परिणाम प्राप्त कर सकती है। इसे समझना और उपयोग करना आसान है, और इसमें एक निश्चित अनुकूलन क्षमता भी है।
/*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 ////Arranged by @ClassicScott //Strategy Created by @CheatCode1 strategy('ALMA/EMA Strategy', shorttitle='ALMA/EMA Strategy', overlay=true ) ////Source Selection & ALMA Variables //Dominant Momentum ALMA dsource = input.source(close, title='Source', group='Dominant ALMA') dperiod = input.int(title='Period', defval=130, group='Dominant ALMA') doffset = input.float(title='Offset', step=0.025, defval=0.775, group='Dominant ALMA') dsigma = input.float(title='Sigma', step=0.5, defval=4.5, group='Dominant ALMA') dalma = ta.alma(dsource, dperiod, doffset, dsigma) dalma_up_color = input.color(#66bb6a, 'Going Up!', group='Dominant ALMA', inline = '1') dalma_down_color = input.color(#ef5350, 'Going Down :(', group='Dominant ALMA', inline = '1') dcolor = close[1] > dalma ? dalma_up_color : dalma_down_color ////ALMA Plots plot(dalma, color=dcolor, style=plot.style_stepline, linewidth=2, title='Dominant Momentum MA') //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 //Strategy by @CheatCode1 cheatcode = input.bool(true, '-----------CHEATC0DE1------------', group = 'Strategy Inputs', confirm = true) //Variable Declerations/Plot Assingments inp1 = input.int(49, 'Slow Ema Length', 1, 100, group = 'Strategy Inputs', confirm = true) inp2 = input.int(9, 'Fast Ema Length', 1, 200, group = 'Strategy Inputs', confirm = true) inp3 = int(200) sma1 = ta.sma(close, inp3) ema1 = ta.ema(close, inp1) ema2 = ta.ema(close, inp2) eplot1 = plot(ema1, 'Slow Ema', color.aqua, 1, plot.style_linebr) eplot2 = plot(ema2, 'Fast Ema', color.yellow, 1, plot.style_linebr) splot1 = plot(sma1, 'Long MA', close[1] < sma1 ? color.red:color.green, 1, plot.style_line, display = display.none) cross1 = ta.crossover(ema1, ema2) cross2 = ta.crossunder(ema1, ema2) plotchar(cross1, '', '↑', location.belowbar, close[1] > dalma and dalma > sma1 ? na:color.green, size = size.normal, editable = false) plotchar(cross2, '', '↓', location.abovebar, close[1] < dalma and dalma < sma1 ? na:color.red, size = size.normal, editable = false) bgcolor(cross1 and close[1] > dalma ? color.new(color.green, 80):cross2 and close[1] < dalma ? color.new(color.red, 80):na) valueL = ta.valuewhen(cross1 and close[1] > dalma, close, 0) valueS = ta.valuewhen(cross2 and close[1] < dalma, close, 0) //Entries if cross1 and close[2] > dalma[2] and close[1] > dalma[1] strategy.entry('Long', strategy.long) if cross2 and close[2] < dalma[2] and close[1] < dalma[1] strategy.entry('Short', strategy.short) //StochRsi smoothK = input.int(3, "K", minval=1) smoothD = input.int(15, "D", minval=1) lengthRSI = input.int(14, "RSI Length", minval=1) lengthStoch = input.int(8, "Stochastic Length", minval=1) src = input(close, title="RSI Source") rsi1 = ta.rsi(src, lengthRSI) k = ta.sma(ta.stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK) d = ta.sma(k, smoothD) //Cancellations if k > 75 strategy.cancel('Long') if k < 25 strategy.cancel('Short') //Closures if ta.crossunder(k, d) and k > 92 strategy.close('Long') if ta.crossover(k,d) and k < 8 strategy.close('Short') //Exit Percents takeP = input.float(3, title='Take Profit', group = 'Take Profit and Stop Loss') / 100 stopL = input.float(5.49, title = 'Stop Loss', group = 'Take Profit and Stop Loss')/100 // Pre Directionality Stop_L = strategy.position_avg_price * (1 - stopL) Stop_S = strategy.position_avg_price * (1 + stopL) Take_S= strategy.position_avg_price * (1 - takeP) Take_L = strategy.position_avg_price * (1 + takeP) //Post Excecution if strategy.position_size > 0 strategy.exit("Flat", limit=Take_L, stop = Stop_L) if strategy.position_size < 0 strategy.exit("Flat", limit=Take_S, stop = Stop_S)