
Esta estratégia mostra o que pode acontecer se seguirmos o indicador de tendência ultra cegamente. Sabemos que o indicador de tendência ultra não surge imediatamente e precisamos esperar a próxima linha K para decidir se entraremos em posição. Então, você pode ver o que pode acontecer se entrarmos apenas depois que o indicador de tendência ultra for finalmente formado.
Esta estratégia usa o indicador de tendência ultra para determinar a tendência de preços. O indicador de tendência ultra é construído com base na amplitude real média e no ponto médio de alta e baixa.
Quando o preço de fechamento é superior ao traçado superior, representa um aumento contínuo; quando o preço de fechamento é inferior ao traçado inferior, representa um declínio contínuo.
Esta estratégia define dois parâmetros, Factor e Pd. Factor controla a largura do canal de tendência ultrapassada, Pd controla o comprimento do ciclo de cálculo do ATR. De acordo com esses dois parâmetros, pode-se construir um carril superior e um carril inferior.
Fórmula de rotação: hl2 - (Factor * ATR ((Pd)) Fórmula da trajectória inferior: hl2 + (Factor * ATR ((Pd))
O HL2 representa o ponto médio de alta e baixa.
Em seguida, comparar o preço de fechamento atual com a subida e descida, para determinar se a tendência de alta ou baixa continuou, e produzir uma variável de tendência de tipo bullish.
Mapear os trajectos ascendentes e descendentes de super-trend de acordo com a tendência. Colocar sinais de entrada e saída quando a tendência muda.
A lógica de abertura de posição de acordo com a estratégia de configuração do sinal.
A estratégia tem as seguintes vantagens:
O indicador de hipertrend é usado para determinar claramente as tendências de preços e os pontos centrais.
A lógica de entrada e saída é clara.
Visualizar a hora de entrada através de uma seta.
A lógica da estratégia é simples e fácil de entender.
A estratégia apresenta os seguintes riscos:
Seguir cegamente os indicadores de ultra-tendência, sem outros indicadores auxiliares e gestão de efeitos, pode levar a um grande recuo.
Não há parâmetros para o controle de perdas individuais.
O sinal pode ser atrasado e não pode ser acessado a tempo perto do ponto de viragem.
A configuração incorreta dos parâmetros pode fazer com que os canais de tendência ultra sejam muito amplos ou muito estreitos.
Medidas de gestão de riscos:
Verificar a eficácia em combinação com outros indicadores, como MACD, KDJ, etc., evitando o acompanhamento cego.
Estabeleça um limite razoável de stop loss para controlar o máximo possível a perda individual.
Ajustar os parâmetros para racionalizar o canal de ultra-tendência e evitar que ele fique muito largo ou estreito.
Esta estratégia pode ser melhorada em:
Adicionar indicadores auxiliares para a validação de eficácia, para evitar falhas. Por exemplo, pode ser considerado a inclusão de indicadores MACD.
Configure uma lógica de stop loss razoável. Pode-se configurar o stop loss percentual com base no ATR.
Factor e Pd são otimizados para encontrar a melhor combinação de parâmetros. Por exemplo, é possível encontrar o parâmetro ótimo usando um método de roteamento.
Otimizar o tempo de entrada para evitar o atraso do sinal. Por exemplo, pode-se introduzir um indicador de força para determinar o padrão de força e fraqueza para ajustar o tempo de entrada.
Aumentar a estratégia de gerenciamento de posições. Por exemplo, pode-se adotar ações fixas para gerenciamento de posições.
Esta estratégia usa indicadores de tendência ultra para determinar a tendência dos preços e identificar os pontos de inflexão. A falta de indicadores auxiliares e meios de parada de perdas traz um grande risco de seguir cegamente os indicadores de tendência ultra.
/*backtest
start: 2022-12-06 00:00:00
end: 2023-12-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Supertrend blind follow", overlay=true)
Factor=input(3, minval=1,maxval = 100)
Pd=input(7, minval=1,maxval = 100)
Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))
TrendUp=close[1]>TrendUp[1]? max(Up,TrendUp[1]) : Up
TrendDown=close[1]<TrendDown[1]? min(Dn,TrendDown[1]) : Dn
Trend = close > TrendDown[1] ? 1: close< TrendUp[1]? -1: nz(Trend[1],1)
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)
longCondition = cross(close,Tsl) and close>Tsl
if (longCondition)
strategy.entry("long", strategy.long)
shortCondition = cross(Tsl,close) and close<Tsl
if (shortCondition)
strategy.entry("short", strategy.short)