Estrategia de trading cuantitativo que combina el cruce de medias móviles dobles y el indicador RSI


Fecha de creación: 2023-11-21 12:09:50 Última modificación: 2023-11-21 12:09:50
Copiar: 0 Número de Visitas: 669
1
Seguir
1617
Seguidores

Estrategia de trading cuantitativo que combina el cruce de medias móviles dobles y el indicador RSI

Descripción general

Esta estrategia utiliza el cruce de la línea de paridad para determinar la dirección de la tendencia, mientras que el indicador de RSI se utiliza para evitar el exceso de la parte superior del mercado y la pérdida de la parte inferior del mercado para obtener mejores ganancias.

Principio de estrategia

Cuando la línea media rápida de 9 períodos atraviesa la línea media lenta de 50 períodos, la subida de la tendencia a corto plazo se superpone a la subida de la tendencia a largo plazo, y es una señal típica de múltiples cabezas. Al mismo tiempo, si el indicador RSI es mayor a los 5 puntos del ciclo anterior y menor a 70, indica que está en la zona anterior a la sobrecompra.

Cuando la línea media rápida de 9 ciclos cruza la línea media lenta de 50 ciclos, significa que está en el mercado de cabeza vacía y necesita una posición en blanco.

Análisis de las ventajas

  • Utilice el cruce de dos líneas iguales para determinar las tendencias y evitar ser engañado por las falsas brechas
  • El indicador RSI evita tomar decisiones equivocadas en los momentos de cambio de mercado
  • Se puede ajustar el ciclo de la línea media con flexibilidad para adaptarse a diferentes variedades y dimensiones de tiempo
  • Estrategias de pérdidas controladas

Análisis de riesgos

  • La toma de decisiones en el cruce de líneas medias puede ser ineficaz y generar pérdidas.
  • La configuración incorrecta de los parámetros de RSI puede causar la pérdida de la mejor hora de entrada
  • La preocupación es si el volumen de transacciones apoyará los precios.
  • El comportamiento irracional provocado por un incidente requiere intervención manual.

Dirección de optimización

  • Optimizar los parámetros del RSI para obtener los mejores resultados
  • Evita las señales falsas en combinación con el indicador de volumen de transacciones
  • Parámetros de la línea media óptima para pruebas en diferentes variedades y dimensiones de tiempo
  • Relajación adecuada del margen de pérdidas para evitar que se bloquee

Resumir

Esta estrategia permite obtener ganancias estables mediante la determinación de la dirección de los cruces de dos líneas medias y evitar el seguimiento de las tendencias altas y bajas del RSI. Sin embargo, también es necesario estar atento a la latencia de la señal de cruce de la línea mediana y el ajuste de los parámetros del RSI, al tiempo que se presta atención a la relación entre el precio y el volumen de transacciones.

Código Fuente de la Estrategia
/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 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/
// © joshuajcoop01

//@version=5
strategy("Bitpanda Coinrule Template",
         overlay=true,
         initial_capital=1000,
         process_orders_on_close=true,
         default_qty_type=strategy.percent_of_equity,
         default_qty_value=30,
         commission_type=strategy.commission.percent,
         commission_value=0.1)

showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2020, 1, 1, 0, 0)
notInTrade = strategy.position_size <= 0


// RSI
length = input(14)
vrsi = ta.rsi(close, length)

// Moving  Averages for Buy Condition
buyFastEMA = ta.ema(close, 9)
buySlowEMA = ta.ema(close, 50)
buyCondition1 = ta.crossover(buyFastEMA, buySlowEMA)


increase = 5
if ((vrsi > vrsi[1]+increase) and buyCondition1 and vrsi < 70 and timePeriod)
    strategy.entry("Long", strategy.long)


// Moving  Averages for Sell Condition
sellFastEMA = ta.ema(close, 9)
sellSlowEMA = ta.ema(close, 50)
plot(request.security(syminfo.tickerid, "60", sellFastEMA), color = color.blue)
plot(request.security(syminfo.tickerid, "60", sellSlowEMA), color = color.green)


condition = ta.crossover(sellSlowEMA, sellFastEMA)
//sellCondition1 = request.security(syminfo.tickerid, "60", condition)

strategy.close('Long', when = condition and timePeriod)