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

EMA SMA DEMA TEMA WMA VWMA
Fecha de creación: 2024-05-14 15:37:54 Última modificación: 2024-05-14 15:37:54
Copiar: 3 Número de Visitas: 697
1
Seguir
1617
Seguidores

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

Descripción general

La estrategia de cruce de dos medias móviles es una estrategia de comercio cuantitativa común que utiliza dos medias móviles de diferentes períodos como señal de compra y venta, comprando cuando la media corta atraviesa la media larga y vendiendo cuando la media corta atraviesa la media larga. El código de la estrategia admite varios tipos de medias móviles comunes, como la media móvil simple (SMA), la media móvil indexada (EMA), la media móvil binaria (DEMA), la media móvil triindicativa (TEMA), la media móvil ponderada (WMA) y la media móvil ponderada por transacción (VMA), y puede configurar con flexibilidad medias de corto y medias de largo plazo.

Principio de estrategia

El principio central de esta estrategia es aprovechar las características de tendencia y el atraso de dos medias móviles de diferentes períodos para capturar la tendencia de los precios. En general, las medias a corto plazo son más sensibles a los cambios en los precios, mientras que las medias a largo plazo son relativamente retrasadas. Cuando los precios están en una tendencia ascendente, las medias a corto plazo se mueven hacia arriba antes de las medias a largo plazo y finalmente atraviesan las medias a largo plazo, formando una señal de compra de “horno de oro”; por el contrario, cuando los precios están en una tendencia descendente, las medias a corto plazo se mueven hacia abajo antes de las medias a largo plazo y finalmente atraviesan las medias a largo plazo, formando una señal de venta de “horno muerto”.

Ventajas estratégicas

  1. Sencilla y fácil de usar: La estrategia de cruce de la media móvil doble es una estrategia de comercio cuantitativa simple de entender y fácil de implementar, adecuada para que los traders novatos aprendan y utilicen.

  2. Amplia aplicabilidad: La estrategia puede aplicarse a diversos mercados financieros y indicadores de negociación, como acciones, futuros, divisas, criptomonedas, etc., y es muy universal.

  3. Flexibilidad de parámetros: El código de la estrategia admite varios tipos de promedios móviles y tipos de precios comunes, y los usuarios pueden configurar los parámetros de manera flexible según sus necesidades para adaptarse a diferentes entornos de mercado y estilos de negociación.

  4. Seguimiento de tendencias: mediante el cruce de señales de dos líneas medias periódicas diferentes, la estrategia permite capturar mejor las tendencias principales de los precios, lo que ayuda a mantener el avance y evitar el comercio en contra.

Riesgo estratégico

  1. Retraso: La media móvil es esencialmente un indicador de seguimiento de tendencias, con un cierto retraso que puede perder los mejores momentos de entrada y salida.

  2. Fallas en mercados convulsivos: en mercados convulsivos o en situaciones de liquidación horizontal, las fluctuaciones de precios son grandes y las señales de cruce de medias son frecuentes, lo que puede conducir a una estrategia de comercio frecuente, lo que genera costos de transacción elevados y pérdidas de capital.

  3. Dificultad de optimización de parámetros: la elección de un ciclo medio-lineal tiene un gran impacto en la eficacia de la estrategia, pero los parámetros óptimos a menudo varían debido a las diferentes condiciones del mercado, y es difícil encontrar una combinación de parámetros óptimos que sea exacta en todos los ámbitos.

Dirección de optimización de la estrategia

  1. Introducción de filtros de tendencia: basado en la señal de cruce de la línea media, se puede combinar con otros indicadores de tendencia como MACD, ADX, etc. Se puede realizar un filtro de tendencia, solo se puede operar cuando la tendencia es clara y se evita operar con frecuencia en mercados convulsos.

  2. Optimización del Stop Loss: Incorpora en la estrategia una lógica de stop-loss razonable, como el stop de movimiento, el stop de volatilidad, etc., para controlar el riesgo de una sola operación y mejorar el riesgo-beneficio de la estrategia.

  3. Optimización de parámetros dinámicos: Para diferentes entornos de mercado, se puede optimizar dinámicamente periódicamente parámetros como el ciclo de la línea media, para que la estrategia pueda adaptarse a los cambios en el mercado y mejorar la estabilidad.

  4. Combinación de múltiples factores: combina la señal de cruce de las dos medias móviles con otros factores cuantitativos efectivos (como la cantidad de movimiento, el valor, el volumen de intercambio, etc.) para formar una estrategia de múltiples factores más sólida y efectiva.

Resumir

La estrategia de cruce de dos medias móviles es una estrategia de seguimiento de tendencias simple y clásica para capturar la tendencia de los precios a través de señales cruzadas de dos medias periódicas diferentes, adecuadas para un mercado de tendencias. Sin embargo, la estrategia también tiene problemas de atraso y dificultad para optimizar los parámetros, que requieren optimización y mejora en combinación con otros métodos, como filtración de tendencias, optimización de parámetros dinámicos, combinación de múltiples factores, etc., para mejorar la aplicabilidad y la solidez de la estrategia. En general, la estrategia de cruce de dos medias móviles puede ser una de las estrategias fundamentales para el comercio cuantitativo.

Código Fuente de la Estrategia
/*backtest
start: 2023-05-08 00:00:00
end: 2024-05-13 00:00:00
period: 1d
basePeriod: 1h
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/
// © SustainableInvestment

//@version=5
strategy("Moving average strategy (이동평균선 전략)", overlay=true)

// === INPUTS ===

basisType   = input.string(defval = "EMA", title = "MA Type: SMA, EMA, DEMA, TEMA, WMA, VWMA ",options=["SMA", "EMA", "DEMA", "TEMA", "WMA", "VWMA"])
shortLen    = input.int(defval = 1, title = "Short MA Period", minval = 1)
longLen    = input.int(defval = 20, title = "Long MA Period", minval = 1)
price       = input.string(defval = "Typical", title = "Price Type : Close, High, Open, Low, Typical, Center ",options=["Close", "High", "Open", "Low", "Typical", "Center"])

// === BASE FUNCTIONS ===
// 가격 종류 설정
priceType(price) =>
    Typical = (high+low+close)/3
    Center  = (high+low) / 2
    price=="High"?high : price=="Low"?low : price=="Open"?open : price=="Typical"?Typical : price=="Center"?Center : close

// 이동평균선 종류 설정
variant(type, src, len) =>
    v1 = ta.sma(src, len)                                                  // Simple
    v2 = ta.ema(src, len)                                                  // Exponential
    v3 = 2 * v2 - ta.ema(v2, len)                                          // Double Exponential
    v4 = 3 * (v2 - ta.ema(v2, len)) + ta.ema(ta.ema(v2, len), len)         // Triple Exponential
    v5 = ta.wma(src, len)                                                  // Weighted
    v6 = ta.vwma(src, len)                                                 // Volume Weighted
    
    type=="EMA"?v2 : type=="DEMA"?v3 : type=="TEMA"?v4 : type=="WMA"?v5 : type=="VWMA"?v6 : v1

longCondition = ta.crossover(variant(basisType, priceType(price), shortLen), variant(basisType, priceType(price), longLen))
if (longCondition)
    strategy.entry("Long Entry", strategy.long)

exitCondition = ta.crossunder(variant(basisType, priceType(price), shortLen), variant(basisType, priceType(price), longLen))
if (exitCondition)
    strategy.close("Long Entry","Long Exit")