
Esta estrategia se basa en el principio de seguimiento de la tendencia de los canales dinámicos y de la línea de equilibrio. Calcula la tendencia dinámica de los precios, determina la dirección de la tendencia de los precios a través de la subida y bajada de los canales, combina la dispersión de los precios de las ondas de la línea de equilibrio y genera una señal de negociación.
La estrategia se basa principalmente en los siguientes principios:
Calcula el canal de precios dinámicos. La línea media del canal se calcula a través de los precios más altos y más bajos. La línea media del canal es la línea media + la línea media de la dispersión de los precios, y la línea media de la dispersión de los precios es la línea media.
Determinar la dirección de la tendencia. Cuando el precio sube en la vía, se define como un alza; cuando el precio baja en la vía, se define como una baja.
El ruido producido por las fluctuaciones aleatorias de los precios de las ondas de filtro.
Generar señales de negociación. Cuando se está en alza, se produce una señal de compra cuando el precio de cierre del ciclo está por debajo del precio de apertura. Cuando se está en baja, se produce una señal de venta cuando el precio de cierre del ciclo está por encima del precio de apertura.
La estrategia tiene las siguientes ventajas:
La estrategia también tiene los siguientes riesgos:
Resolución de las mismas:
La estrategia puede ser optimizada en los siguientes aspectos:
La idea de que esta estrategia integre canales dinámicos y juicios de tendencia en línea recta, se desempeña bien en la dirección de captura de tendencias en líneas medias y cortas. Sin embargo, también existe cierta limitación y se necesita más prueba y optimización para adaptarse a más situaciones de mercado.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Noro's Bands Strategy v1.0", shorttitle = "NoroBands 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")
color = input(true, "Color")
needbb = input(false, defval = false, title = "Show Bands")
needbg = input(false, defval = false, title = "Show Background")
src = close
//PriceChannel 1
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
//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 = 90)
//up = and trend == 1 ? 1 : 0
//dn = and trend == -1 ? 1 : 0
up = close < hd and trend == 1 and (close < open or color == false) ? 1 : 0
dn = close > ld and trend == -1 and (close > open or color == false) ? 1 : 0
longCondition = up == 1
if (longCondition)
strategy.entry("Long", strategy.long, needlong == false ? 0 : na)
shortCondition = dn == 1
if (shortCondition)
strategy.entry("Short", strategy.short, needshort == false ? 0 : na)