डोंचियन चैनल ट्रेंड ट्रैकिंग रणनीति

लेखक:चाओझांग, दिनांक: 2023-11-06 15:52:56
टैगः

img

अवलोकन

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

रणनीति तर्क

रणनीति पहले बैकटेस्टिंग समय सीमा निर्धारित करती है, और फिर लंबी और छोटी प्रविष्टि नियमों को परिभाषित करती है।

लंबी पोजीशन के लिए, जब कीमत डोंचियन चैनल के ऊपरी बैंड से ऊपर टूटती है, तब लंबी पोजीशन खोलें; जब कीमत निचले बैंड से नीचे टूटती है, तब लंबी पोजीशन बंद करें।

शॉर्ट पोजीशन के लिए, जब कीमत डोंचियन चैनल के निचले बैंड से नीचे टूटती है, तब शॉर्ट खोलें; जब कीमत ऊपरी बैंड से ऊपर टूटती है, तब शॉर्ट बंद करें।

रणनीति में स्टॉप लॉस एक्जिट तंत्र को सेट करने के लिए एटीआर संकेतक भी शामिल है। स्टॉप लॉस स्तर के रूप में एटीआर मान को गुणांक से गुणा किया जाता है।

विशेष रूप से, लॉन्ग स्टॉप लॉस एटीआर स्टॉप लॉस मूल्य घटाकर प्रवेश मूल्य है; शॉर्ट स्टॉप लॉस एटीआर स्टॉप लॉस मूल्य को जोड़कर प्रवेश मूल्य है।

रणनीति में डोंचियन चैनल के ऊपरी और निचले बैंड और एटीआर स्टॉप लॉस लाइन को एक पूर्ण ट्रेडिंग प्रणाली बनाने के लिए भी प्लॉट किया गया है।

लाभ

  • ट्रेंड की दिशा निर्धारित करने के लिए डोंचियन चैनल का उपयोग करें, कुछ ट्रेंड ट्रैकिंग क्षमता के साथ।

  • डोंचियन चैनल चिकनी पैरामीटर समायोज्य है, जो सर्वोत्तम पैरामीटर संयोजन खोजने के लिए पैरामीटर अनुकूलन की अनुमति देता है।

  • एटीआर के साथ स्टॉप लॉस तंत्र जोखिमों को प्रभावी ढंग से नियंत्रित कर सकता है।

  • लंबे और छोटे व्यापारिक नियम सरल और समझने में आसान हैं, जो शुरुआती लोगों के लिए उपयुक्त हैं।

  • कोड संरचना स्पष्ट और समझने और संशोधित करने में आसान है।

जोखिम

  • डोंचियन चैनल में सीमाबद्ध मूल्य उतार-चढ़ाव के दौरान कुछ विप्सॉव ट्रेड हो सकते हैं।

  • गलत एटीआर स्टॉप लॉस रेंज सेटिंग बहुत व्यापक या बहुत संवेदनशील स्टॉप लॉस का कारण बन सकती है।

  • लंबी और छोटी स्थिति बहुत अधिक केंद्रित हो सकती है, जिसके लिए स्थिति आकार के नियमों की आवश्यकता होती है।

  • इस रणनीति को विभिन्न उत्पादों पर लागू होने के लिए परीक्षण करने की आवश्यकता है, जिसमें स्वतंत्र पैरामीटर अनुकूलन है।

  • ट्रेडिंग लागतों पर भी विचार करने की आवश्यकता है, उच्च लागत वाले वातावरण में मापदंडों को समायोजित करने की आवश्यकता हो सकती है।

बढ़ोतरी के अवसर

  • सबसे अच्छा पैरामीटर संयोजन खोजने के लिए डोंचियन चैनल के अवधि मापदंडों का अनुकूलन करें।

  • इष्टतम स्टॉप लॉस रेंज खोजने के लिए विभिन्न एटीआर गुणांक का प्रयोग करें।

  • लाभ में लॉक करने के लिए एटीआर स्टॉप लॉस के ऊपर ट्रेलिंग स्टॉप लॉस को पेश करने का प्रयास करें।

  • बाजार स्थितियों के आधार पर लंबी/छोटी स्थिति अनुपात को समायोजित करें।

  • सामान्य मापदंडों को खोजने के लिए विभिन्न उत्पादों पर मापदंडों की मजबूती का परीक्षण करें।

  • स्थिरता में सुधार के लिए एमएसीडी और अन्य फिल्टर को शामिल करने का अध्ययन।

  • विभिन्न व्यापार लागत वातावरणों के तहत पैरामीटर अनुकूलन का परीक्षण करें।

सारांश

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


/*backtest
start: 2022-10-30 00:00:00
end: 2023-11-05 00:00:00
period: 1d
basePeriod: 1h
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/
// © kriswaters

//@version=4
strategy("Donchian Channels Strategy by KrisWaters", overlay=true ) 

// Date filter
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromYear  = input(defval = 2017, title = "From Year", minval = 1900)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

// Strategy Settings
canEnterLong = input(true, title="Can Enter Long Position")
canEnterShort = input(false, title="Can Enter Short Position")

showLongChannel = input(true, title="Show Donchian Long Channels")
showShortChannel = input(false , title="Show Donchian Short Channels")

useAtrAsStopRule = input(false, title="Enable ATR Stop Rule") 

// DonCcian Channel Lengths
longUpperLength = input(20, minval=1)
longLowerLength = input(10, minval=1)

shortUpperLength = input(10, minval=1)
shortLowerLength = input(20, minval=1)

// Donchian indicator calculations
longUpperValue = highest(high,longUpperLength)
longLowerValue = lowest(low,longLowerLength)

shortUpperValue = highest(high,shortUpperLength)
shortLowerValue = lowest(low,shortLowerLength)

// Plot Donchian Channels
uLong = plot(showLongChannel ? longUpperValue : na, color=color.green, offset=1)
lLong = plot(showLongChannel ? longLowerValue : na, color=color.green, offset=1)

uShort = plot(showShortChannel ? shortUpperValue : na, color=color.red, offset=1)
lShort = plot(showShortChannel ? shortLowerValue : na, color=color.red, offset=1)

// Styling
fill(uLong,lLong, color=color.green, transp=95, title="Long Arkaplan")
fill(uShort,lShort, color=color.red, transp=95, title="Short Arkaplan")

// Stop-loss value calculations
atrMultiplier = 2.0
atrValue = atr(20)
longStopValue = open - (atrMultiplier*atrValue)
shortStopValue = open + (atrMultiplier*atrValue)

// Plot stop-loss line
plot(useAtrAsStopRule ? longStopValue : na, color=color.red, linewidth=2, offset=1)
plot(useAtrAsStopRule ? shortStopValue : na, color=color.red, linewidth=2, offset=1)

// Long and Short Position Rules
if canEnterLong and na(longUpperValue) != true and na(longLowerValue) != true and window()
    strategy.entry("Long", true, stop=longUpperValue)
    strategy.exit("Long Exit", "Long", stop=useAtrAsStopRule ? max(longLowerValue,longStopValue) : longLowerValue)
    
if canEnterShort and na(shortUpperValue) != true and na(shortLowerValue) != true and window()
    strategy.entry("Short", false, stop=shortLowerValue)
    strategy.exit("Short Exit", "Short", stop=useAtrAsStopRule ? min(shortUpperValue,shortStopValue) : shortUpperValue)
    


अधिक