ডনচিয়ান চ্যানেলের উপর ভিত্তি করে টার্টেল ট্রেডিং কৌশল

লেখক:চাওঝাং, তারিখঃ ২০২৪-০২-২৬ 14:35:02
ট্যাগঃ

img

সারসংক্ষেপ

ট্যাং অ্যানকি টার্টল ট্রেডিং কৌশলটি মূল টার্টল ট্রেডিং কৌশলটির একটি অত্যন্ত সরলীকৃত সংস্করণ। এটি মূল টার্টল কৌশল থেকে খুব আলাদা। কৌশলটি দুটি ডনচিয়ান চ্যানেল, একটি দ্রুত চ্যানেল এবং একটি ধীর চ্যানেল ব্যবহার করে। চ্যানেলের সময়কাল ব্যবহারকারী দ্বারা সেট করা হয়, দ্রুত চ্যানেলের জন্য 20 বার এবং ধীর চ্যানেলের জন্য 50 বার ডিফল্ট মান সহ। কৌশলটি ধীর চ্যানেলের উপরের এবং নীচের ব্যান্ডগুলিকে প্রবেশের ব্যবসায় এবং দ্রুত চ্যানেলের মাঝারি ব্যান্ডটি স্টপ লস সেট করতে ব্যবহার করে।

কৌশলগত যুক্তি

এই কৌশলটির মূল যুক্তি হল:

  1. দ্রুত ডনচিয়ান চ্যানেল গণনা করুন: উপরের ব্যান্ডটি গত দ্রুত বারগুলির মধ্যে সর্বোচ্চ উচ্চ, নিম্ন ব্যান্ডটি সর্বনিম্ন নিম্ন, এবং মধ্যবর্তী ব্যান্ডটি উপরের এবং নিম্ন ব্যান্ডগুলির গড়।

  2. ধীর ডনচিয়ান চ্যানেল গণনা করুন: উপরের ব্যান্ডটি অতীতের ধীর বারগুলির তুলনায় সর্বোচ্চ উচ্চ, নীচের ব্যান্ডটি সর্বনিম্ন নিম্ন।

  3. যখন কোন পজিশন থাকে না, যখন দাম ধীর চ্যানেলের উপরের ব্যান্ড স্পর্শ করে তখন একটি দীর্ঘ সংকেত সক্রিয় হয় এবং যখন দাম ধীর চ্যানেলের নিম্ন ব্যান্ড স্পর্শ করে তখন একটি সংক্ষিপ্ত সংকেত সক্রিয় হয়।

  4. একটি পজিশন খোলার পর, দ্রুত চ্যানেলের মধ্যবর্তী ব্যান্ডটি স্টপ লস হিসেবে ব্যবহার করা হয়।

  5. যখন হোল্ডিং পেরিওডের সময় ওপেনিং সিগন্যালের বিপরীত সিগন্যাল থাকে তখন পজিশন বন্ধ করুন।

সুবিধা বিশ্লেষণ

এই কৌশলটির সুবিধাগুলো হল:

  1. Donchian চ্যানেল এবং চলমান স্টপ লস সহজেই বোঝা যায়, নতুনদের জন্য উপযুক্ত।

  2. কাস্টমাইজযোগ্য পরামিতিঃ ব্যবহারকারীরা বিভিন্ন বাজারের পরিবেশে মানিয়ে নিতে ট্রেডিং পণ্য এবং সময়সীমার উপর ভিত্তি করে পরামিতিগুলি সামঞ্জস্য করতে পারেন।

  3. কম দ্বন্দ্বপূর্ণ ট্রেডিং সংকেত শুধুমাত্র চ্যানেল ব্যান্ডের দামের ব্রেকআউট উপর নির্ভর করে, সাধারণ সূচক থেকে মিথ্যা সংকেত এড়ায়।

  4. স্বয়ংক্রিয় স্টপ লস ম্যানেজমেন্ট। দ্রুত চ্যানেলের মধ্যবর্তী ব্যান্ডের উপর ভিত্তি করে চলমান স্টপ লস একক ট্রেডগুলিতে ক্ষতি সীমাবদ্ধ করতে পারে।

ঝুঁকি বিশ্লেষণ

এই কৌশলটির ঝুঁকিগুলির মধ্যে রয়েছেঃ

  1. যখন প্রবণতা অস্পষ্ট থাকে তখন স্টপ লস বেশি হয়। এটি কৌশলটির লাভজনকতা প্রভাবিত করে।

  2. যখন প্রবণতা বিপরীত হয়, পূর্ববর্তী প্রবণতা দিকের ভাসমান মুনাফা ক্ষতিতে পরিণত হবে।

  3. অনুপযুক্ত প্যারামিটার সেটিংগুলি অতিরিক্ত আক্রমণাত্মকতা বা অতিরিক্ত সংরক্ষণশীলতার দিকে পরিচালিত করে। পুনরাবৃত্ত ব্যাকটেস্টিংয়ের মাধ্যমে সঠিক মানগুলি খুঁজে পাওয়া দরকার।

  4. স্বয়ংক্রিয় ট্রেডিংয়ের উপর উচ্চ নির্ভরতা। স্বয়ংক্রিয় ট্রেডিংয়ে ব্যর্থতার দিকে পরিচালিত ব্যতিক্রমগুলি এড়াতে সার্ভারের স্থিতিশীলতা গুরুত্বপূর্ণ।

উপরের ঝুঁকিগুলি হ্রাস করার জন্য, পরামিতিগুলি অপ্টিমাইজ করা যেতে পারে, অবস্থানের আকার যথাযথভাবে সীমাবদ্ধ করা যেতে পারে এবং ঝুঁকি ব্যবস্থাপনা মডিউল যুক্ত করা যেতে পারে।

অপ্টিমাইজেশান নির্দেশাবলী

কৌশলগুলি নিম্নলিখিত দিকগুলিতে উন্নত করা যেতে পারেঃ

  1. প্রবণতা বিপরীত সংকেত ধরা এড়াতে প্রবেশ সংকেত জন্য ফিল্টার যোগ করুন। উদাহরণস্বরূপ, প্রবণতা দিক নির্ধারণ করতে প্রবণতা সূচক ব্যবহার করুন।

  2. বিভিন্ন ট্রেডিং যন্ত্রের সাথে আরও ভালভাবে মানিয়ে নিতে চ্যানেলের সময়কাল এবং অবস্থানের আকারের মতো পরামিতিগুলি অনুকূল করুন।

  3. অতিরিক্ত ঘটনার ক্ষেত্রে অত্যধিক ক্ষতি রোধ করার জন্য সর্বাধিক ড্রাউন লিমিট এবং দৈনিক ক্ষতির সীমাবদ্ধতার মতো ঝুঁকি ব্যবস্থাপনা মডিউল যুক্ত করুন।

  4. স্টপ লস কৌশল উন্নত করুন। উদাহরণস্বরূপ, বাজারের প্রবণতার সাথে স্টপগুলি আরও অভিযোজিত করার জন্য ট্রেলিং স্টপ লস গ্রহণ করুন।

সিদ্ধান্ত

সংক্ষেপে, ট্যাং অ্যানকি টার্টল ট্রেডিং কৌশলটি একটি সহজ প্রবণতা অনুসরণকারী সিস্টেম। এর সুবিধাগুলি এর সহজ বোধগম্যতা এবং অটোমেশনে রয়েছে। তবে এটি কিছু ঝুঁকিও বহন করে এবং এটিকে আরও ব্যবহারিক করার জন্য পরামিতি এবং ঝুঁকি পরিচালনার উপর আরও অপ্টিমাইজেশান প্রয়োজন। প্যারামিটার টিউনিং, ফিল্টার যুক্ত করা এবং ঝুঁকি নিয়ন্ত্রণ মডিউলগুলির মতো ব্যবস্থাগুলির সাহায্যে কৌশলটি লাইভ ট্রেডিংয়ে আরও ভাল ফলাফল অর্জন করতে পারে।


/*backtest
start: 2024-01-26 00:00:00
end: 2024-02-15 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2020

//@version=4
strategy("Noro's SimpleTurtle Strategy", shorttitle = "SimpleTurtle 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, defval = true, title = "Long")
needshort = input(true, defval = true, 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, %")
fast      = input(20, minval=1)
slow      = input(50, minval=1)
showof    = input(true, defval = true, title = "Show offset")
showll    = input(true, defval = true, title = "Show lines")
showdd    = input(false, defval = true, title = "Show label (drawdown)")
showbg    = input(true, defval = true, title = "Show background")
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")

//Donchian price channel fast
hf = highest(high, fast)
lf = lowest(low, fast)
center = (hf + lf) / 2

//Donchian price chennal slow
hs = highest(high, slow)
ls = lowest(low, slow)

//Lines
colorpc = showll ? color.blue : na
colorsl = showll ? color.red : na
offset = showof ? 1 : 0
plot(hs, offset = offset, color = colorpc)
plot(ls, offset = offset, color = colorpc)
plot(center, offset = offset, color = colorsl)

//Background
size = strategy.position_size
colorbg = showbg == false ? na : size > 0 ? color.lime : size < 0 ? color.red : na
bgcolor(colorbg, transp = 70)

//Orders
truetime = true
lotlong = 0.0
lotshort = 0.0
lotlong := size != size[1] ? strategy.equity / close * sizelong / 100 : lotlong[1]
lotshort := size != size[1] ? strategy.equity / close * sizeshort / 100 : lotshort[1]

//Orders
strategy.entry("Long", strategy.long, lotlong, stop = hs, when = needlong and strategy.position_size == 0 and truetime)
strategy.entry("Short", strategy.short, lotshort, stop = ls, when = needshort and strategy.position_size == 0 and truetime)
strategy.exit("Long", stop = center, when = needlong and strategy.position_size > 0)
strategy.exit("Short", stop = center, when = needshort and strategy.position_size < 0)
if true
    strategy.close_all()
    strategy.cancel("fast L")
    strategy.cancel("fast S")
    strategy.cancel("slow L")
    strategy.cancel("slow S")
    
if showdd

    //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)
    la := label.new(x = osx, y = osy, text = labeltext, xloc = xloc.bar_time, yloc = yloc.price, color = color.black, style = label.style_labelup, textcolor = tc)

আরো