अनुकूली मल्टीपल मूविंग एवरेज मोमेंटम ब्रेकआउट ट्रेडिंग रणनीति

SMMA ZLEMA EMA MA SMA
निर्माण तिथि: 2025-01-10 15:27:53 अंत में संशोधित करें: 2025-01-10 15:27:53
कॉपी: 0 क्लिक्स: 71
1
ध्यान केंद्रित करना
1166
समर्थक

अनुकूली मल्टीपल मूविंग एवरेज मोमेंटम ब्रेकआउट ट्रेडिंग रणनीति

अवलोकन

यह एक ट्रेडिंग रणनीति है जो कई मूविंग एवरेज और मोमेंटम ब्रेकआउट पर आधारित है। यह रणनीति कई तकनीकी संकेतकों जैसे SMMA (समतल चलती औसत) और ZLEMA (शून्य अंतराल घातीय चलती औसत) को जोड़ती है, ताकि कीमतों और चलती औसत के बीच क्रॉसओवर संकेतों को पकड़कर व्यापार के अवसरों की पहचान की जा सके। यह रणनीति एक अनुकूली तंत्र को अपनाती है जो बाजार में उतार-चढ़ाव के अनुसार सिग्नल की संवेदनशीलता को समायोजित कर सकती है और लेनदेन की सटीकता में सुधार कर सकती है।

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

यह रणनीति चार प्रमुख चल औसत का उपयोग करती है: src (HLC3 पर आधारित SMMA), hi (उच्च पर आधारित SMMA), lo (निम्न पर आधारित SMMA) और mi (src पर आधारित ZLEMA)। ट्रेडिंग सिग्नल मुख्य रूप से इन मूविंग एवरेज के बीच क्रॉसओवर और स्थितिगत संबंधों पर आधारित होते हैं। एकाधिक सिग्नल स्थितियों का संयोजन ट्रेडिंग सिग्नल की विश्वसनीयता सुनिश्चित करता है। खरीद संकेतों में स्थितियों के चार अलग-अलग संयोजन शामिल होते हैं, और बिक्री संकेतों में भी स्थितियों के चार अलग-अलग संयोजन शामिल होते हैं। समापन संकेत मूल्य और एमआई मूविंग औसत के क्रॉसओवर और मूविंग औसत के बीच स्थितिगत संबंध पर आधारित है।

रणनीतिक लाभ

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

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

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

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

  1. उच्च अस्थिरता की अवधि के दौरान रणनीति मापदंडों को समायोजित करने के लिए अस्थिरता फिल्टर का परिचय
  2. सिग्नल विश्वसनीयता में सुधार के लिए ट्रेडिंग वॉल्यूम विश्लेषण जोड़ें
  3. चलती औसत मापदंडों को अनुकूलित करने के लिए अनुकूली तंत्र
  4. प्रवृत्ति निर्णय की सटीकता में सुधार करने के लिए प्रवृत्ति शक्ति सूचक जोड़ें
  5. जोखिम नियंत्रण क्षमताओं में सुधार के लिए एक गतिशील स्टॉप-लॉस तंत्र विकसित करें

संक्षेप

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

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

//@version=6

//study("Limit order strategy", overlay=true)
strategy('Limit order strategy', overlay = true)

lengthMA = input(1)
lengthmi = input(14)
lengthhigh = input(14)
lengthlow = input(14)

calc_smma(src, len) =>
    smma = 0.0
    smma := na(smma[1]) ? ta.sma(src, len) : (smma[1] * (len - 1) + src) / len
    smma

calc_zlema(src, length) =>
    ema1 = ta.ema(src, length)
    ema2 = ta.ema(ema1, length)
    d = ema1 - ema2
    ema1 + d


src = calc_smma(hlc3, lengthMA)
hi = calc_smma(high, lengthhigh)
lo = calc_smma(low, lengthlow)
mi = calc_zlema(src, lengthmi)

plot(src, color = color.new(#FF1493, 0), linewidth = 2, title = 'src')
plot(hi, color = color.new(#7CFC00, 0), linewidth = 2, title = 'hi')
plot(lo, color = color.new(#FF0000, 0), linewidth = 2, title = 'lo')
plot(mi, color = color.new(#00FFFF, 0), linewidth = 2, title = 'mi')


//strategy.order("buy", true, 1, stop = na, when = openbuy) // buy by market if current open great then previous high
//strategy.order("sell", false, 1, stop = na, when = opensell) // sell by market if current open less then previous low
//if src >= mi and src[1] <= mi[1] and src[1] <= lo[1]
//	strategy.entry("buy 1", strategy.long, qty = 15)
sigorderbuy1 = src > mi and src[1] < mi[1] and src < lo and mi < lo
sigorderbuy2 = src > lo and src[1] < lo[1] and mi < lo
sigorderbuy3 = src > hi and src[1] < hi[1] and mi < hi
sigorderbuy4 = src > mi and src[1] < mi[1] and src > hi and mi > hi
//sigorderbuy5 = mi > hi and  src > hi  and src > mi and src[1] < mi[1] 
//sigorderbuy6 = mi < hi and src > hi and src[1] < hi[1]
sigclosebuy = src < mi and src[1] > mi[1] or mi < lo and src < lo and src[1] > lo[1]

sigordersell1 = src < mi and src[1] > mi[1] and src > hi and mi > hi
sigordersell2 = src < hi and src[1] > hi[1] and mi > hi
sigordersell3 = src < lo and src[1] > lo[1] and mi > lo
sigordersell4 = src < mi and src[1] > mi[1] and src < lo and mi < lo
//sigordersell5 = mi < lo and  src < lo  and src < mi and src[1] > mi[1] 
//sigordersell6 = mi > lo and src < lo and src[1] > lo[1]
sigclosesell = src > mi and src[1] < mi[1] or mi > hi and src > hi and src[1] < hi[1]

plot(sigorderbuy1 ? 1 : 0, 'sigorderbuy1')
plot(sigorderbuy2 ? 1 : 0, 'sigorderbuy2')
plot(sigorderbuy3 ? 1 : 0, 'sigorderbuy3')
plot(sigorderbuy4 ? 1 : 0, 'sigorderbuy4')
//plot(sigorderbuy5 ? 1 : 0,"sigorderbuy5") 
//plot(sigorderbuy6 ? 1 : 0,"sigorderbuy6") 

plot(sigordersell1 ? 1 : 0, 'sigordersell1')
plot(sigordersell2 ? 1 : 0, 'sigordersell2')
plot(sigordersell3 ? 1 : 0, 'sigordersell3')
plot(sigordersell4 ? 1 : 0, 'sigordersell4')
//plot(sigordersell5 ? 1 : 0,"sigordersell5") 
//plot(sigordersell6 ? 1 : 0,"sigordersell6")

plot(sigclosebuy ? 1 : 0, 'sigclosebuy')
plot(sigclosesell ? 1 : 0, 'sigclosesell')


openbuy = sigorderbuy1 or sigorderbuy2 or sigorderbuy3 or sigorderbuy4 // or sigorderbuy5 or sigorderbuy6
opensell = sigordersell1 or sigordersell2 or sigordersell3 or sigordersell4 //or sigordersell5 or sigordersell6
openclosebuy = sigclosebuy
openclosesell = sigclosesell

alertcondition(condition = openbuy, title = 'sigorderbuy all', message = '{"accountmt":"70415621,666734890","time":"15","msg":"Buy {{ticker}} sig_b1={{plot("sigorderbuy1")}} sig_b2={{plot("sigorderbuy2")}} sig_b3={{plot("sigorderbuy3")}} sig_b4={{plot("sigorderbuy4")}}"}')
alertcondition(condition = opensell, title = 'sigordersell all', message = '{"accountmt":"70415621,666734890","time":"15","msg":"Sell {{ticker}} sig_s1={{plot("sigordersell1")}} sig_ss={{plot("sigordersell2")}} sig_s3={{plot("sigordersell3")}} sig_s4={{plot("sigordersell4")}} sig_s5={{plot("sigordersell5")}} sig_61={{plot("sigordersell6")}}"}')

alertcondition(condition = sigclosebuy, title = 'Close buy', message = '{"accountmt":"70415621,666734890","time":"15","msg":"Close {{ticker}} T=short"}')
alertcondition(condition = sigclosesell, title = 'Close sell', message = '{"accountmt":"70415621,666734890","time":"15","msg":"Close {{ticker}} T=long"}')

if sigorderbuy1
    strategy.order('Buy 1', strategy.long, 1)
if sigorderbuy2
    strategy.order('Buy 2', strategy.long, 1)
if sigorderbuy3
    strategy.order('Buy 3', strategy.long, 1)
if sigorderbuy4
    strategy.order('Buy 4', strategy.long, 1)


if sigordersell1
    strategy.order('sell 1', strategy.short, 1)
if sigordersell2
    strategy.order('sell 2', strategy.short, 1)
if sigordersell3
    strategy.order('sell 3', strategy.short, 1)
if sigordersell4
    strategy.order('sell 4', strategy.short, 1)
//strategy.order("sell 5", false, 1, when = sigordersell5)
//strategy.order("sell 6", false, 1, when = sigordersell6)