Estrategia de cruce de la media móvil

El autor:¿ Qué pasa?, Fecha: 2023-12-08 15:23:33
Las etiquetas:

img

Esta estrategia adopta el cruce de la media móvil de 20 días y la media móvil de 60 días para generar señales de negociación. Va largo cuando el precio se rompe por encima del MA de 20 días y cierra la posición cuando el precio se rompe por debajo del MA de 20 días. Del mismo modo, forma señales de negociación cuando el precio cruza el MA de 60 días. Esta estrategia pertenece a un sistema típico de seguimiento de tendencias.

Estrategia lógica

  1. Calcular la media móvil simple de 20 días y la media móvil simple de 60 días
  2. Venga largo cuando el precio de cierre se rompa por encima de la MA de 20 días
  3. Posición cerrada cuando el precio de cierre se rompe por debajo del MA de 20 días
  4. Venga largo cuando el precio de cierre se rompa por encima de la MA de 60 días
  5. Posición cerrada cuando el precio de cierre se rompe por debajo del MA de 60 días

Las reglas anteriores definen las señales comerciales y la lógica para esta estrategia. Cuando el precio cruza la línea MA, muestra que una nueva tendencia está surgiendo y podemos seguir la tendencia para ir largo. Cuando el precio cae por debajo de la línea MA, muestra que la tendencia está terminando, por lo que cerramos la posición.

Ventajas

  1. La adopción de un doble MA hace que la estrategia sea más estable. El MA de 20 días captura las oportunidades a corto plazo más rápidamente mientras que el MA de 60 días filtra algunos ruidos del mercado y bloquea la tendencia a mediano y largo plazo.
  2. La prueba de retroceso comienza a partir de 2018 y selecciona el mercado de valores de Taiwán, que tiene un sistema comercial más desarrollado en comparación con el mercado de acciones A de China, lo que refleja mejor la eficacia de la estrategia.
  3. Establece el stop loss y el tamaño de posición adecuados, controlando al máximo el riesgo.

Los riesgos

  1. La estrategia se basa únicamente en el indicador MA, que puede generar más problemas cuando no hay una tendencia obvia en el mercado.
  2. La estrategia no optimiza el tamaño y la posición de compra/venta, no logra maximizar el uso del capital.
  3. La estrategia reacciona simétricamente a las subidas y bajadas de precios, incapaz de adaptarse a las diferentes condiciones del mercado.

Soluciones de riesgos:

  1. Agregue otros indicadores como KDJ, MACD para formar confirmación múltiple, evitando operaciones equivocadas.
  2. Optimizar el tamaño de las posiciones y la eficiencia del uso del capital de acuerdo con la capitalización de mercado, la volatilidad, etc.
  3. Adoptar movimientos asimétricos basados en las etapas del mercado, reducir las operaciones durante el mercado de rango y aumentar el tamaño de la posición durante la tendencia obvia.

Direcciones de optimización

  1. Optimiza la cantidad de compra/venta. Ajusta dinámicamente el tamaño de la posición basado en el stop loss.
  2. Obtener mejores parámetros a través de la optimización avanzada y la optimización aleatoria.
  3. Añadir una estrategia de stop loss. mover la orden de stop loss o stop limit protege mejor las ganancias.
  4. Añadir la gestión del tamaño de la posición. Ajustar dinámicamente el tamaño de la posición por operación en función del tamaño del capital, la capitalización de mercado, etc.

Resumen de las actividades

Esta es una típica estrategia de cruce de media móvil dual. La idea central es seguir las tendencias estableciendo una posición cuando el precio cruza la línea MA. La estrategia es simple y práctica de implementar. Mientras tanto, hay espacio para una mayor optimización, por ajuste de parámetros, stop loss, dimensionamiento de posición, etc. para lograr mejores resultados.


/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 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/
// © Astorhsu

//@version=5
strategy("Astor SMA20/60 TW", overlay=true, margin_long=100, margin_short=100)
backtest_year = input(2018, title='backtest_year') //回測開始年分
backtest_month = input.int(01, title='backtest_month', minval=1, maxval=12) //回測開始月份
backtest_day = input.int(01, title='backtest_day', minval=1, maxval=31)  //回測開始日期
start_time = timestamp(backtest_year, backtest_month, backtest_day, 00, 00)  //回測開始的時間函數

//Indicators
sma20 = ta.sma(close,20)
sma60 = ta.sma(close,60)
plot(sma20, color=color.green, title="sma(20)")
plot(sma60, color=color.red, title="sma(60)")

//進場條件
longCondition = ta.crossover(close, ta.sma(close, 20))
if (longCondition) and time >= start_time
    strategy.entry("open long20", strategy.long, qty=1, comment="站上m20做多")


shortCondition = ta.crossunder(close, ta.sma(close, 20))
if (shortCondition) and time >= start_time
    strategy.close("open long20",comment="跌破m20平倉", qty=1)     
    
longCondition1 = ta.crossover(close, ta.sma(close, 60))
if (longCondition1) and time >= start_time
    strategy.entry("open long60", strategy.long, qty=1, comment="站上m60做多")


shortCondition1 = ta.crossunder(close, ta.sma(close, 60))
if (shortCondition1) and time >= start_time
    strategy.close("open long60",comment="跌破m60平倉", qty=1)     

Más.