
Esta estrategia se basa en un índice relativamente fuerte y débil (RSI) y diseñó una estrategia de inversión cuantitativa para el trading del índice Nifty. Esta estrategia utiliza el indicador RSI para identificar oportunidades de sobreventa y sobreventa, para lograr una venta baja y una venta alta, y buscar ganancias adicionales.
La estrategia establece el RSI de 2 días como señal de negociación. Hacer más cuando el RSI pasa por encima de 20 y cerrar cuando el RSI pasa por debajo de 70 para capturar oportunidades de ajuste a corto plazo del índice.
Cuando el RSI está por debajo de 20, es un estado de sobreventa, lo que significa que el activo está infravalorado, lo que indica un rebote inminente; cuando el RSI está por encima de 20, hace más; cuando el RSI está por encima de 70, es un estado de sobrecompra, lo que significa que el activo está sobrevalorado, lo que indica una corrección inminente; cuando el RSI está por debajo de 70, se libra.
Se trata de una estrategia cuantitativa que utiliza indicadores para identificar oportunidades de sobreventa y sobrecompra a corto plazo. La ventaja de esta estrategia frente a las estrategias de arbitraje estadístico y de aprendizaje automático es que:
El principal riesgo de esta estrategia es:
Para controlar los riesgos mencionados, se puede optimizar en los siguientes aspectos:
La estrategia se puede optimizar principalmente en los siguientes aspectos:
Esta estrategia se basa en el indicador RSI para diseñar una estrategia de negociación a corto plazo, que utiliza la señal de sobrecompra y sobreventa del indicador RSI para realizar compras bajas y compras altas, buscando ganancias excedentes. El principio de la estrategia es simple y fácil de implementar, pero existe un cierto grado de frecuencia de negociación, no puede identificar tendencias a largo plazo, etc. En el futuro, se pueden mejorar desde la optimización de los parámetros RSI, el aumento del mecanismo de stop loss, la combinación de juicios de tendencias, etc., para que la estrategia sea más estable y confiable.
/*backtest
start: 2023-01-18 00:00:00
end: 2024-01-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("RSI Strategy", overlay=true,pyramiding = 1000)
rsi_period = 2
rsi_lower = 20
rsi_upper = 70
rsi_value = rsi(close, rsi_period)
buy_signal = crossover(rsi_value, rsi_lower)
sell_signal = crossunder(rsi_value, rsi_upper)
current_date1 = input(defval=timestamp("01 Nov 2009 00:00 +0000"), title="stary Time", group="Time Settings")
current_date = input(defval=timestamp("01 Nov 2023 00:00 +0000"), title="End Time", group="Time Settings")
investment_amount = 100000.0
start_time = input(defval=timestamp("01 Dec 2018 00:00 +0000"), title="Start Time", group="Time Settings")
end_time = input(defval=timestamp("30 Nov 2023 00:00 +0000"), title="End Time", group="Time Settings")
in_time = time >= start_time and time <= end_time
// Variable to track accumulation.
var accumulation = 0.0
out_time = time >= end_time
if (buy_signal )
strategy.entry("long",strategy.long,qty= 1)
accumulation += 1
if (out_time)
strategy.close(id="long")
plotshape(series=buy_signal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup)
plotshape(series=sell_signal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown)
plot(rsi_value, title="RSI", color=color.blue)
hline(rsi_lower, title="Lower Level", color=color.red)
plot(strategy.opentrades, style=plot.style_columns,
color=#2300a1, title="Profit first entry")
plot(strategy.openprofit, style=plot.style_line,
color=#147a00, title="Profit first entry")
// plot(strategy.position_avg_price, style=plot.style_columns,
// color=#ca0303, title="Profit first entry")
// log.info(strategy.position_size * strategy.position_avg_price)