
Esta estrategia se basa en el diseño del indicador Relative Strength Index (RSI) para determinar el exceso de compra y venta mediante el indicador RSI, para lograr el seguimiento de la tendencia. Haga más cuando el RSI está por debajo de la línea de venta por encima de la línea de compra por encima de la línea de compra por encima de la línea de compra por encima de la RSI, para obtener ganancias mediante el seguimiento de la tendencia principal de la situación.
Esta estrategia utiliza el RSI para determinar si un mercado está sobrecomprando o sobrevendendo. El RSI se calcula en función de los altibajos en un período de tiempo determinado. Se considera sobrevendido cuando el RSI está por debajo de 30 y se considera sobrecomprado cuando el RSI está por encima de 70.
En concreto, esta estrategia primero define el parámetro de cálculo del RSI length=14, overBought=70, overSold=30. Luego calcula el valor del RSI vrsi en función del precio de cierre. Juzga si el vrsi está por encima de la línea de sobrecompra o por debajo de la línea de sobreventa.
De esta manera, la estrategia puede capturar las principales tendencias del mercado, comprar en los puntos de venta excesiva, vender en los puntos de venta excesiva, y hacer un seguimiento de tendencias.
La solución al riesgo:
Esta estrategia puede ser optimizada en los siguientes aspectos:
Se pueden probar diferentes longitudes de ciclo de cálculo del RSI, diferentes umbrales de sobreventa y sobreventa para encontrar el parámetro óptimo para reducir las señales erróneas.
Se puede agregar la línea media, MACD y otros indicadores para determinar la dirección de la tendencia, evitando la generación de señales erróneas en el punto de reversión de la tendencia.
Se puede establecer un punto de parada dinámico basado en indicadores como el ATR, para que el stop loss esté más cerca de la volatilidad del mercado.
Se pueden agregar otras condiciones sobre la base de la señal RSI, como romper un determinado nivel de precio, aumentar el volumen de operaciones, etc. como señal de entrada, para mejorar la precisión de la entrada.
Esta estrategia capta la tendencia mediante el indicador RSI para determinar la situación de sobrecompra y sobreventa. En comparación con la estrategia tradicional de seguimiento de stop-loss, tiene la ventaja de usar el indicador para determinar el tiempo del mercado. Sin embargo, el indicador RSI tiene un fenómeno de tracción y no puede determinar el punto de reversión de la tendencia, que es la dirección en la que esta estrategia necesita ser optimizada.
/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("RSI Etoro Strategy", overlay=true, max_bars_back=2000)
// To use:
// Capital = capital * leverage
// Slippage Ticks: 3, 5 ? (Mainly for spread)
// etoroStopTicks: Set it accordingly to the stock (to corresponds to etoro default of 50 % for exemple...)
// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 12, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2018, title = "From Year", minval = 1995)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 1995)
// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => time >= start and time <= finish ? true : false // create function "within window of time"
length = input( 14 )
overSold = input( 30 )
overBought = input( 70 )
etoroStopTicks = input( 120 )
// 120 because it is approximatively the number of ticks for default SL of 50% at x5 leverage for copper (no fee)...
price = close
vrsi = rsi(price, length)
if (not na(vrsi))
if (crossover(vrsi, overSold))
strategy.entry("RsiLE", strategy.long, comment="RsiLE", when = window())
if (crossunder(vrsi, overBought))
strategy.entry("RsiSE", strategy.short, comment="RsiSE", when = window())
strategy.exit("exit SE", "RsiSE", loss=etoroStopTicks, when = window())
strategy.exit("exit LE", "RsiLE", loss=etoroStopTicks, when = window())
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)