La estrategia de tendencia del caimán del RSI se basa en la combinación del indicador del RSI y el indicador del caimán para determinar la entrada y salida de las tendencias. Utiliza tres líneas promedio móviles: la línea de la mandíbula del caimán, la línea del diente y la línea del labio, construidas por RSI de diferentes períodos. Se hace larga cuando la línea del diente cruza por encima de la línea del labio y la línea de la mandíbula del RSI es más alta que la línea del diente; se hace corta cuando la línea del diente cruza por debajo de la línea del labio y la línea de la mandíbula del RSI es más baja que la línea del diente. La estrategia también establece condiciones de stop loss y take profit.
La estrategia de tendencia del RSI Alligator construye las tres líneas del indicador Alligator utilizando el indicador RSI.
La lógica de la señal de entrada es:
Señales largas: cuando la línea del diente cruza por encima de la línea del labio y la línea de la mandíbula es más alta que la línea del diente, vaya largo.
Cuando la línea del diente se cruza por debajo de la línea del labio y la línea de la mandíbula es inferior a la línea del diente, corta.
La estrategia también establece las condiciones de stop loss y take profit:
La estrategia de tendencia del RSI Alligator tiene las siguientes fortalezas:
La estrategia RSI Alligator Trend también tiene los siguientes riesgos:
Los parámetros del ciclo pueden ajustarse para reducir la probabilidad de fallas.
La configuración de stop loss puede ser demasiado agresiva, con una alta probabilidad de stop loss innecesario.
Si el mercado se mueve violentamente, el stop loss puede no desempeñar su función adecuada de proteger el margen.
Cuando las posiciones largas y cortas cambian con frecuencia, la presión de los costes de negociación es mayor.
La estrategia de tendencia del RSI Alligator se puede optimizar en los siguientes aspectos:
Optimice la configuración de parámetros de línea de Alligator para encontrar la mejor combinación de parámetros
Optimice la lógica de la condición de entrada, como la adición de indicadores como el volumen de negociación para filtrar las señales
Optimizar las estrategias de toma de ganancias y stop loss para adaptarlas mejor a las condiciones del mercado y a los niveles de margen
Añadir mecanismos para hacer frente a eventos extremos y evitar la exposición a condiciones anormales de mercado
Añadir algoritmos de posición abierta para controlar la proporción de capital invertido en una operación única para mitigar los riesgos
En general, la estrategia de tendencia del RSI Alligator es una estrategia de seguimiento de tendencia confiable y fácil de usar. Utiliza el indicador Alligator para determinar la dirección de la tendencia, combinado con el indicador RSI para establecer umbrales de referencia, que pueden bloquear efectivamente la tendencia y establecer puntos de salida razonables. Al mismo tiempo, la estrategia en sí también tiene una fuerte flexibilidad y extensibilidad, lo que la hace útil para el comercio en vivo y la optimización posterior.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // @version=3 // RSI Alligator // Forked from Author: Reza Akhavan // Updated by Khalid Salomão strategy("RSI Alligator Strategy", overlay=false, pyramiding=0, default_qty_type=strategy.cash, default_qty_value=25000, initial_capital=25000, commission_type=strategy.commission.percent, commission_value=0.15, slippage=3) // === TA LOGIC === overBought = input(70, minval=0, maxval=100, title="Over bought") overSold = input(30, minval=0, maxval=100, title="Over sold") jawPeriods = input(5, minval=1, title="Jaw Periods") jawOffset = input(0, minval=0, title="Jaw Offset") teethPeriods = input(13, minval=1, title="Teeth Periods") teethOffset = input(0, minval=0, title="Teeth Offset") lipsPeriods = input(34, minval=1, title="Lips Periods") lipsOffset = input(0, minval=0, title="Lips Offset") jaws = rsi(close, jawPeriods) teeth = rsi(close, teethPeriods) lips = rsi(close, lipsPeriods) plot(jaws, color=green, offset=jawOffset, title="Jaw") plot(teeth, color=red, offset=teethOffset, title="Teeth") plot(lips, color=blue, offset=lipsOffset, title="Lips") // // === Signal logic === // LONG_SIGNAL_BOOLEAN = crossover(teeth, lips) and jaws > teeth SHORT_SIGNAL_BOOLEAN = crossunder(teeth, lips) and jaws < teeth // === INPUT BACKTEST DATE RANGE === strategyType = input(defval="Long Only", options=["Long & Short", "Long Only", "Short Only"]) FromMonth = input(defval = 7, 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 = 2017) ToMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 2020, title = "To Year", minval = 2017) start = timestamp(FromYear, FromMonth, FromDay, 00, 00) finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) window() => true // === STRATEGY BUY / SELL ENTRIES === // TODO: update the placeholder LONG_SIGNAL_BOOLEAN and SHORT_SIGNAL_BOOLEAN to signal // long and short entries buy() => window() and LONG_SIGNAL_BOOLEAN sell() => window() and SHORT_SIGNAL_BOOLEAN if buy() if (strategyType == "Short Only") strategy.close("Short") else strategy.entry("Long", strategy.long, comment="Long") if sell() if (strategyType == "Long Only") strategy.close("Long") else strategy.entry("Short", strategy.short, comment="Short") // === BACKTESTING: EXIT strategy === sl_inp = input(10, title='Stop Loss %', type=float)/100 tp_inp = input(90, title='Take Profit %', type=float)/100 stop_level = strategy.position_avg_price * (1 - sl_inp) take_level = strategy.position_avg_price * (1 + tp_inp) strategy.exit("Stop Loss/Profit", "Long", stop=stop_level, limit=take_level)