Estrategia de seguimiento de tendencias basada en la media móvil y el rango verdadero de la media

El autor:¿ Qué pasa?, Fecha: 2024-01-12 11:14:01
Las etiquetas:

img

Resumen general

Esta estrategia utiliza la media móvil y el rango medio verdadero para determinar la dirección de la tendencia del mercado para el seguimiento de tendencias.

Principios

Para determinar la tendencia del mercado, esta estrategia utiliza la media móvil de los períodos y dos veces el intervalo real medio de los períodos.

Cuando el mínimo es mayor que el promedio móvil más el rango medio verdadero (bajo > ma + atr), se juzga como una tendencia al alza. Cuando el máximo es menor que el promedio móvil menos el rango medio verdadero (alto < ma - atr), se juzga como una tendencia a la baja.

En otros casos, se mantiene la sentencia anterior.

Cuando se determina una tendencia al alza, ir largo en un cierto porcentaje cuando se permite ir largo. Cuando se determine una tendencia a la baja, vaya corto en un cierto porcentaje cuando se le permita ir corto.

La condición de cierre es alcanzar la fecha de finalización de las operaciones especificada.

Análisis de ventajas

Las ventajas de esta estrategia son:

  1. Utilice la media móvil para determinar la dirección general de la tendencia y evitar ser engañado por las fluctuaciones a corto plazo del mercado.
  2. Para establecer el stop loss dinámico, se utilizará el intervalo medio verdadero, lo que favorece el control del riesgo.
  3. Puede captar las oportunidades de tendencia de manera oportuna siguiendo la tendencia, con un alto potencial de ganancia.
  4. Reglas sencillas y fáciles de operar.

Análisis de riesgos

Los principales riesgos a los que se enfrenta esta estrategia son:

  1. Es propenso a múltiples pérdidas en un mercado con fuertes fluctuaciones.
  2. Al no poder determinar eficazmente los puntos de reversión de la tendencia, existe el riesgo de perseguir máximos y matar mínimos.
  3. La configuración incorrecta de los parámetros del rango medio verdadero puede dar lugar a puntos de salida demasiado sueltos o demasiado estrictos.

Soluciones:

  1. Ajustar adecuadamente los parámetros de la media móvil para utilizar parámetros más estables.
  2. Confirme las señales con otros indicadores para evitar perseguir los máximos y matar los mínimos.
  3. Optimizar y probar los parámetros de rango real medio para establecer los parámetros adecuados.

Direcciones de optimización

La estrategia se puede optimizar a partir de los siguientes aspectos:

  1. Prueba diferentes sistemas de medias móviles para encontrar combinaciones de parámetros más estables.
  2. Añadir otros indicadores auxiliares para evaluar la fiabilidad de las señales.
  3. Prueba los parámetros de rango verdadero promedio para encontrar los parámetros óptimos.
  4. Optimizar la utilización del capital mediante apalancamiento para aumentar el rendimiento del capital.
  5. Combinar el aprendizaje automático y otros métodos para lograr la optimización de parámetros dinámicos.

Resumen de las actividades

La idea general de esta estrategia es clara y fácil de entender. Utiliza promedios móviles para determinar la dirección de la tendencia y utiliza el rango verdadero promedio para establecer paradas. Puede rastrear efectivamente las tendencias. Pero hay ciertos riesgos, y se necesita una mayor optimización de la configuración de parámetros y la adición de otros indicadores de juicio. En general, esta estrategia proporciona un enfoque viable para el seguimiento de tendencias.


/*backtest
start: 2024-01-04 00:00:00
end: 2024-01-11 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//2019
//Noro

//@version=4
strategy(title = "Noro's MA+ATR Strategy", shorttitle = "MA+ATR str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
len = input(30, minval = 2, title = "MA Length")
src = input(ohlc4, title = "MA Source")
limitmode = input(false)
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//MA + BG
atr = sma(tr, len) * 2
ma = sma(src, len)
plot(ma, color = color.blue, linewidth = 4)
trend = 0
trend := low > ma + atr ? 1 : high < ma - atr ? -1 : trend[1]
col = trend == 1 ? color.lime : color.red
bgcolor(col, transp = 70)

//Trading
lot = 0.0
lot := strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]
if trend == 1 and limitmode == false
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)
if trend == -1 and limitmode == false
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot)
if trend == 1 and limitmode
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)
if trend == -1 and limitmode
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot)
// if time > timestamp(toyear, tomonth, today, 23, 59)
//     strategy.close_all()

Más.