दोहरी चलती औसत क्रॉसओवर एमएसीडी मात्रात्मक रणनीति

लेखक:चाओझांग, दिनांकः 2024-02-22 15:32:42
टैगः

img

अवलोकन

यह रणनीति तेजी से और धीमी गति से चलती औसत रेखाओं के बीच अंतर की गणना करके एमएसीडी संकेतक उत्पन्न करती है, और संकेत रेखा के साथ वित्तीय बाजारों के रुझान और ओवरबॉट / ओवरसोल्ड क्षेत्रों का न्याय करती है। यह तब लंबा हो जाता है जब एमएसीडी और संकेत रेखा एक स्वर्ण क्रॉस बनाते हैं जबकि कीमत 200-दिवसीय एमए से ऊपर होती है, और जब कीमत 200-दिवसीय एमए से नीचे होती है तो एक मृत क्रॉस बनती है। यह एक विशिष्ट दोहरी चलती औसत क्रॉसओवर ब्रेकआउट रणनीति से संबंधित है।

रणनीति तर्क

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

विशिष्ट गणना पद्धति हैः

  1. MACD प्राप्त करने के लिए फास्ट मूविंग एवरेज (12 दिन का ईएमए) माइनस स्लो मूविंग एवरेज (26 दिन का ईएमए)
  2. सिग्नल लाइन प्राप्त करने के लिए एमएसीडी का 9-दिवसीय ईएमए
  3. एमएसीडी माइनस संकेत रेखा एमएसीडी हिस्टोग्राम प्राप्त करने के लिए

जब एमएसीडी सिग्नल लाइन के ऊपर से गुजरता है जबकि वे दोनों 0 से नीचे होते हैं, तो यह एक स्वर्ण क्रॉस लंबा संकेत है। जब एमएसीडी सिग्नल लाइन के नीचे से गुजरता है जबकि वे दोनों 0 से ऊपर होते हैं, तो यह एक मृत क्रॉस शॉर्ट संकेत है। इस बीच, केवल तब लंबा होता है जब कीमत 200-दिवसीय एमए से ऊपर होती है, और कम होती है जब कीमत 200-दिवसीय एमए से नीचे होती है।

लाभ

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

जोखिम

  1. बाजार की अस्थिरता से संकेतकों के आकलन में त्रुटियां हो सकती हैं
  2. एमए की पिछड़ी प्रकृति रणनीति की समयबद्धता को प्रभावित करती है
  3. कम संकेत प्रवृत्ति के अवसरों को याद कर सकते हैं
  4. मापदंडों के अनुकूलन में अति-अनुकूलन के जोखिम
  5. ड्रॉडाउन नियंत्रण और स्टॉप लॉस तंत्र की कमी

एमए अवधि को छोटा करके, अन्य संकेतक जोड़कर और स्टॉप लॉस जोड़कर जोखिम को कम कर सकता है।

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

1.15M से 1D तक विभिन्न समय सीमाओं पर परीक्षण किया गया, जोखिम समायोजित रिटर्न में 4H पर इष्टतम परिणाम

2. तेज और धीमे एमए को अनुकूलित करें ताकि एमएसीडी चक्रों को कैप्चर करे, 7-21 15m के लिए अच्छा है

3.एमएसीडी के लिए हॉल एमए ने अच्छे परिणाम दिए

4.ट्रेलिंग स्टॉपलॉस जोखिम प्रबंधन में सुधार करता है

निष्कर्ष

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


/*backtest
start: 2024-02-14 00:00:00
end: 2024-02-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Hurmun

//@version=4
strategy("Simple MACD strategy ", overlay=true, margin_long=100, margin_short=100)


fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA (Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA (Signal Line)", type=input.bool, defval=false)
// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00
// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal


movinga2 = input(title="movinga 2", type=input.integer, defval=200)

movinga200 = sma(close, movinga2)

plot(movinga200, "MA", color.orange)
longCondition = crossover(macd, signal) and macd < 0 and signal < 0 and close > movinga200
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = crossunder(macd, signal) and macd > 0 and signal > 0 and close < movinga200
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)
    
shortProfitPerc = input(title="Short Take Profit (%)", minval=0.0, step=0.1, defval=2) / 100
longProfitPerc = input(title="Long Take Profit (%)", minval=0.0, step=0.1, defval=2) / 100
    
stoploss = input(title="stoploss in %", minval = 0.0, step=1, defval=2) /100

longStoploss = strategy.position_avg_price * (1 - stoploss)
longExitPrice  = strategy.position_avg_price * (1 + longProfitPerc)

shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc)
shortStoploss = strategy.position_avg_price * (1 + stoploss)
    
if (strategy.position_size > 0 )
    strategy.exit(id="XL TP", limit=longExitPrice, stop=longStoploss)






if (strategy.position_size < 0 )
    strategy.exit(id="XS TP", limit=shortExitPrice, stop=shortStoploss)

अधिक