
A estratégia de negociação de super tendências é uma estratégia de acompanhamento de tendências baseada no real médio (ATR) e na média móvel (MA). Combina os benefícios do acompanhamento de tendências e da negociação de rupturas para identificar a direção da tendência a médio prazo e gerar sinais de negociação de acordo com a mudança de tendência.
A principal idéia da estratégia é que, quando o preço quebra o canal da supertrend, indica que a tendência está se reversando, sendo então feita uma compra ou venda. Simultaneamente, ele define níveis de stop loss e stop loss para bloquear o lucro e controlar o risco.
O processo de cálculo da estratégia de super-trends é dividido em várias etapas:
A vantagem desta estratégia é que ela combina a forma de negociação de seguir a tendência com a reversão da tendência. Ela pode determinar a direção da grande tendência e capturar oportunidades de reversão em tempo hábil. Além disso, ela também possui um mecanismo de parada de perda para controlar o risco.
A estratégia de super tendências tem as seguintes vantagens:
1. Seguir as tendências a médio prazo
O canal de tendências super é baseado em cálculos de ATR e é capaz de refletir efetivamente a amplitude de flutuação de preços a médio prazo. Ele é mais capaz de acompanhar as tendências a médio prazo do que a média móvel normal.
2. Capturar a reversão em tempo hábil
Quando o preço quebra um canal, ele emite um sinal de negociação rápido para capturar a reversão da grande tendência em tempo hábil. Isso garante um ajuste apropriado da posição e reduz a posse de longo prazo.
3. Mecanismos anti-destruição
Esta estratégia define simultaneamente o ponto de parada e o ponto de parada, o que permite a parada automática do ponto de parada. Isso reduz consideravelmente o risco de perda generalizada, o que ajuda a entender a tendência.
4. Simplicidade de implementação
A estratégia usa principalmente a linha média e o indicador ATR, o que torna a implementação mais simples e fácil de dominar. Isso reduz a dificuldade de operação no disco.
5. Eficiência na utilização dos recursos
A estratégia de super tendências acompanha a tendência de médio prazo e controla os pontos de deslizamento individuais, resultando em uma maior eficiência na utilização do capital.
A estratégia de super-trends também tem alguns riscos potenciais:
1. O alto custo de oportunidade de uma tendência de choque
A estratégia de super tendências foca no acompanhamento de tendências de médio e longo prazo, com custos mais elevados em mercados com agitação, podendo perder algumas oportunidades de curto prazo.
2. Parâmetros de otimização de influência
A escolha do ciclo ATR e do múltiplo ATR tem um impacto maior na eficácia da estratégia de negociação. Se os parâmetros forem mal configurados, o efeito do sinal de negociação será reduzido.
3. Há um certo atraso
O cálculo do canal de super-trend apresenta um certo atraso, o que pode levar a uma falta de tempo na geração de sinais. Este é o principal problema que a estratégia precisa resolver.
4. Necessidade de um controlo rigoroso dos danos.
Se a posição de parada for definida de forma excessiva ou se o controle de vento não for perfeito, pode ocorrer um grande prejuízo em situações extremas. Portanto, a estratégia de parada deve ser rigorosamente executada para obter um lucro estável.
A estratégia de super tendências também tem espaço para uma maior otimização, incluindo:
1. Combinação de múltiplos ciclos ATR
Pode-se combinar vários ciclos de ATR, por exemplo, 10 dias, 20 dias, para formar um indicador ATR combinado. Isso pode aumentar a sensibilidade do indicador e melhorar o problema do atraso.
2. Adição de módulo de estratégia de stop loss
Além disso, o aumento de módulos de estratégia, como a parada tripla, a parada de oscilação e a parada de sequência, pode fortalecer ainda mais o controle de parada, reduzindo assim o risco de perda.
3. Optimizar configurações de parâmetros
Otimizar a configuração de parâmetros, como o ciclo ATR, a multiplicação do ATR, a busca da combinação ideal de parâmetros, pode aumentar ainda mais o lucro da estratégia. Além disso, os parâmetros também podem ser otimizados dinamicamente, selecionando os valores apropriados de acordo com diferentes variedades e fases do mercado.
4. Modelos de aprendizagem de máquina integrados
Finalmente, pode-se tentar integrar modelos de aprendizagem de máquina para automatizar o julgamento de tendências e a geração de sinais. Isso pode reduzir a interferência de fatores subjetivos e potencialmente aumentar ainda mais a estabilidade do sistema de estratégia.
A estratégia de negociação de super tendências usa o indicador de linha média e o indicador ATR para avaliar a tendência intermédia e, ao inverter a tendência, gera um sinal de negociação para realizar um stop loss automático. Ao mesmo tempo em que capta a tendência maior, a estratégia também pode aproveitar em tempo útil algumas oportunidades de reversão. Sua vantagem se reflete principalmente nos três aspectos de acompanhamento de tendências intermédias, identificação de reversão de tendências e controle de stop loss.
Mas a estratégia também tem algumas deficiências, principalmente a falta de compreensão e atraso no cenário de choque. Isso requer otimização de várias maneiras, como o ciclo ATR combinado, o aumento do módulo de parada de perdas, a otimização de parâmetros e a introdução de aprendizado de máquina. Isso, sem dúvida, pode aumentar ainda mais a estabilidade e a taxa de ouro da estratégia de supertrend.
/*backtest
start: 2022-11-30 00:00:00
end: 2023-11-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Supertrend V1.0 - Buy or Sell Signal",overlay=true)
Factor=input(3, minval=1,maxval = 100)
Pd=input(7, minval=1,maxval = 100)
//Calculating ATR
atrLength = input(title="ATR Length:", defval=14, minval=1)
Stop_Loss_Factor = input(1.5, minval=0,step=0.01)
factor_profit = input(1.0, minval=0,step=0.01)
// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 4, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 10, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2016, title = "From Year", minval = 2009)
ToMonth = input(defval = 4, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 10, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 2039, title = "To Year", minval = 2017)
// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => time >= start and time <= finish ? true : false // create function "within window of time"
// Calculate ATR
atrValue=atr(atrLength)
decimals = abs(log(syminfo.mintick) / log(10))
Atr = atrValue
if(decimals == 5)
Atr := atrValue * 10000
if(decimals == 4)
Atr := atrValue * 1000
if(decimals == 3)
Atr := atrValue * 100
if(decimals == 2)
Atr := atrValue * 10
//VJ2 Supertrend
Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))
TrendUp = 0.0
TrendUp:=close[1]>TrendUp[1]? max(Up,TrendUp[1]) : Up
TrendDown = 0.0
TrendDown:=close[1]<TrendDown[1]? min(Dn,TrendDown[1]) : Dn
Trend = 0.0
Trend := close > TrendDown[1] ? 1: close< TrendUp[1]? -1: nz(Trend[1],1)
Tsl = 0.0
Tsl := Trend==1? TrendUp: TrendDown
linecolor = Trend == 1 ? green : red
plot(Tsl, color = linecolor , style = line , linewidth = 2,title = "SuperTrend")
plotshape(cross(close,Tsl) and close>Tsl , "Up Arrow", shape.triangleup,location.belowbar,green,0,0)
plotshape(cross(Tsl,close) and close<Tsl , "Down Arrow", shape.triangledown , location.abovebar, red,0,0)
//plot(Trend==1 and Trend[1]==-1,color = linecolor, style = circles, linewidth = 3,title="Trend")
plotarrow(Trend == 1 and Trend[1] == -1 ? Trend : na, title="Up Entry Arrow", colorup=lime, maxheight=60, minheight=50, transp=0)
plotarrow(Trend == -1 and Trend[1] == 1 ? Trend : na, title="Down Entry Arrow", colordown=red, maxheight=60, minheight=50, transp=0)
//Strategy
Trend_buy = Trend == 1
Trend_buy_prev = Trend[1] == -1
algo_buy_pre = Trend_buy and Trend_buy_prev
algo_buy = algo_buy_pre == 1 ? 1 : na
Trend_sell= Trend == -1
Trend_sell_prev = Trend[1] == 1
algo_sell_pre = Trend_sell and Trend_sell_prev
algo_sell = algo_sell_pre == 1 ? 1:na
strategy.entry("Long1", strategy.long, when= window() and algo_buy==1)
strategy.entry("Short1", strategy.short, when=window() and algo_sell==1)
bought = strategy.position_size > strategy.position_size
sold = strategy.position_size < strategy.position_size
longStop = Stop_Loss_Factor * valuewhen(bought, Atr, 0)
shortStop = Stop_Loss_Factor * valuewhen(sold, Atr, 0)
longProfit = factor_profit * longStop
shortProfit = factor_profit * shortStop
if(decimals == 5)
longStop := longStop *100000
longProfit := longProfit *100000
if(decimals == 4)
longStop := longStop * 10000
longProfit := longProfit * 10000
if(decimals == 3)
longStop := longStop * 1000
longProfit := longProfit * 1000
if(decimals == 2)
longStop := longStop * 100
longProfit := longProfit *100
if(decimals == 5)
shortStop := shortStop * 100000
shortProfit := shortProfit * 100000
if(decimals == 4)
shortStop := shortStop * 10000
shortProfit := shortProfit * 10000
if(decimals == 3)
shortStop := shortStop * 1000
shortProfit := shortProfit * 1000
if(decimals == 2)
shortStop := shortStop * 100
shortProfit := shortProfit * 100
strategy.exit("Exit Long", from_entry = "Long1", loss =longStop, profit = longProfit)
strategy.exit("Exit Short", from_entry = "Short1", loss =shortStop, profit = shortProfit)