Estrategia de inversión de media móvil


Fecha de creación: 2023-12-21 15:45:23 Última modificación: 2023-12-21 15:45:23
Copiar: 1 Número de Visitas: 733
1
Seguir
1623
Seguidores

Estrategia de inversión de media móvil

Esta estrategia se llama estrategia de reversión de la media media basada en el promedio móvil, y su principal idea es comprar después de que el promedio clave se rompa y detenerse cuando se alcanza el objetivo de ganancias predeterminado.

El principio principal de esta estrategia es el uso de la reversión de la media de corto plazo, para capturar la oportunidad de rebote en el mercado de todo. En concreto, cuando los precios caen después de la media de un período más largo (como la línea de 20 días, 50 días, etc.) muestra una fuerte señal de rebote, debido a la media de reversión de la naturaleza de la fluctuación del mercado, los precios suelen producir un cierto grado de rebote.

La lógica de compra específica de esta estrategia es: comprar 1 mano después de que el precio baje a la línea de 20 días, colocar 1 mano después de caer a la línea de 50 días, seguir poniendo 1 mano después de caer a la línea de 100 días, colocar 1 mano a lo sumo después de caer a la línea de 200 días, hacer 4 manos adicionales. En la posición plana después de alcanzar el objetivo de parada predeterminado. Al mismo tiempo, se establece el tiempo y las condiciones de parada.

Análisis de las ventajas

  1. Utilizando las características de retorno de la línea media, se puede identificar eficazmente las oportunidades de rebote a corto plazo
  2. Construir en lotes para reducir el riesgo de un solo puesto
  3. Configuración de condiciones de parada para bloquear el beneficio
  4. Filtración para evitar falsas rupturas utilizando el precio de apertura y los mínimos anteriores

Análisis de riesgos

  1. Si se mantiene a largo plazo, puede haber riesgo de reversión. Si la caída continúa, las pérdidas se ampliarán aún más.
  2. Las señales de línea media pueden ser falsas y causar pérdidas.
  3. El objetivo de frenado establecido puede no ser alcanzado, no se puede frenar en su totalidad o en parte

Dirección de optimización

  1. Puede probar la rentabilidad y la estabilidad bajo diferentes parámetros
  2. Se puede considerar la combinación de otros indicadores como MACD, KD, etc.
  3. Se puede elegir un ciclo de línea media que se adapte a su estilo de negociación en función de las características de las diferentes variedades
  4. Se pueden introducir algoritmos de aprendizaje automático para optimizar dinámicamente los parámetros

Resumir

Esta estrategia en su conjunto es una estrategia de negociación de línea uniforme más clásica y general. Utiliza correctamente las características de la línea uniforme de suavización, mientras que la combinación de varias líneas comunes para identificar el momento de compra a corto plazo.

Código Fuente de la Estrategia
/*backtest
start: 2023-12-13 00:00:00
end: 2023-12-20 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA_zorba1", shorttitle="zorba_ema", overlay=true)

// Input parameters
qt1 = input.int(5, title="Quantity 1", minval=1)
qt2 = input.int(10, title="Quantity 2", minval=1)
qt3 = input.int(15, title="Quantity 3", minval=1)
qt4 = input.int(20, title="Quantity 4", minval=1)
ema10 = ta.ema(close, 10)
ema20 = ta.ema(close, 20)
ema50 = ta.ema(close, 50)
ema100 = ta.ema(close, 100)
ema200 = ta.ema(close, 200)

// Date range filter
start_date = timestamp(year=2021, month=1, day=1)
end_date = timestamp(year=2024, month=10, day=27)
in_date_range = true

// Profit condition
profit_percentage = input(1, title="Profit Percentage")  // Adjust this value as needed

// Pyramiding setting
pyramiding = input.int(2, title="Pyramiding", minval=1, maxval=10)

// Buy conditions
buy_condition_1 = in_date_range and close < ema20 and close > ema50 and close < open and close < low[1]
buy_condition_2 = in_date_range and close < ema50 and close > ema100 and close < open and close < low[1]
buy_condition_3 = in_date_range and close < ema100 and close > ema200 and close < open and close < low[1]
buy_condition_4 = in_date_range and close < ema200 and close < open and close < low[1]

// Exit conditions
profit_condition = strategy.position_avg_price * (1 + profit_percentage / 100) <= close
exit_condition_1 = in_date_range and (close > ema10 and ema10 > ema20 and ema10 > ema50 and ema10 > ema100 and ema10 > ema200 and close < open) and profit_condition and close < low[1] and close < low[2]
exit_condition_2 = in_date_range and (close < ema10 and close[1] > ema10 and close < close[1] and ema10 > ema20 and ema10 > ema50 and ema10 > ema100 and ema10 > ema200 and close < open) and profit_condition and close < low[1] and close < low[2]

// Exit condition for when today's close is less than the previous day's low
//exit_condition_3 = close < low[1]

// Strategy logic
strategy.entry("Buy1", strategy.long, qty=qt1 * pyramiding, when=buy_condition_1)
strategy.entry("Buy2", strategy.long, qty=qt2 * pyramiding, when=buy_condition_2)
strategy.entry("Buy3", strategy.long, qty=qt3 * pyramiding, when=buy_condition_3)
strategy.entry("Buy4", strategy.long, qty=qt4 * pyramiding, when=buy_condition_4)

strategy.close("Buy1", when=exit_condition_1 or exit_condition_2)
strategy.close("Buy2", when=exit_condition_1 or exit_condition_2)
strategy.close("Buy3", when=exit_condition_1 or exit_condition_2)
strategy.close("Buy4", when=exit_condition_1 or exit_condition_2)