दोहरी ईएमए क्रॉसओवर रणनीति

लेखक:चाओझांग, दिनांक: 2023-11-13 17:35:14
टैगः

img

अवलोकन

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

रणनीति तर्क

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

  1. तेज़ और धीमे ईएमए की गणना करें: लंबाई fastInput के तेज़ ईएमए और लंबाई slowInput के धीमे ईएमए की गणना करने के लिए ta.ema() का उपयोग करें।

  2. बैकटेस्ट समय सीमा सेट करें: बैकटेस्ट समय सीमा को फ़िल्टर करने के लिए useDateFilter का उपयोग करें, और बैकटेस्टस्टार्टडेट और बैकटेस्टएंडडेट का उपयोग प्रारंभ और समाप्ति समय सेट करने के लिए करें.

  3. ट्रेडिंग सिग्नल उत्पन्न करें: तेजी से और धीमे ईएमए की तुलना करने के लिए ta.crossover() और ta.crossunder() का उपयोग करें, जब तेजी से ईएमए धीमी ईएमए से पार हो जाता है तो खरीद सिग्नल उत्पन्न करें, और जब तेजी से ईएमए धीमी ईएमए से नीचे पार हो जाता है तो बिक्री सिग्नल उत्पन्न करें।

  4. समय सीमा के बाहर आदेशों को संभालेंः बैकटेस्ट समय सीमा के बाहर अधूरे आदेशों को रद्द करें, और सभी पदों को समतल करें।

  5. ईएमए रेखाओं को ग्राफ करें: चार्ट पर तेज और धीमी ईएमए रेखाओं को ग्राफ करें।

लाभ विश्लेषण

यह एक बहुत ही सरल ट्रेंड फॉलो करने वाली रणनीति है, जिसके निम्नलिखित फायदे हैंः

  1. सरल तर्क, समझने और लागू करने में आसान।

  2. ईएमए कीमतों के आंकड़ों को सुचारू करता है और व्यापारिक शोर को कम करता है।

  3. अनुकूलन योग्य ईएमए अवधि, विभिन्न बाजार परिवेशों के अनुकूल।

  4. विशिष्ट समय अवधि के परीक्षण के लिए लचीला बैकटेस्ट समय सीमा।

  5. अनुकूलन योग्य प्रवेश और निकास स्थितियों को अन्य संकेतकों के साथ जोड़ा जा सकता है।

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

इस रणनीति में कुछ जोखिम भी हैं:

  1. दोहरी ईएमए रणनीति कच्ची है, जो बाजार परिवर्तनों के लिए लचीले ढंग से अनुकूलित करने में असमर्थ है।

  2. बार-बार व्यापार करने और बार-बार व्यापार करने का जोखिम।

  3. गलत ईएमए पैरामीटर गलत ट्रेडिंग संकेत का कारण बन सकते हैं।

  4. अनुचित बैकटेस्ट समय सीमा ओवरफिटिंग का कारण बन सकती है।

  5. अपरिहार्य निकासी और हानि का जोखिम।

जोखिमों को पैरामीटर अनुकूलन, फ़िल्टरिंग उतार-चढ़ाव, स्टॉप लॉस आदि के माध्यम से प्रबंधित किया जा सकता है।

अनुकूलन दिशाएँ

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

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

  2. अनावश्यक लेनदेन को फ़िल्टर करने के लिए अन्य संकेतक जोड़ें।

  3. एकल व्यापार हानि को नियंत्रित करने के लिए स्टॉप लॉस जोड़ें.

  4. ट्रेडिंग आवृत्ति को कम करने के लिए ट्रेंड, अस्थिरता फ़िल्टर शामिल करें।

  5. सबसे अच्छा फिट खोजने के लिए विभिन्न उत्पादों का परीक्षण करें।

  6. अधिक यथार्थवादी बैकटेस्ट के लिए स्लिप, कमीशन का उपयोग करें।

सारांश

संक्षेप में, यह तेजी से और धीमी ईएमए की तुलना करके स्पष्ट तर्क के साथ एक बहुत ही सरल दोहरी ईएमए क्रॉसओवर रणनीति है। लाभ सरल कार्यान्वयन है, लेकिन इसमें लगातार व्यापार, ओवरफिटिंग जैसे मुद्दे भी हैं। अगला कदम अधिक मजबूत रणनीति के लिए पैरामीटर अनुकूलन, जोखिम प्रबंधन में सुधार करना है।


/*backtest
start: 2022-11-06 00:00:00
end: 2023-11-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=5
strategy("MollyETF_EMA_Crossover", overlay = true, initial_capital = 100000, default_qty_value=100, default_qty_type=strategy.percent_of_equity)

fastInput = input( 10, "Fast EMA")
slowInput = input( 21, "Slow EMA")

// Calculate two moving averages with different lengths.
float fastMA = ta.ema(close, fastInput)
float slowMA = ta.ema(close, slowInput)


// 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 2018"), 
     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("7 Sep 2023"),
     title="End Date", group="Backtest Time Period",
     tooltip="This end 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.")

// STEP 2. See if current bar falls inside the date range
inTradeWindow = true

// STEP 3. Include the date filter with the entry order conditions

// Enter a long position when `fastMA` crosses over `slowMA`.
if inTradeWindow and ta.crossover(fastMA, slowMA)
    strategy.entry("buy", strategy.long)

// Enter a short position when `fastMA` crosses under `slowMA`.
if inTradeWindow and ta.crossunder(fastMA, slowMA)
    strategy.close_all(comment="sell")

// STEP 4. With the backtest date range over, exit all open
// trades and cancel all unfilled pending orders
if not inTradeWindow and inTradeWindow[1]
    strategy.cancel_all()
    strategy.close_all(comment="Date Range Exit")

// Plot the moving averages.
plot(fastMA, "Fast MA", color.aqua)
plot(slowMA, "Slow MA", color.orange)




अधिक