Estrategia de NoroBands posicional de impulso


Fecha de creación: 2024-01-18 10:58:48 Última modificación: 2024-01-18 10:58:48
Copiar: 1 Número de Visitas: 561
1
Seguir
1617
Seguidores

Estrategia de NoroBands posicional de impulso

Descripción general

La estrategia es una estrategia de ruptura dinámica basada en la teoría de bandas de Noro combinada con la técnica de la cuantificación. Se forma una señal de compra y venta mediante el cálculo de varios indicadores, como la línea media, el RSI, la banda y el color del toro, y se realiza una ruptura de banda.

Principio de estrategia

  1. Se calcula la subida y bajada de la banda a través de la amplitud real promedio. La subida y bajada de la banda son señales de alza y la bajada de la banda son señales de baja.
  2. El indicador RSI juzga las zonas de sobrecompra y sobreventa, donde el RSI está por debajo de los 30 puntos positivos y por encima de los 70 puntos negativos.
  3. La dirección de la dinámica de los precios se determina a través de la ruptura entre los precios más altos y más bajos.
  4. El color del toro y el oso es el que determina si el mercado es alcista o no. El verde es el mercado alcista, con alza; el rojo es el mercado alcista, con baja.
  5. La combinación de equilánea y desviación de juicio emite una señal de negociación.

Análisis de las ventajas

  1. Combinación de varios indicadores para una mayor precisión.
  2. La combinación de la teoría de bandas y la técnica de la cuantificación hace que la estrategia sea más eficaz.
  3. La ruptura de la dinámica combinada con el comercio inverso aumenta el margen de ganancias.
  4. Escalable y adaptable a las necesidades del mercado.

Análisis de riesgos

  1. La configuración de los parámetros necesita ser optimizada y probada constantemente.
  2. La respuesta a la interrupción de la red en tiempo real puede resultar en pérdidas.
  3. Las transacciones son más frecuentes y son más susceptibles a las comisiones y puntos de deslizamiento.
  4. Los parámetros de la banda deben ajustarse a su debido tiempo para adaptarse a los diferentes períodos.

Dirección de optimización

  1. Verificación de varios períodos de tiempo para encontrar la combinación óptima de parámetros.
  2. Aumentar las estrategias de stop loss y reducir las pérdidas individuales.
  3. La gestión de las posiciones aumenta la rentabilidad.
  4. Optimización automática de parámetros en combinación con el aprendizaje profundo.

Resumir

Esta estrategia integra la aplicación de varios indicadores técnicos cuantitativos típicos para lograr una rentabilidad eficiente a través de la combinación de indicadores de movimiento y indicadores de inversión. Al mismo tiempo, se utiliza la teoría de la amplitud de onda real promedio para encontrar un punto de entrada razonable. Se puede considerar un ejemplo de combinación de indicadores técnicos y teoría.

Código Fuente de la Estrategia
/*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)