Estrategia de cruce de impulso


Fecha de creación: 2023-12-27 17:04:33 Última modificación: 2023-12-27 17:04:33
Copiar: 0 Número de Visitas: 595
1
Seguir
1623
Seguidores

Estrategia de cruce de impulso

Descripción general

La estrategia de cruce de indicadores de momento es una estrategia de negociación que combina la media móvil exponencial (EMA) y la señal del índice de fuerza relativa (RSI). La estrategia tiene como objetivo aprovechar el cruce de las dos líneas de EMA para generar señales de compra y venta para negociar en los mercados financieros.

Principio de estrategia

El núcleo de la estrategia es el sistema de cruce de líneas rápido y lento de EMA. La estrategia define tres líneas EMA con diferentes parámetros:ema1ema2yema3¿Cuál es la diferencia entre los dos?ema1La mayoría de las personas no tienen acceso a internet.ema2La tendencia a mediano plazo es la siguiente:ema3Representa la tendencia a largo plazo. Cuando la tendencia a corto plazo cruza la tendencia intermedia, genera una señal de compra; cuando la tendencia a corto plazo cruza la tendencia intermedia, genera una señal de venta.

La política también define dos condiciones adicionales para filtrar señales de diagnóstico erróneo:bodybar1 > bodybar2yclose > entrybar(Señales de compra) oclose < entrybarEsto asegura que las relaciones de longitud de las dos líneas K más cercanas coincidan con la dirección de la señal y que el precio rompa el punto de entrada para evitar la repetición.

Además, la estrategia se combina con el indicador RSI evalue, donde las áreas altas del RSI se utilizan para definir señales de sobreventa y las áreas bajas del RSI se utilizan para definir señales de sobreventa. Esto ayuda a evitar señales erróneas en mercados con precios demasiado calientes y demasiado fríos.

Análisis de las ventajas

La estrategia tiene las siguientes ventajas:

  1. Su uso es sencillo y fácil, y no requiere el conocimiento de indicadores complejos.
  2. El tamaño de la posición se puede ajustar de forma flexible en función del porcentaje de capital invertido.
  3. El EMA cruza con el filtro RSI para mejorar la fiabilidad de la señal.
  4. La lógica de la transacción es clara, fácil de entender y ajustar.

Análisis de riesgos

La estrategia también tiene los siguientes riesgos:

  1. Los cruces EMA no filtran completamente el ruido del mercado y son propensos a generar falsas señales.
  2. Las líneas EMA de parámetros fijos no pueden adaptarse a los cambios del mercado en tiempo real.
  3. No hay lógica de stop loss, no hay control de pérdidas individuales.
  4. El RSI tiene una sola condición de filtrado, y puede perder algunas oportunidades.

Dirección de optimización

La estrategia puede ser optimizada en las siguientes direcciones:

  1. La configuración de los parámetros de EMA se adapta a la volatilidad del mercado y al tipo de transacción, lo que mejora la actualidad de los parámetros.
  2. En combinación con otros indicadores como el MACD, la banda de Brin y otros, se realiza una filtración múltiple para reducir las señales falsas.
  3. Aumentar el seguimiento de las pérdidas y los beneficios, y controlar el riesgo de las transacciones.
  4. Optimización de la lógica de filtración del RSI para mejorar la estabilidad general de la estrategia.
  5. Parámetros de estrategias de optimización dinámica en combinación con tecnología de aprendizaje automático.

Resumir

La estrategia de cruce de indicadores dinámicos integra las ventajas de la EMA y el RSI para formar señales de negociación basadas en cruces de indicadores. La estrategia es sencilla y práctica, adecuada para principiantes, pero también puede ampliarse y optimizarse según las necesidades reales para mejorar la eficacia de la estrategia.

Código Fuente de la Estrategia
/*backtest
start: 2022-12-20 00:00:00
end: 2023-12-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('EMA Crossover Strategy', shorttitle='EMA Crossover', overlay=true)


// Define input for position size as a percentage of equity
position_size_pct = input(1, title='Position Size (%)') / 100

//Input EMA
len1 = input.int(25, minval=1, title='EMA 1')
src1 = input(close, title='Source')
ema1 = ta.ema(src1, len1)
len2 = input.int(100, minval=1, title='EMA 2')
src2 = input(close, title='Source')
ema2 = ta.ema(src2, len2)
len3 = input.int(200, minval=1, title='EMA 3')
src3 = input(close, title='Source')
ema3 = ta.ema(src3, len3)
//End of format

//Format RSI
lenrsi = input(14, title='RSI length')
outrsi = ta.rsi(close,lenrsi)
//plot(outrsi, title='RSI', color=color.new(color.blue, 0), linewidth=1)

//hline(70, 'Overbought', color=color.red)
//hline(30, 'Oversold', color=color.green)
//End of format


bodybar1 = math.abs(close - open)
bodybar2 = math.abs(close[1] - open[1])
// Plot the EMAs
plot(ema1, color=color.new(color.blue, 0), title='EMA 1')
plot(ema2, color=color.new(color.red, 0), title='EMA 2')
//plot(ema3, color=color.new(#ffffff, 0), title='EMA 3')

// EMA Crossover conditions
emaCrossoverUp = ta.crossover(ema1, ema2)
emaCrossoverDown = ta.crossunder(ema1, ema2)

var entrybar = close  // Initialize entrybar with the current close


// Calculate crossovers outside of the if statements
emaCrossoverUpOccured = ta.crossover(close, ema1) and ema1 > ema2 and bodybar1 > bodybar2 and close > entrybar
emaCrossoverDownOccured = ta.crossunder(close, ema1) and ema1 < ema2 and bodybar1 > bodybar2 and close < entrybar

plotshape(series=emaCrossoverUpOccured, location=location.abovebar, color=color.new(color.green, 0), style=shape.triangleup, title='New Buy Order', size=size.tiny)
plotshape(series=emaCrossoverDownOccured, location=location.belowbar, color=color.new(color.red, 0), style=shape.triangledown, title='New Sell Order', size=size.tiny)

// Define trading logic with custom position size and RSI conditions
if emaCrossoverUp or emaCrossoverUpOccured
    strategy.entry('Buy', strategy.long)
    entrybar := close  // Update entrybar when entering a new buy position
    entrybar

if emaCrossoverDown or emaCrossoverDownOccured
    strategy.entry('Sell', strategy.short)
    entrybar := close  // Update entrybar when entering a new sell position
    entrybar