এই কৌশলটি মূল্য চ্যানেল সূচকের উপর ভিত্তি করে। একটি গতি প্যারামিটার সেট করে, এটি মূল্য চ্যানেলের মধ্যম রেখা গঠনের জন্য বিভিন্ন চক্রের সর্বোচ্চ এবং সর্বনিম্ন দামের গড় মান গণনা করে এবং এর উপর ভিত্তি করে দীর্ঘ এবং সংক্ষিপ্ত লাইন সেট করে। যখন দাম দীর্ঘ রেখাটি ভেঙে যায়, তখন এটি দীর্ঘ যায়; যখন দাম সংক্ষিপ্ত রেখাটি ভেঙে যায়, তখন এটি সংক্ষিপ্ত যায়। বন্ধের শর্তটি হ'ল দামটি চ্যানেলের মধ্যরেখায় ফিরে আসে।
এই কৌশলটি চ্যানেলের মধ্যরেখা গঠনের জন্য বিভিন্ন চক্রের সর্বোচ্চ এবং সর্বনিম্ন মূল্যের গড় মান গণনা করতে মূল্য চ্যানেল সূচক ব্যবহার করে। মধ্যরেখার ভিত্তিতে, দীর্ঘ এবং সংক্ষিপ্ত লাইনগুলি শিফট পরামিতির মাধ্যমে সেট করা হয়। বিশেষত, দীর্ঘ লাইন গণনার সূত্রটি হলঃ মধ্যরেখা + (মধ্যরেখা × দীর্ঘ লাইন পরামিতি%); সংক্ষিপ্ত লাইন গণনার সূত্রটি হলঃ মধ্যরেখা + (মধ্যরেখা × সংক্ষিপ্ত লাইন পরামিতি%) ।
যখন দাম লং লাইনের চেয়ে কম হয়, তখন লিমিট অর্ডার দিয়ে লং পজিশন খুলুন; যখন দাম শর্ট লাইনের চেয়ে বেশি হয়, তখন লিমিট অর্ডার দিয়ে শর্ট পজিশন খুলুন। লং এবং শর্ট পজিশনের জন্য স্টপ লস পদ্ধতি হল চ্যানেলের মিডলাইনে দামের রিগ্রেশন।
এই কৌশলটির নিম্নলিখিত সুবিধা রয়েছে:
এই কৌশলের কিছু ঝুঁকিও রয়েছে:
উপরের ঝুঁকিগুলি প্যারামিটারগুলিকে অনুকূল করে, স্টপ লস অর্ডারগুলি সেট করে বা বিচার করার জন্য অন্যান্য সূচকগুলিকে একত্রিত করে হ্রাস করা যেতে পারে।
কৌশলটি নিম্নলিখিত দিকগুলিতে অপ্টিমাইজ করা যেতে পারেঃ
মূল্য চ্যানেল সূচক উপর ভিত্তি করে এই কৌশল নকশা ধারণা স্পষ্ট। খোলা অবস্থানের জন্য ব্রেকআউট ব্যবহার কার্যকরভাবে ঝুঁকি নিয়ন্ত্রণ করতে পারেন। কিন্তু বড় পরামিতি অপ্টিমাইজেশান স্পেস এবং স্টপ লস প্রক্রিয়া যা উন্নত করা প্রয়োজন আছে। সামগ্রিকভাবে, কৌশল একটি নির্দিষ্ট ব্যবহারিক মান আছে এবং আরও পরীক্ষা এবং অপ্টিমাইজেশান মূল্য।
/*backtest start: 2022-11-29 00:00:00 end: 2023-12-05 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=3 strategy(title = "Noro's PCMA Strategy v1.0", shorttitle = "PCMA 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %") per = input(3, title = "Length") shortlevel = input(10.0, title = "Short line (red)") longlevel = input(-5.0, title = "Long line (lime)") 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") //Price Channel h = highest(high, per) l = lowest(low, per) c = (h + l) / 2 ll = c + ((c / 100) * longlevel) sl = c + ((c / 100) * shortlevel) //Lines shortcolor = needshort ? red : na longcolor = needlong ? lime : na plot(sl, linewidth = 2, color = shortcolor, title = "Short line") plot(c, linewidth = 2, color = blue, title = "SMA line") plot(ll, linewidth = 2, color = longcolor, title = "Long line") //Trading size = strategy.position_size lot = 0.0 lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1] if (not na(close[per])) and size == 0 and needlong strategy.entry("L", strategy.long, lot, limit = ll, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if (not na(close[per])) and size == 0 and needshort strategy.entry("S", strategy.short, lot, limit = sl, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if (not na(close[per])) and size > 0 strategy.entry("Close", strategy.short, 0, limit = c, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if (not na(close[per])) and size < 0 strategy.entry("Close", strategy.long, 0, limit = c, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if time > timestamp(toyear, tomonth, today, 23, 59) strategy.close_all()