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


निर्माण तिथि: 2023-12-08 11:54:02 अंत में संशोधित करें: 2023-12-08 11:54:02
कॉपी: 0 क्लिक्स: 732
1
ध्यान केंद्रित करना
1621
समर्थक

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

अवलोकन

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

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

  1. तेज और धीमी दोहरी रेलः अलग-अलग तेज और धीमी लाइनों का उपयोग करके चैनल का निर्माण करें। तेज लाइन की प्रतिक्रिया की गति तेज है, धीमी लाइन की चिकनाई अधिक है। दोहरी रेल के संयोजन से प्रवृत्ति की दिशा निर्धारित की जाती है।

  2. ब्रेकआउट प्रविष्टियाँः जब कीमत ऊपर की ओर प्रवेश करती है तो अधिक करें, और जब वह नीचे की ओर प्रवेश करती है तो खाली करें। स्टॉप लॉस को एकल स्टॉप लॉस के रूप में अपनाएं ताकि जोखिम कम हो सके।

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

  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)