Trata-se de uma tendência intradiária de curto prazo seguindo uma estratégia baseada no indicador Supertrend. Os utilizadores podem definir a sessão de negociação intradiária durante a qual a estratégia será executada.
A estratégia inverte a posição usando a quantidade dupla quando o sinal muda.
Calcular o indicador Supertrend com base no multiplicador definido pelo utilizador e no período ATR.
Trace a linha Supertrend como o suporte e a resistência.
Determine condições longas/cortas. Fechar acima da linha Supertrend é uma condição longa. Fechar abaixo da linha Supertrend é uma condição curta.
Verifique se a barra atual está dentro da sessão intradiária definida pelo utilizador.
Emissão de sinais long/short apenas quando a sessão intradiária estiver ativa e estiverem preenchidas as condições long/short.
Posição inversa tomando o comércio oposto com quantidade dupla quando a direção da Supertrend muda.
Quadrar as posições abertas quando a direção da Supertrend não for alterada e a sessão intradiária terminar.
Supertrend identifica tendência e reduz sinais falsos.
Combinando Supertrend com preço próximo evita ser interrompido prematuramente.
Reverter a posição em tempo hábil reduz as perdas.
A sessão intradiária evita o risco da noite.
A saída forçada evita o risco de se esquecerem de marcar.
Parâmetros de Supertrend inadequados podem levar a um mau desempenho da estratégia.
A reversão da posição aumenta a frequência e os custos do comércio.
A saída forçada no final da sessão pode levar a perdas.
O risco 1 pode ser atenuado através da otimização de parâmetros.
O risco 2 pode ser controlado através de stop loss.
O risco 3 pode ser evitado utilizando o filtro de stop loss ou de tendência.
Teste diferentes indicadores de tendência, como MA, KDJ, etc.
Adicione a lógica de stop loss.
Adicionar filtro de tendência para evitar perdas de saída forçada.
Otimizar os parâmetros do multiplicador e do período ATR.
Teste em diferentes instrumentos.
Esta estratégia combina Supertrend e gerenciamento de sessões intradiárias para capitalizar as quebras de tendência de curto prazo.
/*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 **********