Esta es una tendencia intradiaria a corto plazo siguiendo la estrategia basada en el indicador Supertrend.
La estrategia invierte la posición utilizando una cantidad doble cuando cambia la señal.
Calcular el indicador Supertrend basado en el multiplicador definido por el usuario y el período ATR.
Trace la línea de Supertrend como soporte y resistencia.
Determine las condiciones largo/corto. Cerrar por encima de la línea de Supertrend es una condición larga. Cerrar por debajo de la línea de Supertrend es una condición corta.
Compruebe si la barra actual se encuentra dentro de la sesión intradiaria definida por el usuario.
Emitir señales largas/cortas sólo cuando la sesión intradiaria esté activa y se cumplan las condiciones largas/cortas.
Posición inversa tomando el comercio opuesto con la cantidad doble cuando la dirección de la Supertrend cambia.
Cuadrar las posiciones abiertas cuando la dirección de la Supertrend no cambie y finalice la sesión intradiaria.
Supertrend identifica la tendencia y reduce las señales falsas.
La combinación de Supertrend con el precio cerrado evita ser detenido prematuramente.
Invertir la posición a tiempo reduce las pérdidas.
La sesión intradiaria evita el riesgo durante la noche.
La salida forzada evita el riesgo de olvidarse de cuadrar.
Los parámetros de Supertrend incorrectos pueden llevar a un mal rendimiento de la estrategia.
La inversión de la posición aumenta la frecuencia y los costos del comercio.
La salida forzada al final de la sesión puede llevar a pérdidas.
El riesgo 1 puede mitigarse mediante la optimización de parámetros.
El riesgo 2 se puede controlar mediante el stop loss.
El riesgo 3 se puede evitar utilizando el filtro stop loss o el filtro de tendencia.
Prueba diferentes indicadores de tendencia como MA, KDJ, etc.
Agregue la lógica de stop loss.
Añadir filtro de tendencia para evitar pérdidas de salida forzada.
Optimizar los parámetros del multiplicador y del período ATR.
Prueba en diferentes instrumentos.
Esta estrategia combina Supertrend y gestión de sesiones intradiarias para capitalizar las rupturas de tendencia a corto plazo. La inversión de posición y la salida forzada controlan eficazmente el riesgo. Se pueden realizar mejoras adicionales a través de la optimización de parámetros, stop loss y filtro de tendencias.
/*backtest start: 2023-08-18 00:00:00 end: 2023-09-17 00:00:00 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/ // © Pritesh-StocksDeveloper //@version=4 strategy("Supertrend - Intraday", overlay=true, calc_on_every_tick = true) // ********** Strategy inputs - Start ********** // Used for intraday handling // Session value should be from market start to the time you want to square-off // your intraday strategy // Important: The end time should be at least 2 minutes before the intraday // square-off time set by your broker var i_marketSession = input(title="Market session", type=input.session, defval="0915-1455", confirm=true) var float i_multiplier = input(title = "Multiplier", type = input.float, defval = 4, confirm=true) var int i_atrPeriod = input(title = "ATR Period", type = input.integer, defval = 14, confirm=true) // ********** Strategy inputs - End ********** // ********** Supporting functions - Start ********** // A function to check whether the bar or period is in intraday session barInSession(sess) => time(timeframe.period, sess) != 0 // ********** Supporting functions - End ********** // ********** Strategy - Start ********** [superTrend, dir] = supertrend(i_multiplier, i_atrPeriod) colResistance = dir == 1 and dir == dir[1] ? color.new(color.red, 0) : color.new(color.red, 100) colSupport = dir == -1 and dir == dir[1] ? color.new(color.green, 0) : color.new(color.green, 100) plot(superTrend, color = colResistance, linewidth=2) plot(superTrend, color = colSupport, linewidth=2) // Long/short condition longCondition = close > superTrend shortCondition = close < superTrend // See if intraday session is active bool intradaySession = barInSession(i_marketSession) // Trade only if intraday session is active // Long position // When longCondition and intradaySession both are true strategy.entry(id = "Long", long = strategy.long, when = longCondition and intradaySession) // Short position // When shortCondition and intradaySession both are true strategy.entry(id = "Short", long = strategy.short, when = shortCondition and intradaySession) // Square-off position (when session is over and position is open) squareOff = (not intradaySession) and (strategy.position_size != 0) strategy.close_all(when = squareOff, comment = "Square-off") // ********** Strategy - End **********