एक सरल डबल मूविंग एवरेज क्रॉसओवर ट्रेडिंग रणनीति पर आधारित


निर्माण तिथि: 2023-12-25 16:03:48 अंत में संशोधित करें: 2023-12-25 16:03:48
कॉपी: 0 क्लिक्स: 643
1
ध्यान केंद्रित करना
1623
समर्थक

एक सरल डबल मूविंग एवरेज क्रॉसओवर ट्रेडिंग रणनीति पर आधारित

अवलोकन

यह रणनीति सरल चलती औसत (एसएमए) पर आधारित है। यह रणनीति दो एसएमए का उपयोग करती है, अर्थात् तेज एसएमए और धीमी एसएमए, जब तेज एसएमए धीमी एसएमए को नीचे से तोड़ता है, तो एक खरीद संकेत उत्पन्न करता है; जब तेज एसएमए धीमी एसएमए को नीचे से तोड़ता है, तो एक बेचने का संकेत उत्पन्न करता है।

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

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

विभिन्न एसएमए चक्र पैरामीटर सेट करके, रणनीति के पैरामीटर को अलग-अलग बाजार स्थितियों के लिए कुछ हद तक समायोजित किया जा सकता है। साथ ही, यह रणनीति ऐतिहासिक डेटा पर रणनीति पैरामीटर का परीक्षण करने के लिए एक समय सीमा सेट करने की अनुमति देती है।

श्रेष्ठता विश्लेषण

  • SMA का उपयोग करना आसान है और इसे समझना आसान है
  • अनुकूलन योग्य SMA चक्र पैरामीटर, अनुकूलन योग्य
  • पैरामीटर अनुकूलन के लिए समायोज्य समय सीमा
  • क्रॉसिंग के माध्यम से संकेत उत्पन्न करने के लिए, एक प्रकार का फ़िल्टरिंग प्रभाव है जो गलत लेनदेन को कम करता है

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

  • एसएमए स्वयं पिछड़ा हुआ है, शायद शॉर्ट-लाइन अवसरों को याद कर रहा है
  • प्रवृत्ति की ताकत का आकलन करने में असमर्थ, संकेतों का प्रभाव अस्थिर हो सकता है
  • गलत तरीके से सेट किए गए एसएमए चक्र पैरामीटर त्रुटि संकेतों को बढ़ा सकते हैं

उपरोक्त जोखिमों के लिए, निम्नलिखित उपाय किए जा सकते हैंः

  • एसएमए चक्र को उचित रूप से छोटा करें और संवेदनशीलता बढ़ाएं
  • अन्य संकेतकों के साथ प्रवृत्ति की ताकत
  • पैरामीटर ऑप्टिमाइज़ेशन टूल का उपयोग करके सबसे अच्छा पैरामीटर संयोजन ढूंढें

अनुकूलन दिशा

  • एकल हानि को नियंत्रित करने के लिए रोकथाम की रणनीति में वृद्धि
  • स्थिति प्रबंधन तंत्र में वृद्धि
  • अन्य तकनीकी संकेतकों के साथ संयोजन
  • गतिशील पैरामीटर अनुकूलन के लिए मशीन लर्निंग एल्गोरिदम जोड़ना

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2023-12-17 00:00:00
end: 2023-12-18 19:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//strategy(title="MA Cross Entry & Exit w/Date Range", overlay=true, initial_capital=10000, currency='USD')

strategy(title="SMA Cross Entry & Exit Strategy", overlay=true)

// Credit goes to this developer for the "Date Range Code"
// https://www.tradingview.com/script/62hUcP6O-How-To-Set-Backtest-Date-Range/


// === GENERAL INPUTS ===
// short ma
maFastSource   = input(defval = open, title = "Fast MA Source")
maFastLength   = input(defval = 36, title = "Fast MA Period", minval = 1)
// long ma
maSlowSource   = input(defval = open , title = "Slow MA Source")
maSlowLength   = input(defval = 46, title = "Slow MA Period", minval = 1)

// === SERIES SETUP ===
// a couple of ma's..
maFast = sma(maFastSource, maFastLength)
maSlow = sma(maSlowSource, maSlowLength)


// === PLOTTING ===
fast = plot(maFast, title = "Fast MA", color = red, linewidth = 2, style = line, transp = 30)
slow = plot(maSlow, title = "Slow MA", color = green, linewidth = 2, style = line, transp = 30)

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 2017)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false // create function "within window of time"

// === LOGIC ===
//enterLong = crossover(maFast, maSlow)
//exitLong = crossover(maSlow, maFast)
enterLong = crossover(maSlow, maFast)
exitLong = crossover(maFast, maSlow)


// Entry //
strategy.entry(id="Long Entry", long=true, when=window() and enterLong)
strategy.entry(id="Short Entry", long=false, when=window() and exitLong)

// === FILL ====

fill(fast, slow, color = maFast > maSlow ? green : red)