A estratégia Dual SuperTrend é uma estratégia quantitativa de negociação que incorpora um sistema de canal duplo SuperTrend.
A estratégia Dual SuperTrend deriva do indicador SuperTrend. A SuperTrend consiste em bandas superiores e inferiores para determinar as tendências de preços e os principais níveis de suporte / resistência. A Dual SuperTrend constrói dois canais em cima dela: o canal de consolidação e o canal de quebra.
A estratégia primeiro calcula a faixa verdadeira e a faixa verdadeira média. Em seguida, calcula as bandas básicas com base nos parâmetros de comprimento e multiplicador. Em seguida, constrói o canal de quebra se o preço atravessar as bandas básicas. O sistema de dois canais é assim estabelecido.
No âmbito da estrutura de dois canais, os sinais de negociação são gerados quando o preço atravessa canais diferentes:
A monitorização por dois canais permite tanto a monitorização da tendência como a captura da inversão.
A estratégia Dual SuperTrend com o sistema de dois canais tem as seguintes vantagens:
A estratégia Dual SuperTrend apresenta igualmente os seguintes riscos:
Os riscos podem ser mitigados ajustando a gama de parâmetros, adicionando filtros, controlando o dimensionamento da posição, etc.
A estratégia Dual SuperTrend pode ser otimizada nos seguintes aspectos:
Outras otimizações podem melhorar o ajuste de parâmetros e a análise de avanço para um desempenho mais robusto.
A estratégia Dual SuperTrend aproveita o mecanismo de dois canais para seguir tendências e capturar reversões. Estratégias de negociação estáveis podem ser desenvolvidas através da otimização de parâmetros, mas existem limitações.
/*backtest start: 2022-11-08 00:00:00 end: 2023-11-14 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Double Supertrend Strategy", overlay=true) // Define your parameters length = input(10, title="Length") multiplier = input(3, title="Multiplier") // Calculate the True Range and Average True Range trueRange = max(high - low, max(abs(high - close[1]), abs(low - close[1]))) averageTrueRange = sma(trueRange, length) // Calculate the basic upper and lower bands basicUpperBand = hl2 + (multiplier * averageTrueRange) basicLowerBand = hl2 - (multiplier * averageTrueRange) // Calculate the final upper and lower bands finalUpperBand = basicUpperBand finalLowerBand = basicLowerBand finalUpperBand := close[1] > finalUpperBand[1] ? max(basicUpperBand, finalUpperBand[1]) : basicUpperBand finalLowerBand := close[1] < finalLowerBand[1] ? min(basicLowerBand, finalLowerBand[1]) : basicLowerBand // Determine if we're currently in an uptrend or downtrend uptrend = close > finalLowerBand[1] downtrend = close < finalUpperBand[1] // Plot the bands plot(uptrend ? finalUpperBand : na, color=color.green, linewidth=2) plot(downtrend ? finalLowerBand : na, color=color.red, linewidth=2) // Define your conditions for entering and exiting trades if (uptrend) strategy.entry("Buy", strategy.long) else if (downtrend) strategy.entry("Sell", strategy.short)