এই কৌশলটি ZZ সূচকের উপর ভিত্তি করে একটি মূল্য চ্যানেলের উপর ভিত্তি করে ট্রেড করে এবং একটি চ্যানেলের উপরের সীমাটি অতিক্রম করে বা একটি চ্যানেলের নীচের সীমাটি অতিক্রম করে এমন একটি সংকেত ব্যবহার করে একটি ওভারহেড বা শূন্যপদ অবস্থান স্থাপন করে। এই কৌশলটি মূল্য চ্যানেলের বাইরে প্রবণতার বিস্ফোরণগুলি ধরার চেষ্টা করে।
বিশেষ করে, এই কৌশলটি ZZ সূচকের মাধ্যমে মূল্য চ্যানেলের উপরের এবং নীচের সীমা গণনা করে। যখন দাম নীচের থেকে উপরের সীমাটি ভেঙে দেয়, তখন অতিরিক্ত প্রবেশ করা হয়; যখন দাম নীচের থেকে নীচের সীমাটি ভেঙে দেয়, তখন খালি প্রবেশ করা হয়। অতিরিক্ত খালি হওয়ার পরে, স্টপ লস কার্ড ব্যবহার করা হয়, মূল্য চ্যানেলের উপরের এবং নীচের সীমাটি স্টপ লস হিসাবে। একই সাথে, একটি তারিখের সময়সীমা সেট করুন, যার মধ্যে লেনদেনের জন্য, রাতারাতি ঝুঁকি এড়ানোর জন্য প্রতিদিনের বাজারের বন্ধ হওয়ার আগে স্টোরটি সাফ করুন।
এই ঝুঁকি কমানোর জন্য চ্যানেলের ব্যাপ্তি প্রশস্ত করা, স্টপ লস কৌশলগুলি অপ্টিমাইজ করা এবং প্রবণতার শক্তি নির্ণয় করা যেতে পারে।
এই কৌশলটি প্রবণতা ব্রেকপয়েন্টের উপর ভিত্তি করে ট্রেডিং করে। এর সুবিধা হল যে ট্রেডিং সিগন্যালটি সহজ, স্টপ লস পরিষ্কার এবং পরিচালনা করা সহজ। এর অসুবিধা হ’ল প্রবণতার ঘন ঘন উড়ে যাওয়া এবং অপ্রতুলভাবে ব্যবহার করা। প্যারামিটার অপ্টিমাইজেশন, কৌশল সমন্বয় ইত্যাদির মাধ্যমে উপরের অসুবিধাগুলি কাটিয়ে উঠতে পারে। এই কৌশলটি ব্যবসায়ীদের মূল্য চ্যানেলের প্রয়োগের কৌশলগুলি আয়ত্ত করতে সহায়তা করে।
/*backtest
start: 2022-09-14 00:00:00
end: 2023-09-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2019
//@version=4
strategy(title = "Noro's ZZ-4 Strategy", shorttitle = "Noro's ZZ-4 Strategy", 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 = "Capital, %")
len = input(7, minval = 1, title = "Length")
showll = input(true, defval = true, title = "Show Levels")
showbg = input(false, defval = false, title = "Show Background")
showpc = input(false, defval = false, title = "Show Price Channel")
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(ohlc4, len)
l = lowest(ohlc4, len)
pccol = showpc ? color.blue : na
plot(h, color = pccol, transp = 0)
plot(l, color = pccol, transp = 0)
//Levels
ml = 0
ml := l > l[1] ? 1 : l < l[1] ? -1 : ml[1]
ll = 0.0
ll := ml == 1 and ml[1] == -1 ? l[1] : ll[1]
mh = 0
mh := h > h[1] ? 1 : h < h[1] ? -1 : mh[1]
hl = 0.0
hl := mh == -1 and mh[1] == 1 ? h[1] : hl[1]
//Lines
colorh = showll and hl == hl[1] ? color.lime : na
colorl = showll and ll == ll[1] ? color.red : na
plot(hl, color = colorh, linewidth = 2, transp = 0, title = "Long")
plot(ll, color = colorl, linewidth = 2, transp = 0, title = "Short")
//Background
size = strategy.position_size
trend = 0
trend := size > 0 ? 1 : size < 0 ? -1 : high >= hl ? 1 : low <= ll ? -1 : trend[1]
bgcol = showbg == false ? na : trend == 1 ? color.lime : trend == -1 ? color.red : na
bgcolor(bgcol, transp = 80)
//Trading
truetime = time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)
lot = 0.0
lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1]
if ll > 0 and hl > 0
strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, stop = hl, when=(truetime))
strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, stop = ll, when=(truetime))
if time > timestamp(toyear, tomonth, today, 23, 59)
strategy.close_all()
strategy.cancel("Long")
strategy.cancel("Short")