चलती औसत क्रॉसओवर रणनीति

लेखक:चाओझांग, दिनांकः 2023-11-23 13:38:02
टैगः

img

अवलोकन

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

रणनीति तर्क

यह रणनीति एक निर्दिष्ट अवधि के सरल चलती औसत की गणना करने के लिए sma फ़ंक्शन का उपयोग करती है जैसे कि तेज एमए और धीमी एमए। डिफ़ॉल्ट तेज एमए अवधि 18 दिन है, जिसे मापदंडों के माध्यम से समायोजित किया जा सकता है।

जब तेज एमए नीचे से धीमे एमए के ऊपर से गुजरता है, तो क्रॉसअंडर फ़ंक्शन क्रॉसओवर सिग्नल का पता लगाता है और एक खरीद संकेत उत्पन्न करता है। जब तेज एमए ऊपर से धीमे एमए के नीचे से गुजरता है, तो क्रॉसओवर फ़ंक्शन क्रॉसओवर सिग्नल का पता लगाता है और एक बिक्री संकेत उत्पन्न करता है।

यह रणनीति ट्रैक सिग्नल और एग्जिट सिग्नल के माध्यम से स्वचालित ट्रेडिंग का एहसास करती है। जब तेज एमए धीमी एमए से ऊपर पार हो जाती है तो लॉन्ग एंट्री ट्रिगर होती है, और जब तेज एमए धीमी एमए से नीचे पार हो जाती है तो शॉर्ट एंट्री ट्रिगर होती है। रिवर्स क्रॉसओवर पर भी संबंधित एग्जिट सिग्नल उत्पन्न होते हैं।

लाभ विश्लेषण

  • चलती औसत में प्रवृत्तियों को प्रभावी ढंग से ट्रैक करने और मूल्य गति को पकड़ने की क्षमता होती है
  • एमए रणनीतियाँ सरल और सीधा, समझने और लागू करने में आसान हैं
  • मापदंडों को विभिन्न बाजार वातावरण के अनुकूल अनुकूलित किया जा सकता है
  • रणनीति मैन्युअल हस्तक्षेप के बिना ट्रेडिंग को स्वचालित करती है, जिससे ट्रेडिंग लागत कम होती है

जोखिम और समाधान

  • मूल्य में उतार-चढ़ाव कई झूठे संकेत और उच्च व्यापारिक आवृत्ति का कारण बन सकता है। अतिरिक्त फ़िल्टर इससे बच सकते हैं।
  • पैरामीटर अनुकूलन महत्वपूर्ण है और प्रदर्शन को महत्वपूर्ण रूप से प्रभावित कर सकता है। बैकटेस्ट अनुकूलन और अनुकूली एमए मदद कर सकते हैं।
  • व्यापार संकेतों को फ़िल्टर करने या पूरक करने के लिए अन्य संकेतकों का संयोजन किया जा सकता है।
  • स्टॉप लॉस एकल व्यापार हानि को नियंत्रित कर सकता है।

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

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

निष्कर्ष

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


/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-17 04:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "MA Close Strategy", shorttitle = "MA Close",calc_on_order_fills=true,calc_on_every_tick =true, initial_capital=21000,commission_value=.25,overlay = true,default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

MASource   = input(defval = open, title = "MA Source")
MaLength   = input(defval = 18, title = "MA Period", minval = 1)

StartYear = input(2018, "Backtest Start Year")
StartMonth = input(1, "Backtest Start Month")
StartDay = input(1, "Backtest Start Day")
UseStopLoss = input(true,"UseStopLoss")
stopLoss = input(50, title = "Stop loss percentage(0.1%)") 

window() => time >=  timestamp(StartYear, StartMonth, StartDay,00,00) ? true : false

MA = sma(MASource,MaLength)

plot(MA, title = "Fast MA", color = green, linewidth = 2, style = line, transp = 50)

long = crossunder(MA, close)
short = crossover(MA, close)

if (long)
    strategy.entry("LongId", strategy.long, when = long)
    strategy.exit("ExitLong", from_entry = "LongId", when = short)

if (short)
    strategy.entry("ShortId", strategy.short, when = short)
    strategy.exit("ExitShort", from_entry = "ShortId", when = long)

if (UseStopLoss)
    strategy.exit("StopLoss", "LongId", loss = close * stopLoss / 1000 / syminfo.mintick)
    strategy.exit("StopLoss", "ShortId", loss = close * stopLoss / 1000 / syminfo.mintick)


अधिक