
Esta estrategia combina los dos indicadores técnicos de las medias móviles y el índice de fuerza relativa (RSI) para capturar las características periódicas estacionales y, por lo tanto, generar señales de negociación. La ventaja de esta estrategia es que se puede identificar con gran claridad el comportamiento estacional, pero también existe el riesgo de ser engañado por señales erróneas.
Esta estrategia primero calcula un promedio móvil de un período determinado n para capturar la dirección de la tendencia a medio y largo plazo de los precios. Luego calcula el indicador RSI de ese promedio móvil para determinar si se encuentra actualmente en un estado de sobrecompra o sobreventa. El RSI determina el estado de ánimo actual del mercado calculando el ratio de subidas y bajadas en un período determinado.
Cuando el RSI cruza la baja genera una señal de compra que indica que está actualmente sobrevendido y se puede comprar. Cuando el RSI cruza la baja genera una señal de venta que indica que está actualmente sobrevendido y se puede vender. Además, la estrategia también establece un rango de meses y fechas para negociar solo entre los meses y fechas especificados para capturar características estacionales.
Existe el riesgo de ser engañados por señales erróneas. Por ejemplo, un cambio de tendencia provocado por eventos inesperados no estacionales, que puede conducir a una señal de negociación inadecuada. La solución es ajustar el rango de fechas del mes para evitar el riesgo de posibles eventos.
Cuando se produce un giro de tendencia, la desviación entre la media móvil y el indicador RSI puede ocurrir, lo que hace que las señales de negociación sean inconsistentes. La solución es ajustar adecuadamente los parámetros de la media móvil, acortando el ciclo para capturar el giro de tendencia más rápidamente.
El rango de fechas del mes previsto puede estar desviado de la hora en que ocurren las estaciones reales. La solución es determinar un parámetro de rango de estaciones más preciso basado en pruebas de datos históricos.
La solución es establecer un rango de intervalos más amplio para evitar ser engañado por pequeñas oscilaciones.
Se pueden introducir otros indicadores auxiliares, como el índice de acciones convulsivas (STOCH), para establecer condiciones de filtrado más estrictas y reducir las señales erróneas.
Se pueden probar más combinaciones de parámetros diferentes para encontrar los parámetros óptimos para mejorar la eficacia de la estrategia. Por ejemplo, ajustar el ciclo de la media móvil, los parámetros de subida y bajada del RSI, etc.
Se puede utilizar el método de optimización progresiva para buscar automáticamente el espacio de parámetros para encontrar la combinación óptima de parámetros.
Se puede recopilar más datos históricos, utilizar métodos de aprendizaje automático para entrenar y optimizar las reglas de estrategia.
Se puede considerar la inclusión de estrategias de stop loss y optimización de la administración de fondos.
La estrategia utiliza un conjunto de medias móviles e indicadores RSI, y añade los factores estacionales para formar un sistema de identificación de tendencias más completo y sobrecompras y sobreventa. La ventaja de la estrategia es que se puede identificar con claridad la situación estacional y aprovechar las oportunidades de comercio.
/*backtest
start: 2023-09-26 00:00:00
end: 2023-10-26 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy(title = " RSI of MA Strategy ",shorttitle="MARSI Strategy",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,commission_type=strategy.commission.percent,commission_value=0.1,initial_capital=1)
lengthofma = input(15,minval=1,title="Length of MA")
len = input(14, minval=1, title="Length")
upperband = input(70,minval=1,title='Upper Band for RSI')
lowerband = input(30,minval=1,title="Lower Band for RSI")
src=sma(close,lengthofma)
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
plot(rsi, color=purple)
band1 = hline(upperband)
band0 = hline(lowerband)
fill(band1, band0, color=purple, transp=90)
longCond = crossover(rsi,lowerband)
shortCond = crossunder(rsi,upperband)
monthfrom =input(1)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)
if ( longCond )
strategy.entry("LONG", strategy.long, stop=close, oca_name="TREND", comment="LONG")
else
strategy.cancel(id="LONG")
if ( shortCond )
strategy.entry("SHORT", strategy.short,stop=close, oca_name="TREND", comment="SHORT")
else
strategy.cancel(id="SHORT")