Estrategia de tendencia de media móvil con cruce de medias móviles


Fecha de creación: 2024-01-12 10:56:57 Última modificación: 2024-01-12 10:56:57
Copiar: 0 Número de Visitas: 502
1
Seguir
1617
Seguidores

Estrategia de tendencia de media móvil con cruce de medias móviles

Descripción general

Esta estrategia de negociación es una estrategia de seguimiento de tendencias basada en un simple sistema de medias móviles y medias cruzadas. Utiliza el cruce de medias móviles rápidas y medias móviles lentas de diferentes períodos como señal para hacer más compras.

Principio de estrategia

La estrategia utiliza un ciclo rápido como el promedio móvil simple de 60 días y un ciclo lento como el promedio móvil simple de 200 días. El promedio móvil rápido responde más rápidamente a los cambios de precios, reflejando tendencias de precios recientes; el promedio móvil lento responde más lentamente a los cambios de precios, reflejando tendencias de mediano y largo plazo.

Cuando la media de corto periodo cruza la media de largo periodo desde abajo, indica que el precio de corto periodo comienza a subir, entrando en el mercado de varios encabezados, esto hace más. Cuando la media de corto periodo cruza la media de largo periodo desde arriba hacia abajo, indica que el precio de corto periodo comienza a bajar, entrando en el mercado de encabezados, esto hace más.

La estrategia utiliza el principio de cruce de las medias para determinar la dirección de la tendencia. Cuando los precios de los períodos cortos suben más rápido, las medias de los períodos cortos empujan a las medias de los períodos largos hacia arriba y las atraviesan desde abajo. Esto indica que el mercado está en una tendencia alcista y se debe hacer más.

Capturar los puntos de inflexión de las tendencias de precios mediante la intersección de las líneas de media rápida y media lenta y ajustar las posiciones abiertas en consecuencia. Este es el principio principal de la estrategia para determinar las tendencias y generar señales de negociación.

Análisis de las ventajas estratégicas

  • Utilice la mediana para juzgar las principales tendencias y evitar ser engañado por el ruido del mercado a corto plazo.
  • Una mayor estabilidad y fiabilidad en las dos dimensiones temporales: corto y medio plazo.
  • El seguimiento de tendencias es sencillo y eficaz, por ejemplo, hacer más en tendencias alcistas y hacer menos en tendencias bajas.
  • Las medias móviles son ampliamente utilizadas, son fáciles de entender y tienen una configuración de parámetros flexible.
  • Los parámetros de gestión de fondos son ajustables y los riesgos controlados.

Análisis de riesgos estratégicos

  • La estrategia se basa en una clara tendencia de los precios y podría fracasar si el mercado fluctúa mucho.
  • En los períodos de fluctuación de los precios, se producen varias señales erróneas, con frecuentes posiciones abiertas y cerradas.
  • El promedio móvil está rezagado y puede haber perdido el punto de inflexión.
  • Si los parámetros no están configurados correctamente, el punto de parada es demasiado pequeño o el punto de parada es demasiado grande, se abandonará prematuramente o se cerrará la posición.
  • Los parámetros razonables requieren ajustes optimizados en función de las características específicas de las diferentes variedades.

Se puede ajustar la frecuencia de oscilación de las diferentes variedades mediante el ajuste de los parámetros periódicos de las medias móviles; mejorar las estrategias de stop loss y stop loss, utilizando indicadores más complejos para reducir las señales erróneas; agregar métodos como el filtro de volumen de transacción para optimizar la estrategia y mejorar la estabilidad de la estrategia.

Dirección de optimización de la estrategia

La estrategia puede ser optimizada en los siguientes aspectos:

  1. Optimización de los parámetros de ciclo rápido y lento de las medias móviles para adaptarse a variedades con diferentes frecuencias de oscilación. Se pueden probar más combinaciones para encontrar los parámetros óptimos.

  2. Cambiar las condiciones de entrada y filtrar más indicadores, como el incremento en el volumen de transacciones, para reducir las señales erróneas.

  3. Mejorar las estrategias de stop-loss, como el seguimiento de los stops o los stops dinámicos, para obtener ganancias más eficientes.

  4. Tenga en cuenta los costos de la transacción, como los honorarios, y agregue un módulo de evaluación de costos para que la simulación sea más realista.

  5. Para las características de las diferentes variedades, diseñar un universo de parámetros para buscar la combinación óptima de parámetros.

  6. Aumentar la identificación de características locales, ayudar a determinar el punto de inflexión de la tendencia, mejorar la comprensión de la hora de abrir y cerrar posiciones.

A través de la optimización de la estrategia del sistema, se puede aumentar considerablemente la rentabilidad y la estabilidad de la inversión, reduciendo el retiro.

Resumir

La estrategia de negociación se basa en el cruce de la línea de equilibrio para determinar el cambio en la tendencia de los precios, y es una estrategia típica de seguimiento de tendencias. Utiliza el cruce de diferentes líneas de equilibrio periódicas como una señal de compresión múltiple, determina la dirección de la tendencia a través de una combinación de líneas de equilibrio rápidas y lentas, y logra una captura de tendencia efectiva. La estrategia es estable, confiable, fácil de entender y implementar, se puede adaptar a la mayoría de las variedades mediante optimización de parámetros, y es un tipo de estrategia básica para el comercio cuantitativo.

Código Fuente de la Estrategia
/*backtest
start: 2024-01-04 00:00:00
end: 2024-01-11 00:00:00
period: 10m
basePeriod: 1m
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/
// © thebearfib
//
//@version=5
//

strategy("x-over 150d_200d_sma - Free", overlay = true)

repaint = input.bool(defval = false, title = "[RePaint] Uncheck to see real time results") //when you deselect it - it shows what would have happened in real time while trading the system
srcmc   = request.security(syminfo.tickerid, 'D', open, lookahead= repaint ? barmerge.lookahead_on : barmerge.lookahead_off, gaps=barmerge.gaps_off)

fast_length         = input(title="Fast Length", defval=60)
slow_length         = input(title="Slow Length", defval=275)

_fast               = ta.sma(srcmc,  fast_length)
_slow               = ta.sma(srcmc,  slow_length)

plot(_fast, 
  title="Fast SMA", 
  color=color.red,
  linewidth = 1) 

plot(_slow, 
  title="Slow SMA", 
  color=color.white,
  linewidth = 3)
//
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
// ————————————————————————————————— Calculating  —————————————————————————————————————————————————————————————————————————
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
//
longProfitPerc      = input.float(title="Long Take Profit (%)", minval=0.01, step=1.0, defval=42) * .01
longStopPerc        = input.float(title="Long Stop (%)",        minval=0.01, step=1.0, defval=13)  * .01
//
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
// ————————————————————————————————— Stop Conditions   ————————————————————————————————————————————————————————————————————
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
longExitPrice  = strategy.opentrades > 0 ? strategy.position_avg_price * (1 + longProfitPerc) : srcmc *  (1 + longProfitPerc)
longStopPrice = strategy.opentrades  > 0 ? strategy.position_avg_price * (1 - longStopPerc)   : srcmc *  (1 - longStopPerc)
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
// ————————————————————————————————— Long Conditions   ————————————————————————————————————————————————————————————————————
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
longCondition   = srcmc > _slow and  ta.crossover(_fast, _slow)
closeCondition  =  ta.crossover(srcmc, _slow)  

if (longCondition)
    strategy.entry("Entry (long)", strategy.long, comment="→ 𝗟𝗴 𝗘𝗻𝘁𝗿𝘆")

if (closeCondition)
    strategy.close("Entry (long)", comment=" 𝗟𝗴 𝗘𝘅𝗶𝘁 ←")

if (strategy.position_size > 0)
    strategy.exit(id="XL", limit=longExitPrice, stop = longStopPrice, comment_profit = "Take Profit", comment_loss = "Stop Loss")
//
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
// —————————————————————————————————  Never the End Just the beginning    —————————————————————————————————————————————————
// ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
//