La stratégie de scalping des canaux de prix de Noro
La stratégie calcule d'abord le canal de prix le plus élevé (lasthigh) et le canal de prix le plus bas (lastlow) du prix, puis calcule la ligne du milieu du canal de prix (centre). Ensuite, elle calcule la distance (dist) entre le prix et la ligne du milieu ainsi que la moyenne mobile simple de la distance (distsma).
Lorsque le prix franchit la bande de volatilité de 1 fois la distance de la ligne médiane, il est jugé haussier. Lorsque le prix franchit la bande de volatilité en dessous de la ligne médiane, il est jugé baissier. La stratégie ouvre des positions en sens inverse lorsque des signes d'épuisement se produisent dans les tendances. Par exemple, dans une tendance haussière, s'il y a deux lignes yang, des positions courtes seront ouvertes à la fermeture de la deuxième ligne yang; dans une tendance baissière, s'il y a deux lignes yin, des positions longues seront ouvertes à la fermeture de la deuxième ligne yin.
En général, la stratégie de scalping des canaux de prix de Noro
/*backtest start: 2023-11-10 00:00:00 end: 2023-12-10 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Noro's Bands Scalper Strategy v1.0", shorttitle = "Scalper str 1.0", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0) //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") needbb = input(true, defval = true, title = "Show Bands") needbg = input(true, defval = true, title = "Show Background") src = close //PriceChannel lasthigh = highest(src, len) lastlow = lowest(src, len) center = (lasthigh + lastlow) / 2 //Distance 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(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") //Background col = needbg == false ? na : trend == 1 ? lime : red bgcolor(col, transp = 80) //Signals bar = close > open ? 1 : close < open ? -1 : 0 up7 = trend == 1 and bar == -1 and bar[1] == -1 ? 1 : 0 dn7 = trend == 1 and bar == 1 and bar[1] == 1 and close > strategy.position_avg_price ? 1 : 0 up8 = trend == -1 and bar == -1 and bar[1] == -1 and close < strategy.position_avg_price ? 1 : 0 dn8 = trend == -1 and bar == 1 and bar[1] == 1 ? 1 : 0 if up7 == 1 or up8 == 1 strategy.entry("Long", strategy.long, needlong == false ? 0 : trend == -1 ? 0 : na) if dn7 == 1 or dn8 == 1 strategy.entry("Short", strategy.short, needshort == false ? 0 : trend == 1 ? 0 : na)