La estrategia se llama
El núcleo de la estrategia utiliza la función Change para determinar el cambio de dirección del indicador Supertrend para generar señales comerciales.
Al mismo tiempo, se introduce el indicador RSI para ayudar a determinar cuándo cerrar posiciones. Cuando el RSI rompe la línea de sobrecompra establecida, se cerrarán las posiciones largas; cuando el RSI rompe la línea de sobreventa establecida, se cerrarán las posiciones cortas. De esta manera, el RSI ayuda a determinar puntos de stop loss razonables para bloquear las ganancias.
Las principales ventajas de esta estrategia son las siguientes:
Supertrend es bueno para identificar cambios de tendencia del mercado para entradas largas y cortas precisas.
RSI sobresale en la localización de puntos de inflexión sobrecargados para ayudar a obtener ganancias razonables y detener pérdidas.
Los dos se complementan con fortalezas combinadas para una mejor captura de oportunidades y ganancias más constantes.
La lógica de la estrategia es simple y limpia para una fácil comprensión y seguimiento incluso para los inversores menos experimentados.
Implementación sólida con reducciones controlables y rentabilidad estable.
A pesar de tener esos méritos, hay algunos riesgos con la Estrategia de doble tracción:
Las señales incorrectas pueden ocurrir con Supertrend y RSI que conducen a pérdidas innecesarias.
El comercio bidireccional con mayores riesgos requiere normas más estrictas de gestión de dinero y control de riesgos.
El stop loss puede fallar con oscilaciones anormales de precios utilizando respaldos para controlar los riesgos.
Supertrend es sensible a los parámetros que requieren ajustes para diferentes mercados.
Teniendo en cuenta los riesgos, se pueden realizar optimizaciones en los siguientes aspectos:
Añadir volumen, MACD para filtrar señales adicionales y una entrada más precisa.
Configuración de un stop loss dinámico para reaccionar a eventos de riesgo.
Optimización de los parámetros de Supertrend y RSI para adaptarse mejor a los diferentes mercados.
Introducción del aprendizaje automático para la selección de parámetros e indicadores.
Aplicación de derivados como futuros y opciones para cubrir riesgos.
Reglas de posicionamiento variadas para limitar las pérdidas y los retiros.
La estrategia de doble impulso combina eficazmente Supertrend y RSI para capturar tendencias eficientes y obtener ganancias. En comparación con las estrategias de indicadores únicos, proporciona señales más confiables, reducciones más pequeñas y un rendimiento comercial de algoritmo estable.
/*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"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © alorse //@version=5 strategy("Supertrend + RSI Strategy [Alose]", overlay=true ) stGroup = 'Supertrend' atrPeriod = input(10, "ATR Length", group=stGroup) factor = input.float(3.0, "Factor", step = 0.01, group=stGroup) [_, direction] = ta.supertrend(factor, atrPeriod) // RSI rsiGroup = 'RSI' src = input(title='Source', defval=close, group=rsiGroup) lenRSI = input.int(14, title='Length', minval=1, group=rsiGroup) RSI = ta.rsi(src, lenRSI) // Strategy Conditions stratGroup = 'Strategy' showLong = input.bool(true, title='Long entries', group=stratGroup) showShort = input.bool(false, title='Short entries', group=stratGroup) RSIoverbought = input.int(72, title='Exit Long', minval=1, group=stratGroup, tooltip='The trade will close when the RSI crosses up this point.') RSIoversold = input.int(28, title='Exit Short', minval=1, group=stratGroup, tooltip='The trade will close when the RSI crosses below this point.') entryLong = ta.change(direction) < 0 exitLong = RSI > RSIoverbought or ta.change(direction) > 0 entryShort = ta.change(direction) > 0 exitShort = RSI < RSIoversold or ta.change(direction) < 0 if showLong strategy.entry("Long", strategy.long, when=entryLong) strategy.close("Long", when=exitLong) if showShort strategy.entry("Short", strategy.short, when=entryShort) strategy.close("Short", when=exitShort)