ব্রেকআউট স্ট্র্যাটেজি ভিত্তিক টর্টল ট্রেডিং

লেখক:চাওঝাং, তারিখ: ২০২৩-১০-১৭ ১৭ঃ২২ঃ৩৪
ট্যাগঃ

img

সারসংক্ষেপ

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

নীতিমালা

কৌশলটি মূলত দুটি সূচকের উপর ভিত্তি করেঃ ডোনচিয়ান চ্যানেল এবং এটিআর।

ডনচিয়ান চ্যানেলটি সর্বোচ্চ উচ্চ এবং সর্বনিম্ন নিম্ন দ্বারা নির্মিত হয়। ডিফল্ট চ্যানেলের দৈর্ঘ্য 20 দিন, 20 দিনের সর্বোচ্চ উচ্চ এবং সর্বনিম্ন নিম্নের সাথে প্লট করা হয়। যখন দাম উপরের ব্যান্ডের উপরে ভেঙে যায় তখন ক্রয় সংকেত উত্পন্ন হয় এবং দাম নিম্ন ব্যান্ডের নীচে ভেঙে যায় তখন বিক্রয় সংকেত উত্পন্ন হয়।

এটিআর বাজারের অস্থিরতা পরিমাপ করে এবং স্টপ লস সেটিংয়ের জন্য ব্যবহৃত হয়। ডিফল্ট এটিআর সময়কাল 20 দিন। কৌশলটি স্টপ লস স্তর হিসাবে 2 এন এটিআর ব্যবহার করে।

নির্দিষ্ট ট্রেডিং লজিক হলঃ

  1. যখন দাম উপরের ব্যান্ডের উপরে ভেঙে যায় তখন লম্বা হয়ে যায়।

  2. স্টপ লস সেট করুন কম দাম এন্ট্রি বিয়োগ 2N ATR.

  3. যখন দাম নিম্ন স্তরের নীচে চলে যায় তখন লং পজিশন বন্ধ করুন।

  4. যখন দাম নীচের ব্যান্ডের নিচে পড়ে তখন শর্ট করুন।

  5. স্টপ লস সেট করুন প্রবেশের সময় উচ্চ মূল্যে + 2N ATR।

  6. যখন দাম উপরের ব্যান্ডের উপরে ভেঙে যায় তখন শর্ট পজিশন বন্ধ করুন।

সংক্ষেপে, কৌশলটি ডনচিয়ান চ্যানেলের সাথে প্রবণতা দিক এবং প্রবেশ সংকেত চিহ্নিত করে এবং প্রবণতা অনুসরণ করার জন্য এটিআর ভিত্তিক স্টপ লস দিয়ে ঝুঁকি নিয়ন্ত্রণ করে।

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

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

  1. এটিআর স্টপ লস কার্যকরভাবে একক ট্রেড ক্ষতি সীমিত করতে পারে।

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

  3. উচ্চ অস্থিরতার জন্য প্রযোজ্য। এটিআর স্টপ লস সেটিংয়ের সময় বাজারের অস্থিরতা বিবেচনা করে।

  4. সহজ এবং সুস্পষ্ট যুক্তি, সহজেই বোঝা যায় এবং বাস্তবায়ন করা যায়।

  5. পাইথন ভাষার সাথে অপ্টিমাইজ করার নমনীয়তা।

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

এই কৌশলটির কিছু ঝুঁকি উল্লেখ করা উচিতঃ

  1. বিভিন্ন যন্ত্র এবং সময়সীমার জন্য চ্যানেলের পরামিতিগুলিকে অপ্টিমাইজ করার প্রয়োজন।

  2. ধারাবাহিক স্টপ লস ঝুঁকিঃ অস্থির বাজার পরিস্থিতিতে একাধিক স্টপ লস ট্রিগার হতে পারে।

  3. ATR পরামিতির ব্যাকটেস্টিং প্রয়োজন। ATR সরাসরি স্টপ লসকে প্রভাবিত করে এবং অস্থিরতার উপর ভিত্তি করে সামঞ্জস্য করা উচিত।

  4. সম্ভাব্যভাবে খুব বেশি ট্রেডিং ফ্রিকোয়েন্সি। অনেক whipsaw সংকেত পরিসীমা সীমাবদ্ধ বাজারের অধীনে ঘটতে পারে।

  5. সীমিত লাভের সম্ভাবনা। কৌশলটি স্টপ লস উপর দৃষ্টি নিবদ্ধ করে এবং প্রবণতা লাভগুলি সম্পূর্ণরূপে ক্যাপচার করতে পারে না।

  6. অস্থির গতির সময় পর্যাপ্ত স্টপ লস নেই। দামের ফাঁক সরাসরি স্টপ লসকে ট্রিগার করতে পারে।

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

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

  1. বিভিন্ন যন্ত্রের জন্য চ্যানেল প্যারামিটার অপ্টিমাইজ করুন।

  2. ব্যাপ্তি-সীমাবদ্ধ বাজারের অধীনে খুব বেশি সংকেত এড়ানোর জন্য ফিল্টার যোগ করুন। ব্রেকআউট পরিমাণ বা ভলিউম ফিল্টার বিবেচনা করুন।

  3. এটিআর সময়ের প্যারামিটার এবং স্টপ লস্টে পরীক্ষার প্রভাব অপ্টিমাইজ করা।

  4. ট্রেন্ড লাভকে সর্বাধিক করতে পজিশনের আকার বাড়ানোর জন্য পিরামিড এন্ট্রি যোগ করুন।

  5. ভুল সংকেত এড়াতে MACD, KD এর মতো অন্যান্য সূচক অন্তর্ভুক্ত করুন।

  6. স্লিপ এবং কমিশন খরচ অনুযায়ী স্টপ লস সামঞ্জস্য করুন।

  7. বিভিন্ন যন্ত্রের মধ্যে অভিযোজনযোগ্যতা পরীক্ষা করুন এবং পরামিতিগুলি অপ্টিমাইজ করুন।

সংক্ষিপ্তসার

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


/*backtest
start: 2022-10-10 00:00:00
end: 2023-10-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//Based on Turtle traders strategy: buy/sell on Donchian breakouts and stop loss on ATR 2x
// initial version considerations :
//// 1. Does not consider filter for avoiding new entries after winning trades (filtering rule from Turtle Strategy on 20 day breakout strategy) 
//// 2. Does not consider pyramiding (aditional entries after 1N price movements)

strategy("Turtle trading strategy (Donchian/ATR)", overlay=true)

enter_period = input(20, minval=1, title="Enter Channel")
exit_period = input(10, minval=1, title="Exit Channel")
offset_bar = input(0,minval=0, title ="Offset Bars")
direction = input("Long",options=["Long","Short"],title="Direction")
max_length = max(enter_period,exit_period)
atrmult = input(2,title="ATR multiplier (Stop Loss)")
atrperiod = input(20,title="ATR Period")

closed_pos = false
dir_long = direction == "Long"? true : false
atr = atr(atrperiod)
upper = dir_long ? highest(enter_period): highest(exit_period)
lower = dir_long ? lowest(exit_period): lowest(enter_period)
atrupper = close + atr
atrlower = close - atr
plotted_atr = dir_long ? atrlower : atrupper

//basis = avg(upper, lower)

l = plot(lower, style=line, linewidth=3, color=lime, offset=1)
u = plot(upper, style=line, linewidth=3, color=lime, offset=1)
a = plot(plotted_atr, style=line,linewidth=2,color=red,offset=1)
//plot(basis, color=yellow, style=line, linewidth=1, title="Mid-Line Average")
//break upper Donchian (with 1 candle offset) (buy signal)
break_up = (close >= upper[1])
//break lower Donchian (with 1 candle offset) (sell signal)
break_down = (close <= lower[1])
stop_loss = dir_long ? (close<=plotted_atr[1]) : (close>=plotted_atr[1])

if break_up and dir_long
    strategy.entry("buy", strategy.long, 1)
    closed_pos :=false
if (break_down or stop_loss) and dir_long
    strategy.close("buy")
    
if break_down and not dir_long
    strategy.entry("sell", strategy.short, 1)
    closed_pos :=false
if (break_up or stop_loss) and not dir_long
    strategy.close("sell")
    closed_pos :=true
    
losing_trade = strategy.equity[0]<strategy.equity[1]
//plotshape(losing_trade,text="Losing!")    
plotshape(stop_loss,style=dir_long?shape.labeldown:shape.labelup,text="Stop!")
//plot(strategy.equity)


    



আরো