
Visão geral
A “estratégia de ruptura de atraso de dupla linha de equilíbrio” é uma estratégia de negociação de análise técnica comumente usada. A estratégia combina a média móvel simples (SMA) e a amplitude real média (ATR) de dois indicadores de diferentes períodos, com o objetivo de capturar pontos de mudança de tendência de mercado e realizar negociações de alto rendimento de baixo risco.
Princípio da estratégia
Os principais princípios da estratégia são os seguintes:
- Calcule uma média móvel simples (SMA) de dois períodos diferentes, com períodos padrão de 14 e 50, respectivamente.
- Calcule o indicador ATR, usado para medir a volatilidade do mercado, com um período padrão de 14 anos.
- Trace o ATR para cima e para baixo, como um intervalo de referência para a oscilação dos preços. O traço superior é obtido pelo preço mais alto mais o ATR multiplicado por um múltiplo (default 1.5) e o traço inferior é obtido pelo preço mais baixo menos o ATR multiplicado por um múltiplo.
- Quando o preço de fechamento atravessa a média curta e a média curta está acima da média de longo prazo, um sinal de multiplicação é gerado e uma seta ascendente é traçada abaixo da linha K.
- Quando o preço de fechamento atravessa a média curta abaixo e a média curta abaixo da média longa, um sinal de curto prazo é gerado e uma seta para baixo é traçada acima da linha K.
- Configure o stop loss e o stop loss, o stop loss é o preço mínimo menos o ATR multiplicado por um múltiplo, o stop loss é o preço de abertura mais o preço de abertura - o stop loss multiplicado por 2 vezes.
A partir dos princípios acima, pode-se ver que a estratégia combina o julgamento de tendências do sistema equilíneo e a medição da taxa de flutuação do indicador ATR, com o acompanhamento de tendências, enquanto controla o risco de retração, é uma estratégia de tendência.
Análise de vantagens
A “estratégia de ruptura de atraso de dupla linha de equilíbrio” tem as seguintes vantagens:
- Seguimento de tendências: julgar a direção da tendência através de um sistema de linha uniforme, capturar grandes tendências de mercado e seguir o mercado.
- Controle de risco: Use o indicador ATR para medir a volatilidade do mercado, estabeleça um limite de perda razoável e controle de retração dentro de limites aceitáveis.
- Flexibilidade de parâmetros: os parâmetros como o ciclo da linha média, o ciclo ATR e o múltiplo podem ser otimizados e ajustados de acordo com diferentes mercados e variedades, com uma certa universalidade.
- Intuitivo: Os sinais de negociação são simples e claros, adequados para todos os níveis de investidores.
Análise de Riscos
A estratégia, apesar de ter algumas vantagens, apresenta os seguintes riscos:
- Negociação Frequente: Quando o mercado está muito flutuante e a tendência não é clara, a estratégia pode gerar sinais de negociação frequentes, aumentando os custos de negociação.
- Atraso: O sistema de linha uniforme tem um certo atraso na natureza, e pode haver um certo recuo no início da mudança de mercado.
- Optimização de parâmetros: Diferentes configurações de parâmetros têm um grande impacto no desempenho da estratégia, exigindo otimização de parâmetros para diferentes mercados e variedades, aumentando a dificuldade de implementação.
Os riscos acima podem ser otimizados e melhorados nos seguintes aspectos:
- Introdução de filtros de tendência: antes de gerar um sinal de negociação, determine a direção da tendência do grande ciclo e negocie apenas quando a tendência do grande ciclo é clara, reduzindo a frequência de negociação.
- Optimizar o stop loss: pode ser considerado a introdução de stop loss dinâmico, como stop loss móvel, stop loss de volatilidade, e ajustar o stop loss de acordo com a dinâmica da volatilidade do mercado, aumentando a flexibilidade da estratégia.
- Combinação: Combina a estratégia com outros indicadores técnicos ou fatores fundamentais para aumentar a robustez da estratégia.
Direção de otimização
A estratégia pode ser melhorada em vários aspectos:
- Optimização de auto-adaptação de parâmetros: busca automática do melhor conjunto de parâmetros para diferentes variedades e períodos, reduzindo a quantidade de trabalho de configuração de parâmetros artificiais. Pode ser otimizado por métodos como algoritmos genéticos, pesquisa de grelha.
- Filtragem de sinais: após a geração de sinais de negociação, é possível introduzir outros indicadores técnicos ou fatores fundamentais para a segunda confirmação do sinal, melhorando a qualidade do sinal. Por exemplo, adicionar indicadores de volume de transação, para determinar a força da tendência; Adicionar dados macroeconômicos, para determinar se o ambiente geral é favorável à continuação da tendência.
- Gerenciamento de posições: ao abrir uma posição, pode-se ajustar o tamanho da posição de forma dinâmica, de acordo com a volatilidade do mercado, o risco da conta, etc., para controlar o risco de uma única transação. Por exemplo, a utilização da fórmula de Kelly, o método de proporção fixa e outros métodos de gestão de posições.
- Parar móvel: o ponto de parada inicial é fixo e, à medida que o preço se move na direção favorável, pode-se considerar mover o ponto de parada também na direção favorável, reduzindo a retirada e aumentando a eficiência do uso de fundos.
A otimização acima pode melhorar a adaptabilidade, a robustez e a lucratividade da estratégia, mas é importante notar que a otimização excessiva pode levar à adaptação da curva da estratégia, com um mau desempenho fora da amostra, portanto, é necessário fazer uma verificação de feedback adequada dentro e fora da amostra.
Resumir
A “estratégia de ruptura de atraso de dupla linha de equilíbrio” é uma estratégia clássica de rastreamento de tendência, que determina a direção da tendência através de um sistema de equilíbrio, usa o ATR para controlar o risco e, ao mesmo tempo, controla o gerenciamento de risco ao capturar a tendência. Apesar de existirem alguns problemas de atraso e frequência de negociação, a otimização do stop loss, a introdução de filtragem de sinal, a adaptação de parâmetros, a otimização e o gerenciamento de posição podem melhorar ainda mais o desempenho da estratégia, tornando-a uma estratégia de negociação quantitativa prática.
Código-fonte da estratégia
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="2 Moving Averages", shorttitle="2MA", overlay=true)
// Moving Averages
len = input(14, minval=1, title="Length MA1")
src = input(close, title="Source MA1")
ma1 = sma(src, len)
len2 = input(50, minval=1, title="Length MA2")
src2 = input(close, title="Source MA2")
ma2 = sma(src2, len2)
// Plotting Moving Averages
plot(ma1, color=#0b6ce5, title="MA1")
plot(ma2, color=#00ff80, linewidth=2, title="MA2")
// ATR Bands
atrLength = input(14, title="ATR Length")
atrMultiplier = input(1.5, title="ATR Multiplier")
upperBand = high + atr(atrLength) * atrMultiplier
lowerBand = low - atr(atrLength) * atrMultiplier
u =plot(upperBand, color=color.rgb(217, 220, 223, 84), title="ATR Upper Band")
l = plot(lowerBand, color=color.rgb(217, 220, 223, 84), title="ATR Lower Band")
fill(u, l, color=#471eb821, title="ATR Background")
// Conditions for plotting arrows
upArrowCondition = ma1 > ma2 and crossover(close, ma1)
downArrowCondition = ma1 < ma2 and crossunder(close, ma1)
// Plotting arrows
plotshape(upArrowCondition, style=shape.arrowup, color=color.rgb(66, 45, 255), size=size.normal, location=location.belowbar, title="Up Arrow")
plotshape(downArrowCondition, style=shape.arrowdown, color=color.red, size=size.normal, location=location.abovebar, title="Down Arrow")
// Checkbox for trade execution
showTrades = input(true, title="Hiển thị giao dịch")
// Buy Condition
if (upArrowCondition and showTrades)
strategy.entry("Buy", strategy.long)
// Sell Condition
if (downArrowCondition and showTrades)
strategy.entry("Sell", strategy.short)
// Stop Loss and Take Profit
stopLossBuy = low - atr(14) * atrMultiplier
takeProfitBuy = close + (close - stopLossBuy) * 2
stopLossSell = high + atr(14) * atrMultiplier
takeProfitSell = close - (stopLossSell - close) * 2
strategy.exit("Exit Buy", "Buy", stop=stopLossBuy, limit=takeProfitBuy)
strategy.exit("Exit Sell", "Sell", stop=stopLossSell, limit=takeProfitSell)