दीर्घकालिक प्रवृत्ति एसएमए मूविंग एवरेज क्रॉसओवर मात्रात्मक रणनीति

SMA EMA
निर्माण तिथि: 2025-01-06 17:01:08 अंत में संशोधित करें: 2025-01-06 17:01:08
कॉपी: 3 क्लिक्स: 432
1
ध्यान केंद्रित करना
1617
समर्थक

दीर्घकालिक प्रवृत्ति एसएमए मूविंग एवरेज क्रॉसओवर मात्रात्मक रणनीति

अवलोकन

यह रणनीति बहु-अवधि सरल मूविंग औसत (एसएमए) क्रॉसओवर संकेतों पर आधारित एक मात्रात्मक व्यापार प्रणाली है। यह मुख्य रूप से दीर्घकालिक तेजी के भीतर अल्पकालिक पुलबैक अवसरों की पहचान करके व्यापार करता है। यह रणनीति चलती औसत के स्थिति संबंध और क्रॉसओवर संकेतों के माध्यम से बाजार के रुझान और व्यापार के अवसरों का आकलन करने के लिए 5 दिन, 10 दिन, 20 दिन, 60 दिन और 120 दिन की पांच अवधियों के साथ एसएमए संकेतकों का उपयोग करती है।

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

रणनीति के मूल तर्क में निम्नलिखित प्रमुख भाग शामिल हैं:

  1. SMA20 और SMA60 के बीच सापेक्ष स्थिति संबंध से दीर्घकालिक प्रवृत्ति का अंदाजा लगाया जा सकता है। जब SMA20 SMA60 से ऊपर होता है, तो यह पुष्टि होती है कि बाजार ऊपर की ओर बढ़ रहा है।
  2. दीर्घकालिक अपट्रेंड की पुष्टि के आधार पर, खरीद संकेत तब ट्रिगर होता है जब अल्पकालिक SMA5 SMA20 से नीचे से ऊपर की ओर उछलता है। इससे पता चलता है कि बाजार में तेजी के रुझान में अल्पकालिक गिरावट के बाद उछाल आ रहा है।
  3. जब SMA20, SMA5 को पार करता है, तो समापन संकेत सक्रिय हो जाता है। इससे संकेत मिलता है कि अल्पावधि में ऊपर की ओर बढ़ने की गति कमजोर पड़ गई है और समायोजन की अवधि में प्रवेश कर सकती है।
  4. इस रणनीति में एक समय फ़िल्टर फ़ंक्शन भी शामिल है, जो बैकटेस्ट की समय सीमा को सीमित कर सकता है और रणनीति के लचीलेपन को बढ़ा सकता है।

रणनीतिक लाभ

  1. रणनीति का तर्क स्पष्ट और सरल है, इसे समझना और लागू करना आसान है, तथा इसमें जटिल गणना प्रक्रिया शामिल नहीं है।
  2. समन्वय में कई अवधि के मूविंग औसत का उपयोग करके, हम प्रभावी रूप से बाजार के शोर को फ़िल्टर कर सकते हैं और ट्रेडिंग संकेतों की विश्वसनीयता में सुधार कर सकते हैं।
  3. यह रणनीति ट्रेंडिंग बाजारों में पुलबैक अवसरों पर ध्यान केंद्रित करती है, जो “ट्रेंड ट्रेडिंग” की मूल अवधारणा के अनुरूप है।
  4. ईएमए के स्थान पर एसएमए का उपयोग करने से मूल्य परिवर्तनों के प्रति संवेदनशीलता कम हो जाती है और झूठे संकेतों में कमी आती है।
  5. प्रवेश और निकास का तर्क स्पष्ट है, जो निष्पादन और जोखिम नियंत्रण को सुविधाजनक बनाता है।

रणनीतिक जोखिम

  1. चलती औसत प्रणाली में विलम्ब होता है, जिसके कारण प्रवेश और निकास का समय इष्टतम नहीं हो पाता।
  2. अस्थिर बाजार में, लगातार चलती औसत क्रॉसओवर बहुत सारे गलत संकेत उत्पन्न कर सकते हैं।
  3. इस रणनीति में अस्थिरता को छानने की प्रणाली का अभाव है और उच्च अस्थिरता की अवधि के दौरान इसमें गिरावट का जोखिम अधिक हो सकता है।
  4. ट्रेडिंग वॉल्यूम जैसे अन्य तकनीकी संकेतकों के सहयोग पर विचार किए बिना, सिग्नल की विश्वसनीयता में सुधार करने की आवश्यकता है।
  5. निश्चित चल औसत पैरामीटर सभी बाजार परिवेशों के लिए उपयुक्त नहीं हो सकते हैं।

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

  1. अस्थिरता को फ़िल्टर करने के लिए एटीआर संकेतक का उपयोग करें और जब अस्थिरता बहुत अधिक हो तो ट्रेडिंग से बचें।
  2. ट्रेडिंग सिग्नल की विश्वसनीयता में सुधार करने के लिए वॉल्यूम पुष्टिकरण तंत्र जोड़ें।
  3. रणनीति को विभिन्न बाजार परिवेशों के लिए बेहतर रूप से अनुकूलित करने के लिए एक अनुकूली चल औसत चक्र तंत्र विकसित करना।
  4. मजबूत रुझानों में व्यापार सुनिश्चित करने के लिए ADX संकेतक जैसे रुझान शक्ति फिल्टर जोड़ें।
  5. जोखिमों पर बेहतर नियंत्रण के लिए स्टॉप-लॉस तंत्र में सुधार करें, जैसे ट्रेलिंग स्टॉप जोड़ना।

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("Long-Term Growing Stock Strategy", overlay=true)
// Date Range
// STEP 1. Create inputs that configure the backtest's date range
useDateFilter = input.bool(true, title="Filter Date Range of Backtest",group="Backtest Time Period")
backtestStartDate = input(timestamp("1 Jan 2014"),title="Start Date", group="Backtest Time Period",tooltip="This start date is in the time zone of the exchange " + "where the chart's instrument trades. It doesn't use the time " +"zone of the chart or of your computer.")
backtestEndDate = input(timestamp("31 Dec 2024"), title="End Date", group="Backtest Time Period")
// STEP 2. See if current bar falls inside the date range
inTradeWindow = true


// Calculate EMAs
// ema20 = ta.ema(close, ema20_length)
// ema60 = ta.ema(close, ema60_length)
// ema120 = ta.ema(close, ema120_length)
sma5 = ta.sma(close, 5)
sma10 = ta.sma(close, 10)
sma20 = ta.sma(close, 20)
sma60 = ta.sma(close, 60)
sma120 = ta.sma(close, 120)

// Long-term growth condition: EMA 20 > EMA 60 > EMA 120
longTermGrowth = sma20 > sma60
//  and ema60 > ema120

// Entry condition: Stock closes below EMA 20 and then rises back above EMA 10

// entryCondition = ta.crossover(close, ema20) or (close[1] < ema20[1] and close > ema20)
entryCondition =  sma5[1] <= sma20[1] and sma5 > sma20
// ta.crossover(sma5, sma20)

// Exit condition: EMA 20 drops below EMA 60
// exitCondition = ema5 < ema60 or (year == 2024 and month == 12 and dayofmonth == 30)
exitCondition = ta.crossover(sma20, sma5)

// Execute trades
if entryCondition and inTradeWindow
    strategy.entry("Long Entry", strategy.long)

if exitCondition and inTradeWindow
    strategy.close("Long Entry")
// plotchar(true, char="sma5: " + str.tostring(sma5))
// plotchar(true, char="sma5: " + sma20)
// label.new(x=bar_index, y=high + 10, text="SMA 5: " + str.tostring(sma5), color=color.blue, style=label.style_label_down, textcolor=color.white, size=size.small)
// label.new(x=bar_index, y=low, text="SMA 20: " + str.tostring(sma20), color=color.red, style=label.style_label_down, textcolor=color.white, size=size.small)


// x = time + (time - time[1]) * offset_x

//     var label lab = na
//     label.delete(lab)
//     lab := label.new(x=x, y=0, text=txt, xloc=xloc.bar_time, yloc=yloc.belowbar, color=color.red, textcolor=color.black, size=size.normal, style=label.style_label_up)
//     label.set_x(lab, x)



// Plot EMAs for visualization
// plot(ema20, color=color.red, title="EMA 20")
// plot(ema60, color=color.green, title="EMA 60")
// plot(ema120, color=color.blue, title="EMA 120")