Esta estratégia gera sinais de negociação quando o preço sai do canal de tendência ascendente/descendente formado pelo indicador SuperTrend.
A estratégia primeiro calcula o indicador ATR como uma medida da volatilidade dos preços, em seguida, combina-o com a média dos preços mais altos, mais baixos e de fechamento para calcular as faixas superior e inferior. Quando o preço quebra acima da faixa inferior durante uma tendência de alta, um sinal de compra é gerado. Quando o preço quebra abaixo da faixa superior durante uma tendência de baixa, um sinal de venda é acionado. Isso forma um canal de tendência de alta / baixa adaptativo que rastreia as tendências de preços.
Após entrar no mercado, a estratégia define os ticks de lucro alvo e os ticks de stop loss.
A maior vantagem desta estratégia é sua excelente capacidade de seguir tendências. O canal adaptativo pode capturar mudanças de tendência rapidamente. Usar ATR também fornece alguma garantia de negociação junto com o impulso. Além disso, o objetivo de lucro e o mecanismo de stop loss fornecem um controle claro de risco / recompensa.
Um grande risco é que ele possa gerar surpresas excessivas durante os mercados de intervalo, já que o preço constantemente atravessa as faixas.
Para reduzir esses riscos, parâmetros como o período ATR ou o multiplicador de canal podem ser otimizados para se adequar melhor à verdadeira tendência.
A estratégia pode ser reforçada em vários aspectos:
Otimizar os parâmetros do ATR para refletir melhor a dinâmica de volatilidade real.
Teste diferentes multiplicadores para otimização da largura do canal.
Adicionar outros indicadores como filtros nas entradas, por exemplo, MACD para melhor sincronização.
Otimizar os níveis de lucro alvo e stop loss para obter retornos ajustados ao risco.
Considere outros objetivos como a taxa de Sharpe ou o fator de lucro para avaliar a qualidade geral.
A estratégia aproveita o modelo de ruptura de canal adaptativo para alcançar uma grande capacidade de seguir tendências.
/*backtest start: 2024-02-26 00:00:00 end: 2024-02-26 20:20:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Supertrend Strategy", overlay=true) // Input parameters atr_length = input.int(10, title="ATR Length") multiplier = input.float(3.0, title="Multiplier") target_points = input.int(100, title="Target Points") stop_loss_points = input.int(50, title="Stop Loss Points") // Calculate ATR and Supertrend atr = ta.atr(atr_length) upper_band = hlc3 + (multiplier * atr) lower_band = hlc3 - (multiplier * atr) is_uptrend = close > lower_band is_downtrend = close < upper_band trend_changed = (is_uptrend[1] and is_downtrend) or (is_downtrend[1] and is_uptrend) // Strategy logic long_condition = is_uptrend and trend_changed short_condition = is_downtrend and trend_changed // Plot Supertrend plot(is_uptrend ? lower_band : na, color=color.green, title="Supertrend Up", style=plot.style_linebr) plot(is_downtrend ? upper_band : na, color=color.red, title="Supertrend Down", style=plot.style_linebr) // Strategy entry and exit if long_condition strategy.entry("Long", strategy.long) if short_condition strategy.entry("Short", strategy.short) // Calculate target and stop loss levels long_target = strategy.position_avg_price + target_points long_stop_loss = strategy.position_avg_price - stop_loss_points short_target = strategy.position_avg_price - target_points short_stop_loss = strategy.position_avg_price + stop_loss_points // Strategy exit strategy.exit("Long Exit", "Long", limit=long_target, stop=long_stop_loss) strategy.exit("Short Exit", "Short", limit=short_target, stop=short_stop_loss)