এটি একটি প্রবণতা অনুসরণকারী কৌশল যা ডনচিয়ান চ্যানেল সূচকের উপর ভিত্তি করে, লাভের লক করার জন্য এটিআর সূচকের উপর ভিত্তি করে গতিশীল স্টপ লসের সাথে মিলিত। এটি প্রবণতা অনুসরণকারী কৌশল বিভাগের অন্তর্গত।
এই কৌশলটি একটি 20 পেরিওড ডনচিয়ান চ্যানেল ব্যবহার করে, যেখানে চ্যানেল মিডলাইন সর্বোচ্চ উচ্চ এবং সর্বনিম্ন নিম্নের গড়। যখন দাম চ্যানেল মিডলাইনের উপরে অতিক্রম করে এবং যখন দাম মিডলাইনের নীচে অতিক্রম করে তখন এটি দীর্ঘ হয়। প্রস্থান নিয়মটি যখন দামটি গতিশীল স্টপ লস লাইনে স্পর্শ করে, যা লং পজিশনের জন্য ATR মানের এক তৃতীয়াংশ বিয়োগ করে সাম্প্রতিক 3 বারগুলির সর্বনিম্ন হিসাবে গণনা করা হয় এবং সাম্প্রতিক 3 বারগুলির সর্বাধিক উচ্চতর সংক্ষিপ্ত পজিশনের জন্য ATR মানের এক তৃতীয়াংশ।
এই কৌশলটির প্রধান সুবিধাগুলো হল:
এই কৌশলটির প্রধান ঝুঁকিগুলির মধ্যে রয়েছেঃ
এই কৌশলটির জন্য কিছু অপ্টিমাইজেশান দিকঃ
সংক্ষেপে, এটি একটি সহজ এবং ব্যবহারিক প্রবণতা অনুসরণকারী কৌশল। এটি ডনচিয়ান চ্যানেলের মাধ্যমে প্রবণতার দিক চিহ্নিত করে এবং গতিশীল ট্রেলিং স্টপ লস সহ মুনাফা লক করে, যা কার্যকরভাবে প্রবণতা অনুসরণ করতে পারে। কৌশলটি ব্যবহারের জন্য বেশ ব্যবহারিক, তবে আরও জটিল বাজারের পরিবেশে আরও ভাল পারফরম্যান্সের জন্য বিভিন্ন উপায়ে আরও অনুকূলিত করা যেতে পারে।
/*backtest start: 2023-11-29 00:00:00 end: 2023-12-06 00:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title = "dc", overlay = true) atrLength = input(title="ATR Length:", defval=20, minval=1) testStartYear = input(2017, "Backtest Start Year") testStartMonth = input(1, "Backtest Start Month") testStartDay = input(1, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testEndYear = input(2018, "Backtest Start Year") testEndMonth = input(12) testEndDay = input(31, "Backtest Start Day") testPeriodEnd = timestamp(testEndYear,testEndMonth,testEndDay,0,0) testPeriod() => true //time >= testPeriodStart ? true : false dcPeriod = input(20, "Period") dcUpper = highest(close, dcPeriod)[1] dcLower = lowest(close, dcPeriod)[1] dcAverage = (dcUpper + dcLower) / 2 atrValue=atr(atrLength) useTakeProfit = na useStopLoss = na useTrailStop = na useTrailOffset = na //@version=1 Buy_stop = lowest(low[1],3) - atr(20)[1] / 3 plot(Buy_stop, color=red, title="buy_stoploss") Sell_stop = highest(high[1],3) + atr(20)[1] / 3 plot(Sell_stop, color=green, title="sell_stoploss") plot(dcLower, style=line, linewidth=3, color=red, offset=1) plot(dcUpper, style=line, linewidth=3, color=aqua, offset=1) plot(dcAverage, color=black, style=line, linewidth=3, title="Mid-Line Average") strategy.entry("simpleBuy", strategy.long, when=(close > dcAverage) and cross(close,dcAverage)) strategy.close("simpleBuy",when= ( close< Buy_stop)) strategy.entry("simpleSell", strategy.short,when=(close < dcAverage) and cross(close,dcAverage) ) strategy.close("simpleSell",when=( close > Sell_stop)) //strategy.exit("Exit simpleBuy", from_entry = "simpleBuy", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset) //strategy.exit("Exit simpleSell", from_entry = "simpleSell", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)