ডনচিয়ান চ্যানেল ব্রেকআউট কৌশলটি একটি প্রবণতা অনুসরণকারী কৌশল। এটি একটি নির্দিষ্ট সময়ের মধ্যে সর্বোচ্চ এবং সর্বনিম্ন দাম গণনা করে একটি মূল্য চ্যানেল গঠন করে এবং চ্যানেলের সীমানা কেনা এবং বিক্রয় সংকেত হিসাবে ব্যবহার করে। দামটি উপরের রেলটি ভেঙে গেলে এটি সংক্ষিপ্ত হয় এবং দামটি নিম্ন রেলটি ভেঙে গেলে দীর্ঘ হয়। এই কৌশলটি অত্যন্ত অস্থির ক্রিপ্টোকারেন্সি ট্রেডিংয়ের জন্য উপযুক্ত।
এই কৌশলটি দামের প্রবণতা নির্ধারণ এবং প্রবেশ এবং প্রস্থান পয়েন্ট গণনা করতে ডনচিয়ান চ্যানেল সূচক ব্যবহার করে। ডনচিয়ান চ্যানেল একটি উপরের রেল, নিম্ন রেল এবং মাঝারি রেল নিয়ে গঠিত। উপরের রেলটি একটি নির্দিষ্ট সময়ের মধ্যে সর্বোচ্চ মূল্য, নিম্ন রেলটি সর্বনিম্ন মূল্য এবং মধ্যম রেলটি গড় মূল্য।
এন্ট্রি এবং প্রস্থান সময়ের দৈর্ঘ্য স্বাধীনভাবে কনফিগার করা যেতে পারে। যখন দাম নিম্ন রেলের মধ্য দিয়ে উপরে যায়, তখন এটি দীর্ঘ হয়। যখন দাম উপরের রেলের মধ্য দিয়ে নীচে যায়, তখন এটি সংক্ষিপ্ত হয়। প্রস্থান পয়েন্টটি যখন দামটি সংশ্লিষ্ট রেলকে আবার স্পর্শ করে। মাঝের রেলটি স্টপ লস লাইন হিসাবেও ব্যবহার করা যেতে পারে।
এছাড়াও, কৌশলটি একটি লাভের পয়েন্টও নির্ধারণ করে। লং পজিশনের জন্য লাভের মূল্য হল প্রবেশের মূল্য দ্বারা গুণিত (1 + লাভের শতাংশ নিন), এবং শর্ট পজিশনের জন্য বিপরীত। এই বৈশিষ্ট্যটি সক্ষম করা মুনাফা লক করে এবং ক্ষতির প্রসারিত হতে বাধা দেয়।
সংক্ষেপে, প্রবণতা বিচার করার সময়, এই কৌশলটি স্টপ সেট করতে এবং মুনাফা নেওয়ার জন্য পর্যাপ্ত জায়গা নিশ্চিত করে। এটি ক্রিপ্টোকারেন্সির মতো অত্যন্ত অস্থির সম্পদের জন্য এটি বিশেষভাবে উপযুক্ত করে তোলে।
এই কৌশলটির সুবিধাগুলির মধ্যে রয়েছেঃ
এই কৌশলের ঝুঁকিগুলির মধ্যে রয়েছেঃ
উপরের ঝুঁকিগুলি হ্রাস করার জন্যঃ
এই কৌশল নিম্নলিখিত মাত্রায় আরও অপ্টিমাইজ করা যেতে পারেঃ
উপসংহারে, ডনচিয়ান চ্যানেল ব্রেকআউট কৌশল ট্রেন্ড ট্রেডিংয়ের জন্য স্পষ্ট সংকেত এবং নিয়ন্ত্রণযোগ্য ঝুঁকি সরবরাহ করে। এটি বিশেষত বড় মুনাফা সম্ভাবনার সাথে ক্রিপ্টোকারেন্সিগুলির মতো অস্থির সম্পদের জন্য উপযুক্ত। আরও প্যারামিটারগুলি অনুকূল করার এবং অন্যান্য সূচকগুলি অন্তর্ভুক্ত করার সম্ভাবনা রয়েছে, যা ভবিষ্যতের উন্নতির পথ। অবিচ্ছিন্ন উদ্ভাবনের সাথে, এই কৌশলটি ক্রিপ্টোকারেন্সিগুলির জন্য একটি গুরুত্বপূর্ণ অ্যালগরিদমিক ট্রেডিং কৌশল হওয়ার সম্ভাবনা রয়েছে।
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © algotradingcc // Strategy testing and optimisation for free trading bot //@version=4 strategy("Donchian Channel Strategy [for free bot]", overlay=true ) //Long optopns buyPeriodEnter = input(10, "Channel Period for Long enter position") buyPeriodExit = input(10, "Channel Period for Long exit position") isMiddleBuy = input(true, "Is exit on Base Line? If 'no' - exit on bottom line") takeProfitBuy = input(2.5, "Take Profit (%) for Long position") isBuy = input(true, "Allow Long?") //Short Options sellPeriodEnter = input(20, "Channel Period for Short enter position") sellPeriodExit = input(20, "Channel Period for Short exit position") isMiddleSell = input(true, "Is exit on Base Line? If 'no' - exit on upper line") takeProfitSell = input(2.5, "Take Profit (%) for Short position") isSell = input(true, "Allow Short?") // Test Start startYear = input(2005, "Test Start Year") startMonth = input(1, "Test Start Month") startDay = input(1, "Test Start Day") startTest = timestamp(startYear,startMonth,startDay,0,0) //Test End endYear = input(2050, "Test End Year") endMonth = input(12, "Test End Month") endDay = input(30, "Test End Day") endTest = timestamp(endYear,endMonth,endDay,23,59) timeRange = time > startTest and time < endTest ? true : false // Long&Short Levels BuyEnter = highest(buyPeriodEnter) BuyExit = isMiddleBuy ? ((highest(buyPeriodExit) + lowest(buyPeriodExit)) / 2): lowest(buyPeriodExit) SellEnter = lowest(sellPeriodEnter) SellExit = isMiddleSell ? ((highest(sellPeriodExit) + lowest(sellPeriodExit)) / 2): highest(sellPeriodExit) // Plot Data plot(BuyEnter, style=plot.style_line, linewidth=2, color=color.blue, title="Buy Enter") plot(BuyExit, style=plot.style_line, linewidth=1, color=color.blue, title="Buy Exit", transp=50) plot(SellEnter, style=plot.style_line, linewidth=2, color=color.red, title="Sell Enter") plot(SellExit, style=plot.style_line, linewidth=1, color=color.red, title="Sell Exit", transp=50) // Calc Take Profits TakeProfitBuy = 0.0 TakeProfitSell = 0.0 if strategy.position_size > 0 TakeProfitBuy := strategy.position_avg_price*(1 + takeProfitBuy/100) if strategy.position_size < 0 TakeProfitSell := strategy.position_avg_price*(1 - takeProfitSell/100) // Long Position if isBuy and timeRange strategy.entry("Long", strategy.long, stop = BuyEnter, when = strategy.position_size == 0) strategy.exit("Long Exit", "Long", stop=BuyExit, limit = TakeProfitBuy, when = strategy.position_size > 0) // Short Position if isSell and timeRange strategy.entry("Short", strategy.short, stop = SellEnter, when = strategy.position_size == 0) strategy.exit("Short Exit", "Short", stop=SellExit, limit = TakeProfitSell, when = strategy.position_size < 0) // Close & Cancel when over End of the Test if time > endTest strategy.close_all() strategy.cancel_all()