Estrategia de trading con cruces dorados y cruces muertos de doble media móvil


Fecha de creación: 2023-10-07 16:39:01 Última modificación: 2023-10-07 16:39:01
Copiar: 0 Número de Visitas: 678
1
Seguir
1617
Seguidores

Descripción general

La estrategia utiliza un doble promedio móvil para determinar la tendencia y emitir una señal de compra y venta. Cuando un promedio móvil rápido atraviesa un promedio móvil lento desde abajo, se produce una señal de compra. Cuando un promedio móvil rápido atraviesa un promedio móvil lento desde arriba, se produce una señal de venta.

Principio de estrategia

La estrategia se compone de las siguientes partes:

  1. El valor del oscilador se calcula en forma de porcentaje del precio. El valor del oscilador es el porcentaje del precio menos un valor medio. El valor medio se calcula a partir de, por ejemplo, el promedio de los precios más altos y más bajos de 20 días.

  2. Calcula el promedio móvil de los valores del oscilador, como el promedio móvil de 20 días del casco.

  3. Calcula el valor de la demora de la media móvil, como la demora de 12 días.

  4. Determina si la media móvil se ha corrido hacia arriba o hacia abajo, se ha retrasado la media móvil y se ha producido una señal de horquilla de oro o de horquilla muerta.

  5. Envía señales de compra y venta.

En concreto, la estrategia primero calcula el valor del oscilador del precio, luego calcula el promedio móvil del oscilador, y luego calcula el valor de la demora de ese promedio móvil.

Cuando el oscilante atraviesa la media móvil en la media móvil de retardo, se genera una señal de horquilla de oro, haciendo más; cuando el oscilante atraviesa la media móvil de retardo en la media móvil de baja, se genera una señal de horquilla muerta, haciendo vacío.

De esta manera, se determina la dirección de la operación al juzgar la intersección de las medias móviles dobles.

Análisis de las ventajas

La estrategia tiene las siguientes ventajas:

  1. El uso de medias móviles dobles para filtrar señales falsas aumenta la fiabilidad de la señal.

  2. El uso de una combinación de línea media rápida y lenta para capturar la tendencia intermedia. La línea media rápida es sensible a los cambios en el precio, la línea media lenta tiene retraso, el uso combinado puede capturar la reversión de la tendencia intermedia al mismo tiempo que elimina el ruido a corto plazo.

  3. El uso de oscilladores puede resaltar puntos de ruptura y generar señales de negociación más claras.

  4. Los algoritmos y parámetros de las medias móviles se pueden personalizar para adaptarse a diferentes entornos de mercado.

  5. La lógica de la estrategia es simple y clara, fácil de entender y implementar, adecuada para el aprendizaje de los principiantes.

Análisis de riesgos

La estrategia también tiene los siguientes riesgos:

  1. El cruce de las medias móviles dobles produce un retraso en la señal, lo que puede hacer que se pierda el punto de entrada óptimo.

  2. Los promedios móviles dobles son propensos a generar señales erróneas en la composición de la ciudad.

  3. No se puede decir si la tendencia es fuerte o débil, y podría haber una salida prematura en un mercado alcista.

  4. PARAMETERS tiene demasiados parámetros ajustables y no es fácil optimizar para encontrar la combinación óptima de parámetros.

  5. No hay un mecanismo de suspensión de pérdidas que pueda controlar las pérdidas individuales.

Dirección de optimización

La estrategia puede ser optimizada en los siguientes aspectos:

  1. Optimizar los tipos y parámetros de las medias móviles para probar la estabilidad de diferentes combinaciones en diferentes mercados.

  2. Aumentar los indicadores de tendencia, como el ADX, para evitar operaciones innecesarias debido a señales erróneas.

  3. Agregar estrategias de stop loss, como stop loss móvil o stop loss porcentual, para controlar las pérdidas individuales.

  4. En combinación con otros indicadores, como la energía del volumen de operaciones, el RSI, etc., mejora la calidad de la señal de negociación.

  5. Utiliza métodos de aprendizaje automático para optimizar los parámetros y obtener una configuración de parámetros más estable

  6. Considere la posibilidad de flexibilizar adecuadamente las condiciones de ingreso para reducir la posibilidad de falta de boletos.

Resumir

La estrategia de doble media móvil, mediante la combinación de la media rápida y la media lenta, captura el punto de inflexión de la tendencia media de los precios al tiempo que elimina el ruido del mercado a corto plazo, para generar una señal de comercio. La estrategia es simple, fácil de implementar, fácil de entender y amigable para los novatos. Pero también hay desventajas, como la generación de señales erróneas y la imposibilidad de determinar la fuerza de la tendencia.

Código Fuente de la Estrategia
/*backtest
start: 2023-09-06 00:00:00
end: 2023-10-06 00:00:00
period: 4h
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/
// © EvoCrypto

//@version=4
strategy("Distance Oscillator Strategy- evo", shorttitle="Distance Oscillator Strategy")

// INPUTS {
na_1                =   input(false,    title="────────────{ Oscillator }──────────────")

// Osc_Src             =   input(close,    title="Oscillator Source                                ")

Example_Length      =   input(20,       title="Example Length", minval=1)
Osc_Src             =   (highest(Example_Length) + lowest(Example_Length)) / 2

// Strategy can not let you choose a Moving Average to connect with like the study version, so I use the MA above as example

Osc_Format          =   input("Percent",title="Oscillator Format",              options=["Percent", "Currency"]) 

na_2                =   input(false,    title="─────────────{ Average }──────────────")
Average_Type        =   input("Hull",   title="Average Type",                   options=["Hull", "Sma", "Ema", "Wma"])
Length              =   input(50,       title="Average Length", minval=1)
Lagg                =   input(12,       title="Average Lagg",   minval=1)
Display_MA          =   input(true,     title="Display Average")
// }

// SETTINGS {
Osc_Sum             =   
 Osc_Format == "Percent"  ? (close - Osc_Src) / close * 100 :
 Osc_Format == "Currency" ? (close - Osc_Src)               : na

Osc_MA              =   Display_MA == false ? na:
 Average_Type == "Hull"? hma(Osc_Sum, Length)   :
 Average_Type == "Sma" ? sma(Osc_Sum, Length)   :
 Average_Type == "Ema" ? ema(Osc_Sum, Length)   :
 Average_Type == "Wma" ? wma(Osc_Sum, Length)   : na
Osc_MA_1            =   Osc_MA[Lagg]

Cross_Up            =   crossover( Osc_MA, Osc_MA_1)
Cross_Down          =   crossunder(Osc_MA, Osc_MA_1)

Osc_Color           =   Osc_Sum > 0         ? color.new(#bbdefb, 70)  : Osc_Sum < 0          ? color.new(#000000, 70)  : na
Average_Color       =   Osc_MA  > Osc_MA_1  ? color.new(#311b92, 100) : Osc_MA  < Osc_MA_1   ? color.new(#b71c1c, 100) : na
// }

// PLOT {
plot(Osc_Sum,                           title="Oscillator", color=Osc_Color, style=plot.style_histogram, linewidth=2)

Plot_0              =   plot(Osc_MA,    title="Osc Average",color=#b71c1c, linewidth=2)
Plot_1              =   plot(Osc_MA_1,  title="Osc Average",color=#311b92, linewidth=2)
fill(Plot_0, Plot_1,                    title="Average",    color=Average_Color)

plotshape(Cross_Up   ? Osc_MA_1 : na,   title="Cross Up",   color=#bbdefb, location=location.absolute, size=size.tiny, style=shape.circle)
plotshape(Cross_Down ? Osc_MA_1 : na,   title="Cross Down", color=#000000, location=location.absolute, size=size.tiny, style=shape.circle)
// }

// STRATEGY {
if (Cross_Up)
    strategy.entry("Long", strategy.long)
if (Cross_Down)
    strategy.entry("Short", strategy.short)
// }