Basado en la estrategia de cruce de medias móviles dobles


Fecha de creación: 2024-03-11 12:06:22 Última modificación: 2024-03-11 12:06:22
Copiar: 0 Número de Visitas: 646
1
Seguir
1617
Seguidores

Basado en la estrategia de cruce de medias móviles dobles

Descripción general de la estrategia

La estrategia de cruce de dos medias es una clásica estrategia de seguimiento de tendencias. La estrategia utiliza dos promedios móviles de diferentes períodos para capturar la tendencia del mercado, generando una señal de más cuando se cruza una media lenta sobre una media rápida y una señal de menos cuando se cruza una media lenta debajo de una media rápida. La idea central de esta estrategia es que la media rápida es más sensible a los cambios en los precios y responde más rápidamente a los cambios en la tendencia del mercado, mientras que la media lenta responde a la tendencia a largo plazo del mercado.

Principio de estrategia

En el código de la estrategia se utilizan dos promedios móviles, uno es el promedio rápido (default 14 periodos) y el otro es el promedio lento (default 28 periodos). Los tipos de promedios móviles se pueden elegir como promedio móvil simple (SMA), promedio móvil indexado (EMA), promedio móvil ponderado (WMA) y promedio móvil relativo (RMA).

La principal lógica de la estrategia es la siguiente:

  1. Calcular los valores de la media rápida y la media lenta
  2. Si la línea media rápida se cruza en la línea media lenta, se genera una señal de hacer más, abrir más posiciones
  3. Si la línea media rápida cruza la línea media lenta y se permite el shorting (allowShorting=true), se genera una señal de shorting y se abre una posición shorting
  4. Si la línea de media rápida atraviesa la línea de media lenta y no se permite el cortocircuito (allowShorting=false), se elimina la posición de más cabeza

Con esta lógica, la estrategia puede seguir las tendencias principales del mercado, manteniendo posiciones de más cabeza en tendencias al alza, manteniendo posiciones de cabeza vacía en tendencias a la baja o manteniendo posiciones vacías en tendencias a la baja. El ciclo y el tipo de la línea mediana se pueden ajustar y optimizar según los diferentes mercados y variedades de transacciones.

Ventajas estratégicas

  1. La lógica es simple, clara, fácil de entender y de implementar.
  2. Aplicable a mercados con tendencias y captura de manera efectiva las tendencias a medio y largo plazo del mercado
  3. Parámetros ajustables para diferentes mercados y variedades de operaciones
  4. Opciones flexibles para la concesión de plazos de espera, según las características del mercado y las preferencias personales
  5. Los promedios móviles son indicadores clásicos de análisis técnico, ampliamente utilizados y validados

Riesgo estratégico

  1. En un mercado convulso, el cruce frecuente de líneas medias puede conducir a un intercambio frecuente y aumentar los costos de transacción.
  2. La elección de una línea media rápida demasiado corta, o una línea media lenta demasiado larga, puede causar un retraso en la señal y perder el mejor momento de negociación
  3. Estrategia en caso de pérdidas continuas cuando la tendencia del mercado cambia
  4. Parámetros de ciclo medio fijo que pueden no adaptarse a los cambios dinámicos en el mercado

Las siguientes medidas pueden ser tomadas para combatir estos riesgos:

  1. Optimización de los parámetros del ciclo de la media en función de las características del mercado y selección de la longitud de la media rápida y lenta adecuada
  2. En mercados convulsivos, se puede considerar la adición de condiciones de filtración, como filtración ATR, o filtración de ángulo transversal uniforme.
  3. Establezca un Stop Loss para controlar el riesgo de una sola transacción
  4. Evaluar periódicamente y ajustar los parámetros de la estrategia según los cambios en el mercado

Optimización de la estrategia

  1. Introducir más indicadores técnicos, como MACD, RSI, etc., para construir una estrategia multifactorial y mejorar la precisión de la señal
  2. Optimización de la gestión de posiciones, como la consideración de factores como el ATR o la volatilidad, y el ajuste dinámico del tamaño de la posición
  3. Para los mercados convulsivos, se puede considerar la introducción de indicadores de tendencia, como el ADX, para evitar el comercio frecuente
  4. Utiliza algoritmos de aprendizaje automático o optimización para encontrar automáticamente la combinación óptima de parámetros

Estas optimizaciones pueden mejorar la adaptabilidad y la estabilidad de las estrategias, adaptándolas mejor a diferentes condiciones de mercado. Sin embargo, también hay que tener en cuenta que la optimización excesiva puede conducir a que las estrategias se ajusten demasiado y no funcionen bien en el mundo real.

Resumir

La estrategia de cruce de dos líneas es una clásica estrategia de seguimiento de tendencias, que genera señales de comercio a través de la cruz de promedios móviles en dos períodos diferentes. Su lógica es simple, fácil de implementar y se aplica a un mercado de tendencia. Sin embargo, en un mercado de volatilidad, es posible que haya operaciones frecuentes y pérdidas continuas.

Código Fuente de la Estrategia
/*backtest
start: 2024-02-09 00:00:00
end: 2024-03-10 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © z4011

//@version=5
strategy("#2idagos", overlay=true, margin_long=100, margin_short=100)
allowShorting = input.bool(true, "Allow Shorting")
fastMALength = input.int(14, "Fast MA Length")
slowMALength = input.int(28, "Slow MA Length")
fastMAType = input.string("Simple", "Fast MA Type", ["Simple", "Exponential", "Weighted", "Relative"])
slowMAType = input.string("Simple", "Fast MA Type", ["Simple", "Exponential", "Weighted", "Relative"]) 

float fastMA = switch fastMAType
    "Simple" => ta.sma(close, fastMALength)
    "Exponential" => ta.ema(close, fastMALength)
    "Weighted" => ta.wma(close, fastMALength)
    "Relative" => ta.rma(close, fastMALength)

plot(fastMA, color = color.aqua, linewidth = 2)

float slowMA = switch slowMAType
    "Simple" => ta.sma(close, slowMALength)
    "Exponential" => ta.ema(close, slowMALength)
    "Weighted" => ta.wma(close, slowMALength)
    "Relative" => ta.rma(close, slowMALength)

plot(slowMA, color = color.blue, linewidth = 2)


longCondition = ta.crossover(fastMA, slowMA)
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = ta.crossunder(fastMA, slowMA) and allowShorting
if (shortCondition)
    strategy.entry("Short", strategy.short)

closeCondition = ta.crossunder(fastMA, slowMA) and not allowShorting
if (closeCondition)
    strategy.close("Long", "Close")