Estrategia de seguimiento de tendencias para maximizar los beneficios

El autor:¿ Qué pasa?, fecha: 2023-10-11 14:38:40
Las etiquetas:

Resumen general

Esta estrategia calcula la media móvil y el canal de desviación estándar del precio para formar los rieles dinámicos superior e inferior, y combina el valor promedio de los precios más altos y más bajos para formar el rieles medio, a fin de juzgar la dirección de la tendencia actual. Cuando el precio rompe el rieles superior, significa largo. Cuando el precio rompe el rieles inferior, significa corto. Esto implementa una estrategia que se negocia basada en los cambios de tendencia.

Estrategia lógica

  1. Calcular la media móvil simple de cierre de 20 días como base para la línea de referencia media
  2. Calcular la desviación tipo de 20 días de cerca como base para la distancia entre los rieles superior e inferior y el rieles medio
  3. La base del carril medio ± 2*dev determina el carril superior superior y el inferior inferior
  4. Calcular el valor medio de los precios superiores2 más altos y inferiores2 más bajos en los últimos 20 días como base2 para el segundo carril medio
  5. Tome el valor medio MB de los dos rieles medios anteriores como el rieles medio final
  6. Cuando cerca es mayor que el MB del tren medio, es una señal larga.
  7. Determinar la dirección larga y corta de acuerdo con la señal para seguir la tendencia y la ganancia

Análisis de ventajas

  1. El uso de desviación estándar dinámica canal puede capturar rápidamente los cambios de tendencia de precios
  2. Combinando la información de los precios más altos y más bajos, el carril medio es más significativo
  3. El diseño del doble carril medio hace que la señal sea más precisa y confiable
  4. La idea de la estrategia es simple y clara, fácil de entender e implementar
  5. Hay pocos parámetros configurables, adecuados para diversos entornos de mercado

Análisis de riesgos

  1. Cuando se negocie a las rupturas de la barrera superior o inferior, deben considerarse estrategias de stop loss para controlar la pérdida única.
  2. La frecuencia de negociación puede ser alta y debe considerarse el impacto de las comisiones
  3. Los parámetros como los parámetros de período deben ser cuidadosamente optimizados para evitar el sobreajuste
  4. Cuando la tendencia cambia, existe la posibilidad de señales comerciales erróneas
  5. Se requiere una gestión adecuada del capital, no debe utilizarse apalancamiento excesivo

Direcciones de optimización

  1. Considere la posibilidad de añadir filtros cuando se rompe a través de los rieles superiores e inferiores para evitar las falsas rupturas
  2. Establecer salidas dinámicas basadas en ATR y otros indicadores
  3. Incorporar información sobre el volumen de operaciones para verificar la fiabilidad de las señales de ruptura
  4. Optimizar parámetros como el ciclo de cálculo para adaptarse a más entornos de mercado
  5. Considere establecer el tamaño de la posición para controlar el riesgo de pérdida única

Resumen de las actividades

La idea general de esta estrategia es clara y fácil de entender. Al capturar dinámicamente las tendencias a través del canal y generar señales comerciales con múltiples diseños de ferrocarril medio, puede rastrear eficazmente las direcciones de tendencia para el comercio y obtener buenos rendimientos. En la aplicación real, se debe prestar atención a las estrategias de stop loss, gestión de capital, optimización de parámetros, etc., para obtener rendimientos estables a largo plazo.


/*backtest
start: 2023-09-10 00:00:00
end: 2023-10-10 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ErdemDemir

//@version=4
strategy("Lawyers Trend Pro Strategy", shorttitle="Lawyers Trend Pro Strategy", overlay=true)

src = close
mult = 2.0
basis = sma(src, 20)
dev = mult * stdev(src, 20)
upper = basis + dev
lower = basis - dev
offset = 0


lower2 = lowest(20)
upper2 = highest(20)
basis2 = avg(upper2, lower2)


MB= (basis+basis2)/2





col1=close>MB
col3=MB>close
colorE = col1 ? color.blue : col3 ? color.red : color.yellow
p3=plot(MB, color=colorE, linewidth=3)

// Deternine if we are currently LONG
isLong = false
isLong := nz(isLong[1], false)

// Determine if we are currently SHORT
isShort = false
isShort := nz(isShort[1], false)

// Buy only if the buy signal is triggered and we are not already long
buySignal = not isLong and crossover(close,MB)

// Sell only if the sell signal is triggered and we are not already short
sellSignal= not isShort and crossover(MB,close)
if (buySignal)
    isLong := true
    isShort := false

if (sellSignal)
    isLong := false
    isShort := true







/// LONG
strategy.entry("long", true , when = buySignal, comment="Open Long")

strategy.close("long", when=sellSignal, comment = "Close Long")

/// SHORT
strategy.entry("short", false,  when = sellSignal, comment="Open Short")

strategy.close("short", when=buySignal, comment = "Close Short")



Más.