এই কৌশলটি নোরোর ব্যান্ড তত্ত্বকে পরিমাণগত কৌশলগুলির সাথে একত্রিত করে একটি গতির ব্রেকআউট কৌশল গঠন করে। এটি ব্যান্ড ব্রেকআউট ট্রেডিং বাস্তবায়নের জন্য চলমান গড়, আরএসআই, ব্যান্ড, রঙিন বার এবং অন্যান্য সূচক গণনা করে ট্রেডিং সংকেত তৈরি করে।
এই কৌশলটি গতি এবং গড় বিপরীতমুখী সূচকগুলির মাধ্যমে কার্যকর মুনাফা অর্জনের জন্য সাধারণ পরিমাণগত সূচকগুলিকে একত্রিত করে। এটি যুক্তিসঙ্গত এন্ট্রি পয়েন্টগুলি সনাক্ত করতে গড় সত্য পরিসীমা তত্ত্বও ব্যবহার করে। তত্ত্ব এবং কৌশল একত্রিত করার একটি ভাল উদাহরণ। পরামিতি অপ্টিমাইজেশন এবং ঝুঁকি নিয়ন্ত্রণের উন্নতির সাথে এটি একটি দক্ষ এবং স্থিতিশীল পরিমাণগত কৌশল হয়ে উঠবে।
/*backtest start: 2023-01-11 00:00:00 end: 2024-01-17 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Noro's Bands Strategy v1.5", shorttitle = "NoroBands str 1.5", overlay=true) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period") color = input(true, defval = true, title = "Use ColorBar") usecb = input(true, defval = true, title = "Use CryptoBottom") usersi = input(true, defval = true, title = "Use RSI") usemm = input(true, defval = true, title = "Use min/max") usepyr = input(true, defval = true, title = "Use pyramiding") needbb = input(false, defval = false, title = "Show Bands") needbg = input(false, defval = false, title = "Show Background") needlo = input(false, defval = false, title = "Show Locomotive") needpy = input(false, defval = false, title = "Show Avg.price line") src = close //Fast RSI fastup = rma(max(change(src), 0), 2) fastdown = rma(-min(change(src), 0), 2) fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown)) //CryptoBottom mac = sma(close, 10) lencb = abs(close - mac) sma = sma(lencb, 100) max = max(open, close) min = min(open, close) //PriceChannel lasthigh = highest(src, len) lastlow = lowest(src, len) center = (lasthigh + lastlow) / 2 //dist dist = abs(src - center) distsma = sma(dist, len) hd = center + distsma ld = center - distsma hd2 = center + distsma * 2 ld2 = center - distsma * 2 //Trend trend = close < ld and high < hd ? -1 : close > hd and low > ld ? 1 : trend[1] //Lines colo = needbb == false ? na : black plot(hd2, color = colo, linewidth = 1, transp = 0, title = "High band 2") plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band") plot(center, color = colo, linewidth = 1, transp = 0, title = "center") plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band") plot(ld2, color = colo, linewidth = 1, transp = 0, title = "Low band 2") //Background col = needbg == false ? na : trend == 1 ? lime : red bgcolor(col, transp = 80) //Signals up = trend == 1 and ((close < open or color == false) or close < hd) and (min < min[1] or usemm == false) and (close < strategy.position_avg_price or usepyr == false or strategy.position_size <= 0) ? 1 : 0 dn = trend == -1 and ((close > open or color == false) or close > ld) and (max > max[1] or usemm == false) and (close > strategy.position_avg_price or usepyr == false or strategy.position_size >= 0) ? 1 : 0 up2 = close < open and lencb > sma * 3 and min < min[1] and fastrsi < 10 and (close < strategy.position_avg_price or usepyr == false or strategy.position_size <= 0) ? 1 : 0 //CryptoBottom //dn2 = close > open and len > sma * 3 and max > max[1] and fastrsi > 90 ? 1 : 0 //CryptoBottom up3 = fastrsi < 5 and usersi == true and (close < strategy.position_avg_price or usepyr == false or strategy.position_size <= 0) ? 1 : 0 //dn3 = fastrsi > 95 and usersi = true ? 1 : 0 //Avg Price colpy = needpy == false ? na : black plot(strategy.position_avg_price, color = colpy) up4 = close < strategy.position_avg_price and usepyr == true and strategy.position_size >= 0 ? 1 : 0 dn4 = close > strategy.position_avg_price and usepyr == true and strategy.position_size <= 0 ? 1 : 0 //Locomotive uploco = trend == 1 and close < open and min < min[1] and close < center ? 1 : 0 plotarrow(needlo == true and uploco == 1 ? 1 : 0, colorup = black, colordown = black, transp = 0) longCondition = up == 1 or (up2 == 1 and usecb == true) or (up3 == 1 and usersi == true) or up4 == 1 if (longCondition) strategy.entry("Long", strategy.long, needlong == false ? 0 : na) shortCondition = dn == 1 or dn4 == 1 if (shortCondition) strategy.entry("Short", strategy.short, needshort == false ? 0 : na)