Estrategia comercial basada en la media móvil del cruce dorado y del cruce muerto


Fecha de creación: 2024-01-24 11:48:29 Última modificación: 2024-01-24 11:48:29
Copiar: 0 Número de Visitas: 645
1
Seguir
1617
Seguidores

Estrategia comercial basada en la media móvil del cruce dorado y del cruce muerto

Descripción general

La estrategia de negociación de la horquilla de oro de la media móvil genera señales de compra y venta mediante el cálculo de la intersección de la línea rápida EMA ((fastLength) y la línea lenta EMA ((slowLength)). Cuando la línea rápida atraviesa la línea lenta, genera una señal de compra; cuando la línea rápida atraviesa la línea lenta, genera una señal de venta. La estrategia es simple y práctica y se aplica a la negociación de la línea corta media.

Principio de estrategia

La estrategia utiliza dos promedios móviles, la línea rápida y la línea lenta. El parámetro de la línea rápida EMAfastLength es la línea de 9 días por defecto, y el parámetro de la línea lenta EMAAslowLength es la línea de 26 días por defecto. Se calcula el cruce de las dos líneas EMA para determinar las señales de compra y venta en el mercado:

  1. Cuando la línea rápida pasa de abajo hacia arriba, se genera una señal de compra (enterLong)
  2. Cuando la línea rápida se rompe con la línea lenta de arriba a abajo, se genera una señal de venta (enterShort)

Las señales de trading y las reglas de estrategia son las siguientes:

  1. Cuando la línea rápida atraviesa la línea lenta, haga más entradas; cuando la línea rápida atraviesa la línea lenta, salga de la posición.
  2. La parada más alta es el porcentaje objetivo (el 0.15% por defecto), es decir, cuando el alza alcanza el 15% la posición se cierra.
  3. El StopLoss es el porcentaje de StopLoss del precio (el 0.20% por defecto), que se cierra cuando la caída alcanza el 20%.
  4. ¿Qué es lo que está pasando?

Así que la estrategia es hacer operaciones de negociación cuando dos promedios móviles tienen un tenedor y un tenedor muerto.

Análisis de las ventajas

  1. Las estrategias son sencillas y fáciles de entender.
  2. La aplicación de las medias móviles filtra cierto ruido del mercado y hace que las señales de negociación sean más precisas.
  3. Las reglas de negociación son claras y hay una estrategia de stop loss clara.
  4. Los parámetros de prueba se pueden ajustar con flexibilidad para adaptarse a diferentes situaciones de mercado.

Análisis de riesgos

  1. Las medias móviles son por sí mismas retrasadas y pueden perderse los movimientos a corto plazo de los precios, lo que hace que los puntos de compra y venta no sean precisos.
  2. Los parámetros de las medias móviles de diferentes períodos pueden generar falsas señales, lo que conlleva pérdidas.
  3. Dependiendo solo de unos pocos parámetros, la estrategia tiene una alta necesidad de optimización de hiperparámetros y necesita encontrar la combinación óptima de parámetros.
  4. La estrategia es susceptible de fracasar en ciertas tendencias a gran escala.

Los parámetros optimizados para el riesgo, como el ciclo de las medias móviles, la variedad de operaciones, el índice de stop loss, etc., requieren una gran cantidad de pruebas para reducir el riesgo.

Dirección de optimización

La estrategia de movimiento de la media cruzada es sencilla y práctica, y se puede optimizar de la siguiente manera:

  1. Cambiar el tipo de media móvil: además de EMA, también se pueden probar tipos de línea como SMA, LWMA, HMA.
  2. Añadir otros indicadores de juicio: la combinación de RSI, MACD y otros indicadores para el comercio de tiempo disperso.
  3. Parámetros de optimización automática: búsqueda de optimización automática de los dos parámetros de ciclo de la EMA para encontrar la mejor combinación de parámetros.
  4. Filtración de tendencias: selecciona las operaciones de acuerdo con las tendencias a gran escala.
  5. Optimización de las estrategias de stop loss: mejora de los métodos de stop loss de porcentaje fijo para que sean más efectivos en combate.

A través de estas pruebas de optimización, se puede mejorar considerablemente la efectividad y la estabilidad de la estrategia en el campo de batalla.

Resumir

La idea de la estrategia de cruce de la media móvil es simple, y la aplicación real requiere una optimización continua. Esta estrategia da la lógica de generación de señales de negociación y las reglas básicas de negociación, sobre la base de las cuales se puede optimizar en gran medida, lo que la convierte en una estrategia cuantitativa viable. La aplicación de la media móvil también nos proporciona una idea de la estrategia, sobre la base de la cual podemos innovar y mejorar.

Código Fuente de la Estrategia
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("EMA Cross by MarketAlpha", overlay=true)
EMAfastLength = input(defval = 9, minval = 2)
EMAslowLength = input(defval = 26, minval = 2)
Targetpercentage = input(defval = 0.15, title = "Profit Target in percentage", minval = 0.05)
StopLosspercentage = input(defval = 0.20, title = "Stop Loss in percentage", minval = 0.05)
profitpoints = close*Targetpercentage
stoplosspoints = close*StopLosspercentage
price = close

FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 2000)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

emafast = ema(price, EMAfastLength)
emaslow = sma(price, EMAslowLength)
plot(emafast,color=green)
plot(emaslow,color=red)

enterLong() => crossover(emafast, emaslow)
strategy.entry(id = "MarketAlpha Long", long = true, when = window() and enterLong())
strategy.exit("Exit Long", from_entry = "MarketAlpha Long", profit = profitpoints,loss = stoplosspoints)

enterShort() => crossunder(emafast, emaslow)
strategy.entry(id = "MarketAlpha Short", long = false, when = window() and enterShort())
strategy.exit("Exit Short", from_entry = "MarketAlpha Short", profit = profitpoints,loss = stoplosspoints)