Estrategia de cruce de medias móviles de varios niveles para los maestros cuánticos

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

img

Resumen general

Esta estrategia utiliza el principio de cruce de línea de promedio móvil de varios niveles para capturar tendencias a mediano y largo plazo y lograr ganancias constantes. Emplea tres conjuntos de promedios móviles rápidos, medios y lentos con diferentes parámetros y toma decisiones comerciales basadas en sus cruces.

Estrategia lógica

La estrategia utiliza tres conjuntos de promedios móviles: el promedio móvil rápido MAshort, el promedio móvil de velocidad media MAmid y el promedio móvil lento MAlong. MAshort tiene un parámetro de 9, responde más rápido y se utiliza para capturar señales a corto plazo; MAmid tiene un parámetro de 50, tiene una velocidad media y se utiliza para confirmar la tendencia; MAlong tiene un parámetro de 100, responde más lentamente y se utiliza para determinar la dirección de la tendencia a largo plazo.

La lógica de negociación específica de la estrategia es: cuando la línea de media velocidad MAmid cruza por encima de la línea de media lenta MAlong, indica que se está formando el impulso al alza del precio de la acción. En este momento, la estrategia es larga; cuando la media rápida MAshort cruza por debajo de la media rápida MAmid, indica que se ha producido una inversión de tendencia a corto plazo y la estrategia sale de su posición en este momento.

La mayor ventaja de esta estrategia es que al combinar múltiples medias móviles, puede filtrar eficazmente las señales falsas y solo elegir breakouts relativamente fuertes durante una tendencia alcista a mediano y largo plazo para abrir posiciones largas.

Análisis de ventajas

Las ventajas de esta estrategia son:

  1. Los parámetros de la estrategia están optimizados para que coincidan efectivamente con las tendencias a medio y largo plazo con una tasa de ganancia relativamente alta.
  2. El diseño de media móvil de varios niveles filtra el ruido y las señales falsas.
  3. Es adecuado para todo tipo de acciones y criptomonedas con resultados de backtesting históricos relativamente buenos.
  4. La frecuencia de operación es baja y cada posición de apertura ocupa el 30% de los fondos y el riesgo es controlable.
  5. El período de tiempo es configurable, lo que proporciona flexibilidad para el comercio en vivo.

Análisis de riesgos

Esta estrategia también tiene los siguientes riesgos:

  1. La probabilidad de inversiones de tendencia a largo plazo es relativamente pequeña, pero cuando ocurre, la magnitud del stop loss puede ser grande.
  2. La frecuencia de las operaciones es baja y, por lo tanto, tiene el problema de una utilización ineficiente del capital.
  3. Los parámetros de la estrategia deben optimizarse para diferentes tipos de comercio, lo que limita el ámbito de aplicación.

Para hacer frente a estos riesgos, ampliaremos aún más la aplicabilidad de la estrategia, controlando al mismo tiempo el descenso máximo con técnicas de stop loss.

Direcciones de optimización

Esta estrategia también puede optimizarse de las siguientes maneras:

  1. Optimizar el parámetro de días de la media móvil para encontrar la mejor combinación de parámetros
  2. Añadir indicadores de volumen para confirmar y evitar problemas de ajuste de la curva
  3. Establecer la pérdida máxima para la estrategia, como el 20% de extracción máxima, para forzar el stop loss
  4. Incorporar modelos de aprendizaje automático para evaluar las tendencias y mejorar la adaptabilidad de la estrategia

Resumen de las actividades

Esta estrategia pertenece a una estrategia cuantitativa típica a mediano y largo plazo que, con la premisa de controlar los riesgos comerciales, obtiene ganancias continuas al hacer coincidir los promedios móviles de varios niveles con las tendencias a mediano y largo plazo. En comparación con un solo indicador, esta estrategia incorpora múltiples parámetros y puede identificar eficazmente señales de tendencia fuertes a mediano y largo plazo. A través de una optimización adicional, esta estrategia puede aplicarse a más variedades y desempeñar un papel importante en el comercio cuantitativo.


/*backtest
start: 2023-12-12 00:00:00
end: 2024-01-11 00:00:00
period: 1h
basePeriod: 15m
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/
// © Coinrule

//@version=4
strategy(shorttitle='Multi Moving Average Crossing',title='Multi Moving Average Crossing (by Coinrule)', overlay=true, initial_capital=1000,  default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1)

//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2020, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => true       // create function "within window of time"

//MA inputs and calculations
inlong=input(100, title='MAlong')
inmid=input(50, title='MAmid')
inshort=input(9, title='MAfast')

MAlong = sma(close, inlong)
MAshort= sma(close, inshort)
MAmid= sma(close, inmid)


//Entry 
bullish = crossover(MAmid, MAlong)

strategy.entry(id="long", long = true, when = bullish and window())

//Exit
bearish = crossunder(MAshort, MAmid)

strategy.close("long", when = bearish and window())

plot(MAshort, color=color.orange, linewidth=2)
plot(MAmid, color=color.red, linewidth=2)
plot(MAlong, color=color.blue, linewidth=2)


Más.