टर्टल ब्रेकआउट ड्रॉडाउन अनुकूलन ट्रेडिंग रणनीति

लेखक:चाओझांग, दिनांक: 2023-12-08 11:54:02
टैगः

img

अवलोकन

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

रणनीति तर्क

  1. तेज़ और धीमी दोहरी रेलें: तेज़ और धीमी लाइनों का उपयोग क्रमशः चैनलों के निर्माण के लिए किया जाता है। तेज़ लाइन तेजी से प्रतिक्रिया करती है और धीमी लाइन अधिक चिकनी होती है। दोहरी रेल सफलताओं को जोड़कर प्रवृत्ति की दिशा निर्धारित करें।

  2. ब्रेकआउट एंट्रीः जब कीमत ऊपर की ओर बढ़ने वाले चैनल को तोड़ती है, तो लंबी और जब यह नीचे की ओर बढ़ने वाले चैनल को तोड़ती है, तो छोटी जाती है। जोखिम को कम करने के लिए स्टॉप ऑर्डर का उपयोग करें।

  3. ड्रॉडाउन एक्जिट्स: अधिकतम ड्रॉडाउन की वास्तविक समय की निगरानी। एक बार ड्रॉडाउन एक्जिट प्वाइंट पर पहुँच जाने के बाद, यह सक्रिय रूप से बंद पदों के लिए नुकसान को रोक देगा। ड्रॉडाउन एक्जिट प्वाइंट को बाजार की स्थितियों के अनुसार समायोजित किया जा सकता है।

  4. अनुकूली स्थिति आकारः बाजार जोखिम से बचने के लिए खाता इक्विटी के आधार पर स्थिति की संख्या को वास्तविक समय में समायोजित किया जाता है। खाता ड्रॉडाउन जितना छोटा होगा, उतनी ही कम स्थिति होगी। जोखिम प्रतिरोधकता अधिक मजबूत होगी।

लाभ

  1. डबल रेल चैनल + ब्रेकआउट प्रविष्टियाँ, अधिक सटीक प्रवृत्ति निर्णय।

  2. स्टॉप लॉस और टेक प्रॉफिट तंत्र एकल हानि को प्रभावी ढंग से नियंत्रित करता है।

  3. बाजार जोखिम को कम करने के लिए खाते के उपयोग की वास्तविक समय की निगरानी और स्थिति के आकार का सक्रिय समायोजन।

  4. स्थिति का आकार अचानक बाजार परिवर्तनों का सामना करने के लिए जोखिम प्रतिरोध के साथ खाते की इक्विटी से जुड़ा हुआ है।

जोखिम

  1. उतार-चढ़ाव वाले बाजारों में ड्रॉडाउन कंट्रोल विफल हो सकता है, जिससे अधिक नुकसान हो सकता है।

  2. जब तेज लाइन तटस्थ क्षेत्र में प्रवेश करती है तो कई अमान्य सफलता संकेत हो सकते हैं।

  3. धीमी रेखा समय में तेजी से उलट रुझानों को पकड़ने के लिए बहुत चिकनी है।

  4. मिश्रित लंबी और छोटी मुद्राओं के साथ लॉक-इन का खतरा है।

अनुकूलन

  1. अधिक स्टॉप लॉस से बचने के लिए अस्थिर बाजारों के लिए अधिक ड्रॉडाउन सहिष्णुता निर्धारित करें।

  2. अमान्य संकेतों से बचने के लिए तटस्थ क्षेत्र फ़िल्टरिंग जोड़ें.

  3. तेजी से बाजारों के लिए प्रतिक्रिया की गति में सुधार के लिए धीमी चैनल के मापदंडों का अनुकूलन करना।

  4. दो-तरफा पदों के साथ लॉक-इन से बचने के लिए खोलने के आदेश क्रमबद्ध करने के नियम जोड़ें।

निष्कर्ष

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


//Noro
//2020

//Original idea from «Way of the Turtle: The Secret Methods that Turned Ordinary People into Legendary Traders» (2007, CURTIS FAITH, ISBN: 9780071486644) 

//@version=4
strategy("Noro's Turtles Strategy", shorttitle = "Turtles str", overlay = true, default_qty_type = strategy.percent_of_equity, initial_capital = 100, default_qty_value = 100, commission_value = 0.1)

//Settings
needlong = input(true, title = "Long")
needshort = input(false, title = "Short")
sizelong = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot long, %")
sizeshort = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot short, %")
needfast = input(true, title = "Fast")
needslow = input(true, title = "Slow")
enter_fast = input(20, minval=1)
exit_fast = input(10, minval=1)
enter_slow = input(55, minval=1)
exit_slow = input(20, minval=1)
showof = input(true, title = "Show offset")
showll = input(false, title = "Show lines")
showlabel = input(true, defval = true, title = "Show label")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Fast
fastL = highest(enter_fast)
fastLC = lowest(exit_fast)
fastS = lowest(enter_fast)
fastSC = highest(exit_fast)

//Slow
slowL = highest(enter_slow)
slowLC = lowest(exit_slow)
slowS = lowest(enter_slow)
slowSC = highest(exit_slow)

//Lines
offset = showof ? 1 : 0
col1 = showll and needlong and needfast ? color.blue : na
col2 = showll and needshort and needfast ? color.red : na
col3 = showll and needlong and needslow ? color.blue : na
col4 = showll and needshort and needslow ? color.red : na
plot(fastL, color = col1, offset = offset)
plot(fastLC, color = col1, offset = offset)
plot(fastS, color = col2, offset = offset)
plot(fastSC, color = col2, offset = offset)
plot(slowL, color = col3, offset = offset)
plot(slowLC, color = col3, offset = offset)
plot(slowS, color = col4, offset = offset)
plot(slowSC, color = col4, offset = offset)

//Orders
truetime = time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)
size = strategy.position_size
lotlong = 0.0
lotlong := size != size[1] ? strategy.equity / close * sizelong / 100 : lotlong[1]
lotshort = 0.0
lotshort := size != size[1] ? strategy.equity / close * sizeshort / 100 : lotshort[1]

//Fast
strategy.entry("fast L", strategy.long, lotlong, stop = fastL, when = needfast and needlong and strategy.position_size == 0 and truetime)
strategy.entry("fast S", strategy.short, lotshort, stop = fastS, when = needfast and needshort and strategy.position_size == 0 and truetime)
strategy.exit("fast L", stop = fastLC, when = needfast and needlong and strategy.position_size > 0)
strategy.exit("fast S", stop = fastSC, when = needfast and needshort and strategy.position_size < 0)

//Slow
strategy.entry("slow L", strategy.long, lotlong, stop = slowL, when = needslow and needlong and strategy.position_size == 0 and truetime)
strategy.entry("slow S", strategy.short, lotshort, stop = slowS, when = needslow and needshort and strategy.position_size == 0 and truetime)
strategy.exit("slow L", stop = slowLC, when = needslow and needlong and strategy.position_size > 0)
strategy.exit("slow S", stop = slowSC, when = needslow and needshort and strategy.position_size < 0)

if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()
    strategy.cancel("fast L")
    strategy.cancel("fast S")
    strategy.cancel("slow L")
    strategy.cancel("slow S")
    
if showlabel

    //Drawdown
    max = 0.0
    max := max(strategy.equity, nz(max[1]))
    dd = (strategy.equity / max - 1) * 100
    min = 100.0
    min := min(dd, nz(min[1]))
    
    //Label
    min := round(min * 100) / 100
    labeltext = "Drawdown: " + tostring(min) + "%"
    var label la = na
    label.delete(la)
    tc = min > -100 ? color.white : color.red
    osx = timenow + round(change(time)*10)
    osy = highest(100)


अधिक