Tendencia basada en el canal de precios y la media móvil siguiendo la estrategia

El autor:¿ Qué pasa?, Fecha: 2024-02-06 09:46:23
Las etiquetas:

img

Resumen general

Esta estrategia identifica y sigue las tendencias mediante la construcción de un canal de precios para calcular la desviación del precio de la línea media y el uso de promedios móviles para filtrar las señales.

Estrategia lógica

  1. Construir el canal de precios
  • Calcular el máximo máximo y el mínimo mínimo durante los últimos períodos
  • La línea media es la media de la más alta alta y la más baja baja
  • La distancia es la desviación absoluta del precio de la línea media
  • Distancia suave para obtener bandas superiores e inferiores
  1. Determinar la dirección de la tendencia
  • Cuando el precio está por debajo de la banda inferior, definir como tendencia bajista
  • Cuando el precio está por encima de la banda superior, definir como tendencia alcista
  1. Generar señales comerciales
  • En tendencia alcista, largo cuando el precio está por debajo de la franja abierta o rompe por debajo de la banda superior
  • En tendencia bajista, corto cuando el precio está por encima de la apertura o rompe por encima de la banda inferior

Análisis de ventajas

  1. Captura las tendencias a medio y largo plazo
  2. Combinaciones con señales de ruptura para evitar operaciones ineficaces en mercados de rango
  3. Parámetros personalizables para diferentes productos

Análisis de riesgos

  1. Posibilidades de pérdidas más pequeñas en tendencias oscilantes
  2. Las configuraciones de parámetros inadecuadas pueden perder las inversiones de tendencia
  3. Supervisar la frecuencia de las operaciones para evitar el exceso de operaciones

Direcciones de optimización

  1. Añadir otros indicadores a las señales de filtro
  2. Ajuste dinámico de los parámetros del canal de precios
  3. Incorporar el stop loss para optimizar la gestión del riesgo

Conclusión

En general, la estrategia es bastante robusta para rastrear las tendencias a medio y largo plazo de manera efectiva al tiempo que genera señales comerciales a través de las rupturas de tendencia.


/*backtest
start: 2023-01-30 00:00:00
end: 2024-02-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=2
strategy("Noro's Bands Strategy v1.1", shorttitle = "NoroBands str 1.1", 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, "Color")
needbb = input(true, defval = false, title = "Show Bands")
needbg = input(true, 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)

//Signals
up = trend == 1 and ((close < open or color == false) or close < hd) ? 1 : 0
dn = trend == -1 and ((close > open or color == false) or close > ld) ? 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)

Más.