이 전략은 노로
이 전략은 동력과 평균 반전 지표를 통해 효과적인 수익을 달성하기 위해 전형적인 양적 지표를 결합합니다. 또한 합리적인 입구 지점을 찾기 위해 평균 진정한 범위 이론을 사용합니다. 이론과 기술을 결합하는 좋은 예입니다. 매개 변수 최적화 및 위험 통제 개선으로 효율적이고 안정적인 양적 전략이 될 것입니다.
/*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)