A estratégia Supertrend Moving Stop Loss Take Profit é uma estratégia quantitativa de negociação baseada no indicador Supertrend. A estratégia constrói condições de entrada e saída longas e curtas para implementar stop loss e move take profit. A vantagem da estratégia é que pode alcançar lucros mais altos em tendências sustentadas, enquanto bloqueia a maioria dos lucros através de move take profit. No entanto, a estratégia também é sensível a falhas de ruptura.
Esta estratégia é uma estratégia de tendência baseada no indicador Supertrend. O indicador Supertrend pode determinar a direção da tendência do preço. Ele gera sinais de compra e venda quando a linha Supertrend cruza a linha 0. Especificamente, um sinal de compra é gerado quando a linha Supertrend cruza acima da linha 0, um sinal de venda é gerado quando a linha cruza abaixo da linha 0. A relação entre o preço de fechamento e o preço de fechamento do dia anterior determina o ponto de lucro móvel. ATR determina o ponto de stop loss. Assim, uma estratégia de stop loss de lucro móvel é construída com base no indicador Supertrend para determinar a direção da tendência.
A maior vantagem desta estratégia é a combinação de identificação de tendências e movimentação de lucros. O indicador Supertrend pode capturar tendências com bastante precisão através de cruzamento de linhas zero. Movimentação de lucros permite bloquear a maioria dos lucros enquanto a tendência persiste. A configuração de stop loss também ajuda a controlar os riscos. Assim, a estratégia pode alcançar lucros mais altos em mercados de tendências óbvias. Além disso, a lógica simples e clara também é uma vantagem da estratégia.
O maior risco desta estratégia é sua sensibilidade a falhas de ruptura. Em períodos de faixa, o indicador Supertrend pode gerar falhas que resultam em posições erroneamente estabelecidas. Isso pode facilmente levar a ser pego em armadilhas. Além disso, o mecanismo de lucro móvel pode sair de posições muito cedo, perdendo movimentos subsequentes. Finalmente, configurações de stop loss inadequadas também podem ser muito soltas ou muito agressivas, aumentando os riscos. Assim, essas são áreas contra as quais a estratégia precisa se proteger.
A estratégia pode ser otimizada a partir dos seguintes aspectos: 1) Determinar razoavelmente os parâmetros da Supertrend para evitar falsos sinais; 2) Adicionar mecanismos para julgar a confiabilidade da ruptura, como sinais de volume; 3) Otimizar os parâmetros de movimentação de lucro para reduzir a possibilidade de fenda, garantindo a lucratividade; 4) Usar paradas dinâmicas baseadas em volatilidade em vez de paradas estáticas; 5) Adicionar outros indicadores para estratégias de conjunto para melhorar a robustez.
Em geral, a estratégia Supertrend Moving Stop Loss Take Profit é uma estratégia decente de tendência. Ela pode determinar razoavelmente a direção da tendência e tem um mecanismo de lucro movido. Mas também é sensível a quebras inválidas e tem alguns riscos. A otimização adicional de parâmetros, regras de julgamento, mecanismos de parada etc. pode melhorar a estratégia e torná-la uma estratégia de negociação estável e eficiente.
/*backtest start: 2023-01-01 00:00:00 end: 2024-01-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("ST Michael Moving TP", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=15) // Stop loss and profit amount stop_loss = input(1500, title="Stop Loss Amount") profit = input (15000, title="Profit Amount") LongTrailProfit = input (0.91, title = "Long Trailing Profit Taking") ShortTrailProfit = input (1.01, title = "Short Trailing Profit Taking") atrPeriod = input(10, "ATR Length") factor = input.float(3.0, "Factor", step = 0.01) [_, direction] = ta.supertrend(factor, atrPeriod) long_condition = ta.change(direction) <0 short_condition = ta.change(direction) >0 stop_price_long = ta.valuewhen(long_condition, low[0]-stop_loss,0) profit_price_long = ta.valuewhen(long_condition, high[0]+profit,0) stop_price_short = ta.valuewhen(short_condition, high[0]+stop_loss,0) profit_price_short = ta.valuewhen(short_condition, low[0]-profit,0) atr=ta.atr(10) intrade_long = strategy.position_size > 0 intrade_short = strategy.position_size < 0 exitConditionLong = (close < (close[1]*LongTrailProfit)) exitConditionShort = (close > (close[1]*ShortTrailProfit)) if (long_condition) strategy.entry("Long3", strategy.long) if (intrade_long and exitConditionLong) strategy.close("Long3") if (short_condition) strategy.entry("Short3", strategy.short) if (intrade_short and exitConditionShort) strategy.close ("Short3") if (strategy.position_size>0) strategy.exit("exit_long",from_entry="Long3",limit=profit_price_long,stop=stop_price_long) if (strategy.position_size<0) strategy.exit("exit_short",from_entry="Short3",limit=profit_price_short,stop=stop_price_short)