Estrategia de cruce de medias móviles de Galileo


Fecha de creación: 2023-12-18 12:07:07 Última modificación: 2023-12-18 12:07:07
Copiar: 0 Número de Visitas: 566
1
Seguir
1621
Seguidores

Estrategia de cruce de medias móviles de Galileo

Descripción general

La estrategia de cruce de la media galileana es una estrategia de negociación basada en promedios móviles. La estrategia genera una señal de negociación mediante el cálculo de promedios móviles indexados de un determinado período y la comparación cruzada con los precios.

Principio de estrategia

El núcleo de la estrategia de cruce de línea de la media galileana es el promedio móvil indexado (EMA). El EMA es un algoritmo de promedio móvil que tiende a dar mayor peso a los precios más recientes. Su fórmula de cálculo es:

EMA de hoy = (el precio de cierre de hoy x la normalidad de la nivelación) + (EMA de ayer x la normalidad de la nivelación)

De ellos, el número de constantes lisas α = ((2/( número de ciclos + 1)) 。

La estrategia calcula los valores de EMA en tiempo real a través de la longitud de los ciclos que ingresa el usuario. Luego se compara el precio con el EMA y se juzga la intersección de los dos como una señal de compra y venta:

  1. Cuando el precio cae desde la parte superior hacia abajo y cae por debajo de la EMA, se genera una señal de venta y se realiza una operación de línea corta.

  2. Cuando el precio rompe la EMA desde abajo, se genera una señal de compra y se realiza una operación múltiple.

Esta estrategia traza las líneas EMA y las flechas que marcan las señales de compra y venta.

Análisis de las ventajas

La estrategia de cruce de la línea media de Galileo tiene las siguientes ventajas:

  1. La idea es simple, fácil de entender y de implementar, adecuada para los principiantes.
  2. El uso de EMA permite una respuesta más rápida a los cambios de precios.
  3. La intersección produce una señal clara, no hay compras y ventas frecuentes.
  4. Se puede ajustar el parámetro de la EMA para adaptarse a las diferentes condiciones del mercado.
  5. Las señales de entrada y salida son claras y los riesgos controlados.

Análisis de riesgos

La estrategia de la línea de cruce de Galileo también tiene los siguientes riesgos:

  1. Cuando los precios fluctúan fuertemente, se producen más señales falsas que afectan el efecto. Se puede configurar una estrategia de stop loss para optimizar.
  2. Los indicadores individuales son susceptibles a la falsificación y la falla de la señal. Se pueden agregar indicadores adicionales para optimizarlos.
  3. Existe un cierto grado de retraso, especialmente después de la aparición de un evento repentino. Se puede probar la reducción de los parámetros de la línea media.
  4. La inhabilidad de adaptarse a la unilateralidad de los precios a largo plazo es una de las desventajas comunes de la estrategia de la línea única.

Dirección de optimización

La estrategia de la cruz de la línea media de Galileo se puede optimizar en las siguientes direcciones:

  1. En combinación con otros indicadores, construir estrategias de combinación, evitar falsas señales, mejorar la estabilidad. Por ejemplo, agregar volumen de transacciones, indicadores de tendencias, etc.

  2. Aumentar las estrategias de stop loss, establecer un stop loss móvil o un stop loss porcentual y controlar las pérdidas individuales.

  3. Prueba el efecto de los diferentes parámetros de la EMA para seleccionar la combinación de parámetros más adecuada. También se pueden probar otros tipos de medias móviles.

  4. Evaluar la posibilidad de unirse a un mecanismo de reingreso para mejorar la tasa de ganancias al reincorporarse a la bolsa tras una reversión de precios.

Resumir

La estrategia de cruce de línea uniforme de Galileo es una estrategia de negociación sencilla, práctica, clara, fácil de operar, adecuada para los principiantes que cuantifican el comercio. Con la optimización y mejora continuas, se cree que su eficacia será cada vez mejor y es recomendable.

Código Fuente de la Estrategia
/*backtest
start: 2022-12-11 00:00:00
end: 2023-12-17 00:00:00
period: 1d
basePeriod: 1h
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/
// © armigoldman

//@version=3
strategy(title="Galileo Galilei", shorttitle="Galileo Galilei", overlay=true, initial_capital = 100000, default_qty_type=strategy.cash, default_qty_value = 100000)
len = input(11, minval=1, title="Length")
src = input(open, title="Source")
out = ema(src, len)
plot(out, title="EMA", color=yellow)
//last8h = highest(close, 8)
//lastl8 = lowest(close, 8)

//plot(last8h, color=red, linewidth=2)
//plot(lastl8, color=green, linewidth=2)

////////////////////////////////////////////////////////////////////////////////
// BACKTESTING RANGE

// From Date Inputs
fromDay = input(defval=1, title="From Day", minval=1, maxval=31)
fromMonth = input(defval=1, title="From Month", minval=1, maxval=12)
fromYear = input(defval=2020, title="From Year", minval=1970)

// To Date Inputs
toDay = input(defval=1, title="To Day", minval=1, maxval=31)
toMonth = input(defval=12, title="To Month", minval=1, maxval=12)
toYear = input(defval=2021, title="To Year", minval=1970)

// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true


bearish = cross(close, out) == 1 and close[1] > close
bullish = cross(close, out) == 1 and close[1] < close

plotshape(bearish, color=white, style=shape.arrowdown, text="BEAR", location=location.abovebar)
plotshape(bullish, color=white, style=shape.arrowup, text="BULL", location=location.belowbar)

buy = if cross(close, out) == 1 and close[1] < close
    strategy.entry("BUY", strategy.long, when=time_cond)
        //strategy.close_all(when=bearish)
        // strategy.exit("exit", "Long", profit =, loss = 35)


sell = if cross(close, out) == 1 and close[1] > close
    strategy.entry("SELL", strategy.short, when=time_cond)
        //sell = if bearish
        //strategy.close_all(when=bullish)
        // strategy.exit("exit", "Long", profit = bullish, loss = 100)

profit = strategy.netprofit
if not time_cond
    strategy.close_all()

//plotshape(true, style=shape.triangleup, location=location.abovebar)