Turtle Breakout Drawdown Adaptive Trading Strategy ٹرپل بریک آؤٹ ڈراؤونگ ایڈجسٹ ٹریڈنگ حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 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)


مزید