Estrategia de seguimiento de tendencia de media móvil


Fecha de creación: 2024-02-04 15:44:54 Última modificación: 2024-02-04 15:44:54
Copiar: 0 Número de Visitas: 575
1
Seguir
1617
Seguidores

Estrategia de seguimiento de tendencia de media móvil

Descripción general

La estrategia de seguimiento de tendencias de las medias móviles es una estrategia de seguimiento de tendencias basada en la identificación de la dirección de la tendencia a través de medias móviles a largo plazo y combinada con un filtro de movimientos reales de la media para determinar la dirección de la tendencia y el uso de medias móviles reales para determinar si se ha identificado una falsa ruptura. Esto puede filtrar de manera efectiva los movimientos oscilantes y reducir la reversión general de la estrategia.

Principio de estrategia

La estrategia está basada en los siguientes principios:

  1. Utiliza las medias móviles de índices para determinar la dirección de la tendencia general. La longitud del ciclo es la línea K de 200 por defecto.
  2. Calcula el rango de fluctuación real promedio de las 10 líneas K más recientes.
  3. Cuando el precio de cierre está por encima de la media móvil del dólar + el dólar de la media real de fluctuación, se considera una tendencia alcista.
  4. Cuando el precio de cierre está por debajo de la media móvil del dólar - el dólar de la media real de fluctuación - se considera una tendencia a la baja.
  5. En una tendencia ascendente, haga más; en una tendencia descendente, haga menos.
  6. La estrategia predeterminada es la línea de parada de la media móvil. También se puede elegir la línea de parada de la media móvil inversa ± la media de la gama de fluctuaciones reales.

Análisis de las ventajas

La estrategia tiene las siguientes ventajas:

  1. El uso de medias móviles para determinar tendencias generales puede filtrar el ruido del mercado a corto plazo.
  2. Aumentar el rango de fluctuaciones reales promedio como condición de filtro evita la generación de señales de negociación en situaciones de agitación y reduce las pérdidas innecesarias.
  3. Una línea de parada cercana a la media móvil o su rango inverso permite una parada rápida y una reducción de la reversión máxima.
  4. La configuración de parámetros es simple, fácil de entender y ajustar.

Análisis de riesgos

La estrategia también tiene algunos riesgos potenciales:

  1. En un sistema lineal, cuando la tendencia se invierte, a menudo hay un cierto grado de retroceso.
  2. La configuración de los parámetros de las medias móviles y el rango de fluctuación real promedio tiene un gran impacto en el rendimiento de la estrategia. Si los parámetros se establecen incorrectamente, se perderán oportunidades de negociación o se incrementarán las pérdidas innecesarias.
  3. La estrategia en sí misma no tiene en cuenta la relación entre el precio de las acciones y el volumen de las transacciones.

Dirección de optimización

La estrategia puede ser optimizada en los siguientes aspectos:

  1. Prueba diferentes tipos de promedios móviles para encontrar los parámetros de promedios móviles más adecuados para una acción o variedad específica.
  2. Optimizar los parámetros de la media móvil para que se ajusten mejor a las características de las acciones o variedades que se negocian.
  3. Optimización de los parámetros del rango de fluctuaciones reales promedio, buscando la combinación óptima de parámetros para filtrar las oscilaciones sin perder la tendencia.
  4. Aumentar las reglas de arbitraje para evitar que las transacciones no sean efectivas.
  5. Probar y comparar diferentes métodos de deterioro para determinar la mejor opción.

Resumir

La estrategia de seguimiento de tendencias es una estrategia de tendencias muy sencilla y práctica en general. Al mismo tiempo, tiene un buen efecto de control de riesgo. Aunque la estrategia no considera muchos factores, los parámetros y los métodos de detención requieren una prueba y optimización minuciosas, en general es una estrategia efectiva que es fácil de dominar y ajustar. Su lógica de negociación simple y su configuración de parámetros la hacen muy útil para diferentes variedades, especialmente para el comercio de monedas digitales como Bitcoin.

Código Fuente de la Estrategia
/*backtest
start: 2023-01-28 00:00:00
end: 2024-02-03 00:00:00
period: 1d
basePeriod: 1h
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/
// © Inkedlau

//@version=5
strategy('Swing Trend Strategy', overlay=true, pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=1000, commission_value=0.1)

use_short = input.bool(false, 'Open Short Positions?')
exit_type = input.bool(true, 'Exit trade on Moving Average Cross?')
src = input.source(close, 'Source')
len = input.int(200, 'Trend Length')
ma_type = input.string('ema', 'Moving Average Type', options=['sma', 'ema', 'rma', 'wma', 'vwma'], tooltip='Select the type of Moving Average to use to calculate the Trend')
atr_multiplier = input.float(1., 'ATR Threshold', step=0.5, tooltip='Filter the ranging market using the Average True Range')

// ----------------------- DESCRIPTION -----------------------
// THIS SCRIPT IS A TREND FOLLOWING SYSTEM THAT USES A COMBINATION OF MOVING AVERAGE AND AVERAGE TRUE RANGE
// TO SPOT THE TRENDS AND ENTER THE MARKET ACCODINGLY.
// THE MARKET IS CONSIDERED IN AN UPTREND WHEN THE PRICE CLOSES ABOVE THE MOVING AVERAGE + THE AVERAGE TRUE RANGE OF THE LAST 10 PERIODS
// THE MARKET IS CONSIDERED IN AN DOWNTREND WHEN THE PRICE CLOSES BLOW THE MOVING AVERAGE - THE AVERAGE TRUE RANGE OF THE LAST 10 PERIODS
// BY DEFAULT, THE STRATEGY WILL ENTER LONG WHEN AN UPTREND IS SPOTTED, THEN CLOSES WHEN THE PRICE CLOSES BELOW THE MOVING AVERAGE
// THE STRATEGY WILL ENTER SHORT WHEN A DOWNTREND IS SPOTTED, THEN CLOSES WHEN THE PRICE CLOSES ABOVE THE MOVING AVERAGE

// ------------------ INDICATORS CALCULATION------------------
my_ma()=>
    ma = close
    if ma_type == 'sma'
        ma := ta.sma(src, len)
    if ma_type == 'ema'
        ma := ta.ema(src, len)
    if ma_type == 'rma'
        ma := ta.rma(src, len)
    if ma_type == 'wma'
        ma := ta.wma(src, len)
    if ma_type == 'vwma'
        ma := ta.vwma(src, len)
    ma

trend = my_ma()
atr = ta.atr(10)
uptrend = trend + atr * atr_multiplier
downtrend = trend - atr * atr_multiplier

// ---------------- ENTRY AND EXIT CONDITIONS ----------------

open_long = strategy.position_size == 0 and src > uptrend
close_long = exit_type ? strategy.position_size > 0 and src < trend : strategy.position_size > 0 and src < downtrend

open_short = use_short and strategy.position_size == 0 and src < downtrend
close_short = exit_type ? strategy.position_size < 0 and src > trend : strategy.position_size < 0 and src > uptrend

strategy.entry('long', strategy.long, when=open_long)
strategy.close('long', when=close_long)

strategy.entry('short', strategy.short, when=open_short)
strategy.close('short', when=close_short)


// ------------------ PLOTTING AND COLORING ------------------
tcolor = src > uptrend ? color.green : src < downtrend ? color.red : na

ptrend = plot(trend, color=color.blue, linewidth=1)
puptrend = plot(uptrend, color=color.green, linewidth=1)
pdowntrend = plot(downtrend, color=color.red, linewidth=1)
pclose = plot(close, color=na)

fill(puptrend, pclose, color=close > uptrend ? color.green : na, transp = 90)
fill(pdowntrend, pclose, color=close < downtrend ? color.red : na, transp = 90)