Estratégia de supertendência baseada em ATR e trailing stop
Visão geral
Esta estratégia baseia-se no indicador de fluctuância média real (ATR) para projetar uma linha de stop loss móvel e uma linha de reversão. Ela segue a trailing stop loss, ou seja, ajusta a linha de stop loss de acordo com a mudança de preço.
Princípio da estratégia
A estratégia usa o indicador ATR para calcular a linha de parada. A fórmula específica é a seguinte:
pine
atr = multplierFactor * atr(barsBack)
longStop = hl2 - atr
shortStop = hl2 + atr
O MultiplierFactor é o coeficiente de amplificação do ATR, e o barBack é o número de ciclos do ATR. Quanto maior o ATR, maior é a flutuação do mercado.
Calcula-se a linha de perda de posição longa longStop e a linha de perda de posição curta shortStop com base no valor ATR. Quando o preço ultrapassa essas duas linhas, é emitido um sinal de negociação.
Além disso, a estratégia introduziu uma variável de direção para determinar a direção da tendência:
mylang
direction = 1
direction := nz(direction[1], direction)
direction := direction == -1 and close > shortStopPrev ? 1 : direction == 1 and close < longStopPrev ? -1 : direction
Se a direção for 1 significa que está em uma tendência multi-cabeça, e se a direção for -1 significa que está em uma tendência a cavalo.
De acordo com o valor da variável de direção, uma linha de perda de diferentes cores é desenhada:
mylang
if (direction == 1)
valueToPlot := longStop
colorToPlot := color.green
else
valueToPlot := shortStop
colorToPlot := color.red
Isso permite ver claramente a direção da tendência atual e a posição da linha de parada.
Mecanismos de rastreamento de perda
O ponto crucial da estratégia é a introdução de um mecanismo de tracking de stop loss, que pode ajustar a linha de stop loss em tempo real de acordo com a operação do preço.
A lógica é a seguinte:
mylang
strategyPercentege = (close - updatedEntryPrice) / updatedEntryPrice * 100.00
rideUpStopLoss = hasOpenTrade() and strategyPercentege > 1
if (rideUpStopLoss)
stopLossPercent := stopLossPercent + strategyPercentege - 1.0
newStopLossPrice = updatedEntryPrice + (updatedEntryPrice * stopLossPercent) / 100
stopLossPrice := max(stopLossPrice, newStopLossPrice)
updatedEntryPrice := stopLossPrice
Se o preço aumentar mais de 1% em relação ao preço de entrada, siga para cima para ajustar a linha de stop loss. A amplitude de ajuste é superior a 1%.
Isso permite que se consigam mais lucros e menos perdas.
Análise de vantagens
Em comparação com a tradicional estratégia de stop loss móvel, a maior vantagem desta estratégia é que a linha de stop loss pode ser ajustada dinamicamente de acordo com a situação do mercado. As vantagens específicas são as seguintes:
-
O objetivo é que os investidores possam ter um lucro mais alto em um mercado de tendências.
O mecanismo de rastreamento de stop loss permite que a linha de stop loss se mova continuamente em direção aos lucros, o que permite que os lucros sejam mais altos se o mercado continuar forte.
-
A redução de perdas de liquidação
A linha de perda móvel fixa pode ser facilmente ignorada quando a tendência do mercado muda. A linha de perda da estratégia é baseada na volatilidade do mercado e pode ser razoavelmente acompanhada pelas mudanças de preço, evitando que a perda seja ignorada durante a liquidação.
-
Operação simples e fácil de automatizar
A estratégia é totalmente baseada em indicadores e não tem uma lógica de discernimento de tendências complicada. A negociação automática pode ser implementada de forma muito simples.
-
Parâmetros personalizáveis para diferentes variedades
Parâmetros como o ciclo ATR, o fator de amplificação e a amplitude de parada podem ser personalizados e podem ser otimizados para diferentes variedades de parâmetros, tornando a estratégia mais universal.
Análise de Riscos
Embora a estratégia tenha muitos benefícios, há riscos a serem considerados:
-
Não é possível determinar o ponto de viragem da tendência, há risco de caça ou queda
A estratégia não determina a lógica do fim da tendência.
-
Parâmetros mal definidos podem aumentar a perda
Se os parâmetros do ciclo ATR forem muito curtos, a linha de parada será muito sensível e pode ser desencadeada por frequentes situações de tremor.
-
Há um risco de que a transcrição seja interrompida.
A estratégia não considera o ponto de classificação como um ponto de suporte de parada. Portanto, a linha curta também pode ser jogada fora do mercado quando ela rebenta.
Para os riscos acima mencionados, é possível otimizar os seguintes aspectos:
-
Indicadores de tendência combinados com os indicadores de ondas de tendência para determinar a reversão de tendência antecipada
-
Teste de otimização de parâmetros, seleção da combinação de parâmetros mais adequada
-
Ampliação do limiar de perda perto de um determinado suporte
Direção de otimização
A estratégia ainda tem espaço para ser melhorada:
-
Julgamento de forma combinado com a linha K
A probabilidade de uma reversão de tendência pode ser avaliada através da identificação de algumas formas típicas da linha K, tais como a curva de fundo, a estrela-foguete, etc. Isso evita o risco de uma queda de alta.
-
Parâmetros de rastreamento dinâmico optimizados
Os parâmetros como o ciclo ATR e o amplificador também podem ser modificados de forma dinâmica, usando um ciclo ATR mais longo e um alcance de suspensão mais amplo em mercados com grande volatilidade.
-
Combinação de modelos de aprendizagem de máquina
A LSTM, rnn e outros modelos de aprendizagem em profundidade são usados para prever os possíveis intervalos de preços no mercado de retalho e ajustar dinamicamente a distância de parada.
Resumir
Esta estratégia global usa o indicador ATR para projetar a linha de stop loss móvel e introduz um mecanismo de stop loss de rastreamento, que pode ajustar o stop loss em tempo real de acordo com as mudanças no mercado. Isso permite um maior bloqueio de lucro, além de reduzir o risco. Com uma otimização adicional, a estratégia pode ser mais adaptável a várias situações do mercado, tornando-se uma estratégia de negociação mais flexível.
/*backtest
start: 2022-11-21 00:00:00
end: 2023-11-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
// ------------------------------------------------------------------------------ 1

