RSI y tendencia cruzada de la media móvil siguiendo la estrategia

El autor:¿ Qué pasa?, Fecha: 2023-12-13 17:50:34
Las etiquetas:

img

Resumen general

Esta estrategia utiliza el indicador RSI y los promedios móviles rápidos / lentos para determinar los puntos de entrada y salida. Va largo cuando el RSI sube 5 puntos y está por debajo de 70; y cuando el MA de 9 días cruza por encima del MA de 50 días.

Estrategia lógica

La estrategia emplea principalmente una combinación del indicador RSI y promedios móviles. El indicador RSI muestra si una acción o criptomoneda está sobrecomprada o sobrevendida. Los valores por debajo de 30 se consideran sobrevendidos mientras que los valores por encima de 70 se consideran sobrecomprados.

Los promedios móviles se utilizan ampliamente para identificar la dirección de la tendencia. El promedio móvil rápido reacciona más rápidamente a los cambios de precio mientras que el MA lento filtra las roturas falsas. Cuando el MA rápido cruza por encima del MA lento, comienza una tendencia alcista. El opuesto indica una tendencia bajista. Esta estrategia utiliza los MA de 9 y 50 días y sus cruces para determinar la tendencia y las entradas / salidas.

Análisis de ventajas

La mayor ventaja de esta estrategia es el uso de RSI para evitar comprar a niveles de sobrecompra extrema y el uso de la combinación de MAs rápido / lento para filtrar las fallas y bloquear la dirección de la tendencia para una mayor rentabilidad.

La condición adicional de 5 puntos consecutivos de aumento del RSI evita compras innecesarias en zonas de sobrecompra. Además, el tamaño parcial de la posición reduce en gran medida los riesgos de pérdida por operación.

Riesgos y prevención

El mayor riesgo es el retraso de las señales de RSI y MAs durante los violentos cambios de precios, causando compras en las cimas o ventas en los fondos.

Para evitar esto, se utiliza un MA más rápido para detectar los cambios de precios más rápidamente y reducir el retraso.

Direcciones de optimización

Pistas de optimización posibles:

  1. Periodos de ensayo de la RSI para los parámetros óptimos

  2. Prueba más combinaciones de MA rápido/lento para una mejor filtración

  3. Optimizar el tamaño de la posición con diferentes parámetros

  4. Añadir condiciones de stop loss para bloquear las ganancias

Conclusión

En general, esta estrategia es adecuada para el comercio de tendencias. Evita áreas de sobrecompra / sobreventa con RSI y utiliza MAs rápidos / lentos para la detección de tendencias y soporte / resistencia. El tamaño parcial permite altas tasas de ganancia y rentabilidad.


/*backtest
start: 2023-11-12 00:00:00
end: 2023-12-12 00:00:00
period: 1h
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/
// © Coinrule

//@version=5
strategy("RSI with Slow and Fast MA Crossing Strategy (by Coinrule)",
         overlay=true,
         initial_capital=10000,
         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)






Más.