ডনচিয়ান চ্যানেল ব্রেকআউট ট্রেডিং কৌশল একটি নির্দিষ্ট সময়ের মধ্যে সর্বোচ্চ এবং সর্বনিম্ন দামের চ্যানেল গণনা করে এবং চ্যানেল ব্রেকআউটগুলির উপর ভিত্তি করে দীর্ঘ এবং স্বল্প বাণিজ্য করে বর্তমান মূল্য প্রবণতা বিচার করে। এই কৌশলটি অত্যন্ত অস্থির স্টক এবং ক্রিপ্টোকারেন্সিগুলির জন্য উপযুক্ত।
এই কৌশলটি সর্বশেষ ইতিহাসের সময়কালে সর্বোচ্চ মূল্য পিসিম্যাক্স এবং সর্বনিম্ন মূল্য পিসিমিন গণনা করে একটি চ্যানেল তৈরি করে। চ্যানেলের উপরের এবং নীচের রেলের জন্য গণনার পদ্ধতিগুলি হ'লঃ
উপরের রেল yh = pcmax - (pcmax - pcmin) * (100 - শতাংশDev)/100
নিম্ন রেল yl = pcmin + (pcmax - pcmin) * শতাংশDev/100
যেখানে %Dev ডিফল্ট 13.
যখন দাম উপরের রেলটি ভেঙে যায় তখন একটি দীর্ঘ সংকেত উৎপন্ন হয়। যখন দাম নিম্ন রেলটি ভেঙে যায় তখন একটি সংক্ষিপ্ত সংকেত উৎপন্ন হয়।
ট্রেডিং সিগন্যাল তৈরির নির্দিষ্ট যুক্তি হলঃ
উপরের রেল ভাঙা কিনা তা নির্ধারণ করতে boundup = high > yh
bounddn = low < yl নিম্ন রেল ভাঙা কিনা তা নির্ধারণ করতে
upsign = sma(bounddn, 2) == 1 নিম্ন রেলের ধ্রুবক ব্রেকআউট নির্ধারণের জন্য bounddn এর sma ব্যবহার করে
dnsign = sma(boundup, 2) == 1 উপরের রেলের ধ্রুবক ব্রেকআউট নির্ধারণের জন্য boundup এর sma ব্যবহার করে
exitup = dnsign উপরের রেলের ব্রেকআউট আউট সংকেত উৎপন্ন করে
exitdn = নিম্ন রেলের আপসাইন ব্রেকআউট আউট সংকেত উৎপন্ন করে
যদি নিম্ন রেলের আপসাইন ব্রেকআউট দীর্ঘ সংকেত উৎপন্ন করে
যদি উপরের রেলের ডিএনসাইন ব্রেকআউট শর্ট সিগন্যাল তৈরি করে
অপ্রয়োজনীয় ওভার নাইট পজিশন এড়াতে কৌশলটি ট্রেডিংয়ের শুরু ও শেষের সময় নির্ধারণ করে।
প্রবণতা নির্ধারণের জন্য ডনচিয়ান চ্যানেল ব্যবহার করে, ভাল ব্যাকটেস্ট ফলাফল
উভয় দীর্ঘ এবং সংক্ষিপ্ত সংকেত আছে, দ্বি-মুখী ট্রেডিং অনুমতি দেয়
সিগন্যাল ফিল্টার করতে এবং খারাপ ট্রেড এড়াতে এসএমএ ব্যবহার করে
ঝুঁকি নিয়ন্ত্রণের জন্য অপশনাল স্টপ লস
রাতারাতি ঝুঁকি এড়ানোর জন্য ট্রেডিংয়ের শুরু এবং শেষের সময় নির্ধারণ করুন
ইতিহাস এবং শতাংশDev পরামিতি সংবেদনশীল, বিভিন্ন পণ্যের জন্য অপ্টিমাইজেশান প্রয়োজন
পরিসীমা-সীমাবদ্ধ বাজারে মিথ্যা সংকেত সৃষ্টি করতে পারে
অর্ডার ম্যানেজমেন্ট বিবেচনা করে না, লাইভ ট্রেডিংয়ে লাভজনকতা প্রভাবিত হতে পারে
পজিশনের সাইজিং, ওভার-সাইজিং পজিশনের ঝুঁকি বিবেচনা করে না
অর্থ ব্যবস্থাপনা বিবেচনা করে না, যুক্তিসঙ্গত ট্রেডিং মূলধন প্রয়োজন
বিভিন্ন পণ্যের জন্য ইতিহাস এবং শতাংশDev পরামিতি অপ্টিমাইজ করুন
বিভিন্ন বাজারে মিথ্যা সংকেত এড়ানোর জন্য ফিল্টার যোগ করুন
একক অবস্থান আকার নিয়ন্ত্রণ করতে অবস্থান আকার মডিউল যোগ করুন
মোট পজিশনের আকার সীমাবদ্ধ করতে অর্থ ব্যবস্থাপনা মডিউল যোগ করুন
সর্বোত্তম অর্ডার কার্যকরকরণের জন্য অর্ডার ম্যানেজমেন্ট যুক্ত করুন
ডনচিয়ান চ্যানেল ব্রেকআউট কৌশলটি ট্রেন্ড এবং ট্রেডিং সিগন্যাল নির্ধারণের জন্য চ্যানেল ব্রেকআউট ব্যবহার করে, ভাল ব্যাকটেস্ট ফলাফল এবং দীর্ঘ এবং সংক্ষিপ্ত উভয় ট্রেড করার ক্ষমতা সহ। তবে প্যারামিটার অপ্টিমাইজেশন, ফিল্টার, অবস্থান আকার, অর্থ পরিচালনা, অর্ডার পরিচালনা ইত্যাদি সম্পর্কিত ঝুঁকি রয়েছে। স্থিতিশীল লাইভ ট্রেডিংয়ের আগে এই ক্ষেত্রগুলিতে যথাযথ উন্নতি প্রয়োজন। সামগ্রিকভাবে, এটি একটি traditionalতিহ্যবাহী প্রবণতা অনুসরণকারী কৌশল, এবং অপ্টিমাইজেশনের সাথে এটি একটি নির্ভরযোগ্য পরিমাণগত ট্রেডিং কৌশল হয়ে উঠতে পারে।
/*backtest start: 2023-10-31 00:00:00 end: 2023-11-07 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //////////////////////////////////////////////////////////// // Copyright by AlexInc v1.0 02/07/2018 @aav_1980 // PriceChannel strategy // If you find this script helpful, you can also help me by sending donation to // BTC 16d9vgFvCmXpLf8FiKY6zsy6pauaCyFnzS // LTC LQ5emyqNRjdRMqHPHEqREgryUJqmvYhffM //////////////////////////////////////////////////////////// //@version=3 strategy("AlexInc PriceChannel Str", overlay=false) history = input(20) percentDev = input(13) capital = input(100) needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") usestoploss = input(true, defval = true, title = "Stop Loss") stoplossmult = input(3.8, defval = 3.8, minval = 1, maxval = 10, title = "Stop loss multiplicator") fromyear = input(2018, defval = 2018, 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") bodymin = min( open, close) bodymax = max(open, close) pcmax = highest(bodymax, history) pcmin = lowest(bodymin, history) yh = ((pcmax - pcmin) / 100 * (100 - percentDev)) + pcmin yl = ((pcmax - pcmin) / 100 * percentDev) + pcmin plot(pcmax) plot(pcmin) plot(yh) plot(yl) //1 bounddn = low < yl ? 1 : 0 boundup = high > yh ? 1 : 0 upsign = sma(bounddn, 2) == 1 dnsign = sma(boundup, 2) == 1 //2 //upsign = crossover(bodymin, yl) //dnsign = crossunder(bodymax , yh) exitup = dnsign exitdn = upsign lot = strategy.equity / close * capital / 100 xATR = atr(history) nLoss = usestoploss ? stoplossmult * xATR : na stop_level_long = 0.0 stop_level_long := nz(stop_level_long[1]) stop_level_short = 0.0 stop_level_short := nz(stop_level_short[1]) pos = strategy.position_size if pos >0 and pos[1] <= 0 //crossover(pos, 0.5) stop_level_long = strategy.position_avg_price - nLoss if pos < 0 and pos[1] >= 0 //crossunder(pos, -0.5) stop_level_short = strategy.position_avg_price + nLoss if pos == 0 stop_level_long = bodymin - nLoss stop_level_short = bodymax + nLoss //plot(bodymax + nLoss, color=red) //plot(bodymin - nLoss, color=red) plot(stop_level_long, color=red) plot(stop_level_short, color=red) if upsign strategy.entry("Long", strategy.long, needlong == false ? 0 : lot) if dnsign strategy.entry("Short", strategy.short, needshort == false ? 0 : na) if true strategy.close_all() //if strategy.position_size != 0 // strategy.exit("Exit Long", from_entry = "Long", stop = stop_level_long) // strategy.exit("Exit Short", from_entry = "Short", stop = stop_level_short)