Estrategia de seguimiento de tendencia de media móvil de canal dinámico


Fecha de creación: 2024-02-22 15:51:48 Última modificación: 2024-02-22 15:51:48
Copiar: 0 Número de Visitas: 577
1
Seguir
1617
Seguidores

Estrategia de seguimiento de tendencia de media móvil de canal dinámico

Descripción general

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.

El principio

La estrategia se basa principalmente en los siguientes principios:

  1. 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.

  2. 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.

  3. El ruido producido por las fluctuaciones aleatorias de los precios de las ondas de filtro.

  4. 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.

Las ventajas

La estrategia tiene las siguientes ventajas:

  1. Los canales dinámicos capturan las tendencias de precios en tiempo real.
  2. La filtración uniforme reduce las señales falsas.
  3. La combinación de la dirección de la tendencia y la dirección de la entidad de la línea K genera una señal de negociación para evitar la estafa.

El riesgo

La estrategia también tiene los siguientes riesgos:

  1. La selección incorrecta de parámetros puede conducir a una optimización excesiva.
  2. La composición de la placa de vibración puede generar señales erróneas.
  3. El precio de la gasolina en el país es muy bajo, y no se puede predecir una gran fluctuación.

Resolución de las mismas:

  1. La rigurosa selección y prueba de Params;
  2. Se han añadido condiciones de filtración para identificar y ordenar el disco de vibraciones.
  3. Configuración de paradas de pérdidas y control de riesgos.

Dirección de optimización

La estrategia puede ser optimizada en los siguientes aspectos:

  1. Prueba de la estabilidad de los diferentes parámetros de ciclo;
  2. Aumentar la capacidad de juicio de los indicadores de VOLUME o oscilación;
  3. La combinación de bandas de onda, canales, etc. para juzgar el ingreso y la salida.

Resumir

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.

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