मोमेंटम स्मूथ्ड मूविंग एवरेज और मूविंग एवरेज क्रॉसओवर रणनीति


निर्माण तिथि: 2023-11-27 17:35:09 अंत में संशोधित करें: 2023-11-27 17:35:09
कॉपी: 0 क्लिक्स: 673
1
ध्यान केंद्रित करना
1617
समर्थक

मोमेंटम स्मूथ्ड मूविंग एवरेज और मूविंग एवरेज क्रॉसओवर रणनीति

अवलोकन

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

रणनीति सिद्धांत

गति ALMA लाइन

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

ईएमए लाइनों को जल्दी से पार करें

रणनीति दो अलग-अलग लंबाई ईएमए लाइनों का उपयोग करती है। जब तेजी से ईएमए लाइन ऊपर की ओर धीमी ईएमए लाइन को पार करती है, तो एक खरीद संकेत उत्पन्न होता है; जब तेजी से ईएमए लाइन नीचे की ओर धीमी ईएमए को पार करती है, तो एक बेचने का संकेत उत्पन्न होता है। ईएमए क्रॉसिंग में बेहतर प्रवृत्ति निर्णय क्षमता होती है। तेजी से ईएमए की अवधि को विभिन्न प्रकार के व्यापार और अवधि के लिए पैरामीटर के माध्यम से समायोजित किया जा सकता है।

Stochastic RSI

स्टोकेस्टिक आरएसआई का काम ओवरबॉय ओवरसोल क्षेत्र में ट्रेडिंग सिग्नल जारी करने से बचने के लिए है। यह आरएसआई और स्टोकेस्टिक दोनों संकेतकों के लाभों को जोड़ता है, जिससे चरम और निचले क्षेत्र का बेहतर आकलन किया जा सकता है। जब स्टोकेस्टिक आरएसआई ओवरबॉय या ओवरसोल होता है, तो यह रणनीति मूल ओवरहेड या खाली ऑर्डर को रद्द कर देती है।

रणनीति का विश्लेषण

ट्रेंड को पकड़ें

रणनीति ईएमए क्रॉसिंग का लाभ उठाने के लिए मूल्य प्रवृत्ति की दिशा का निर्धारण करती है, जो प्रमुख ओवरहेड और ओवरहेड अवसरों को पहचानने के लिए ALMA सूचकांक के साथ काम करती है।

पैरामीटर समायोज्य, अनुकूलन योग्य

ईएमए चक्र, एएलएमए पैरामीटर आदि समायोज्य स्थान प्रदान करते हैं, उपयोगकर्ता अपनी आवश्यकताओं के अनुसार पैरामीटर को अनुकूलित कर सकते हैं, ताकि रणनीति विभिन्न बाजार स्थितियों के लिए अधिक अनुकूल हो सके।

रोकथाम के लिए एक रोकथाम

रणनीति में स्टॉप लॉस स्टॉप सेटिंग्स शामिल हैं। फ्लोटिंग स्टॉप लॉस का उपयोग करने से स्टॉप लॉस के पीछा करने की संभावना कम हो जाती है; लाभप्रदता प्राप्त करने की सेटिंग्स लाभ को लॉक करने और लाभ को न निकालने से बचने की अनुमति देती हैं।

जोखिम विश्लेषण

रुझानों का गलत आकलन

जटिल परिस्थितियों में, ईएमए और एएलएमए लाइनों में गलत संकेत हो सकते हैं। इस स्थिति में, नुकसान को नियंत्रित करने के लिए स्टॉपलॉस पर भरोसा करना होगा।

गलत पैरामीटर

यदि पैरामीटर को गलत तरीके से सेट किया जाता है, तो ईएमए और एएलएमए लाइनें ठीक से काम नहीं कर सकती हैं, जिससे ट्रेडिंग जोखिम बढ़ जाता है। सर्वोत्तम पैरामीटर संयोजन चुनने के लिए परीक्षण और अनुकूलन की आवश्यकता होती है।

रणनीति अनुकूलन दिशा

  1. EMA और ALMA के पैरामीटर सेटिंग्स को अनुकूलित करने के लिए परीक्षण करें और इष्टतम पैरामीटर चुनें।

  2. अन्य संकेतकों के साथ संयोजन में फ़िल्टर सिग्नल, गलत सिग्नल से बचने के लिए नुकसान। जैसे कि MACD, KDJ आदि।

  3. स्टॉप-लॉस को अनुकूलित करें और जोखिम और लाभ के बीच संतुलन बनाए रखें।

  4. विभिन्न किस्मों और चक्रों के लिए परीक्षण करें ताकि रणनीति अधिक बाजारों के लिए लागू हो सके।

संक्षेप

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

रणनीति स्रोत कोड
/*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)