Estratégia de combinação de reversão de média móvel dupla e trailing stop ATR


Data de criação: 2024-01-26 11:26:40 última modificação: 2024-01-26 11:26:40
cópia: 0 Cliques: 725
1
focar em
1617
Seguidores

Estratégia de combinação de reversão de média móvel dupla e trailing stop ATR

Visão geral

A estratégia de reversão de dupla linha de equilíbrio com a combinação de ATR trailing stop é uma estratégia de negociação quantitativa muito prática. A estratégia usa primeiro o dead fork e o golden cross formados pela dupla linha de equilíbrio para julgar a tendência do mercado e o ponto de reversão.

Princípio da estratégia

Estratégia de inversão de dupla equilíbrio

A estratégia de inversão de linha dupla equilibrada usa o cruzamento da linha rápida e da linha lenta para determinar a tendência do mercado. Quando a linha rápida atravessa a linha lenta de cima para baixo, forma-se uma forca morta, indicando que o mercado muda de posição para baixo; Quando a linha rápida atravessa a linha lenta de baixo para cima, forma-se uma cruz dourada, indicando que o mercado muda de posição para baixo.

Especificamente, a estratégia escolhe a linha rápida do indicador STOCH de 9 dias como linha rápida e a EMA de 3 dias como linha lenta. Quando o fechamento é menor que o fechamento do dia anterior e a linha rápida é superior a 50 e o fechamento é aberto quando o fechamento é maior que o fechamento do dia anterior e a linha rápida é inferior a 50 e o fechamento é aberto quando o fechamento é menor.

ATR estratégia de trailing stop

A estratégia de ATR Trailing Stop usa a amplitude real média para definir o ponto de parada. O indicador ATR pode refletir efetivamente a volatilidade de curto prazo do mercado. A estratégia de trail stop é definida com base no valor do ATR, e o stop loss é retirado quando o movimento do preço se inverte.

Especificamente, a estratégia escolheu o ATR de 5 dias, com um ponto de parada de cerca de 3,5 vezes menos o ATR. Quando o preço atinge esse ponto de parada, a posição é parada.

Análise de vantagens

A combinação de uma estratégia de reversão de dupla linha de equilíbrio e uma parada de rastreamento de ATR combina as vantagens de uma estratégia de equilíbrio para determinar a tendência e a reversão, bem como as vantagens de uma estratégia de parada de rastreamento de ATR para controlar o risco, tornando-a uma estratégia muito prática.

Em particular, a estratégia tem as seguintes vantagens:

  1. O uso de um forco morto e um cruzamento dourado formado por duas linhas equilíneas para julgar o ponto de reversão da tendência do mercado, para julgar com precisão os sinais de reversão.

  2. Combinado com o indicador STOCH para confirmar sinais de inversão, evitar sinais errados.

  3. O ATR trailing stop é um ponto de parada flexível de acordo com as flutuações do mercado, para maximizar o lucro.

  4. A estratégia combina vários indicadores e métodos de análise técnica, que são usados em combinação para tornar a estratégia mais robusta.

  5. A estratégia é clara e fácil de entender, os parâmetros são ajustados com flexibilidade e são fáceis de operar no disco.

Análise de Riscos

Embora a estratégia tenha muitos benefícios, há alguns riscos a serem considerados:

  1. Os sinais gerados pela dupla linha de equilíbrio podem estar em atraso, não sendo possível comprar e vender com precisão antes e depois do ponto de reversão. Pode ser apropriadamente reduzido o ciclo de equilíbrio ou otimizado em combinação com outros indicadores.

  2. O indicador ATR não é sensível a grandes flutuações do mercado e não pode atualizar o ponto de parada em tempo hábil. Pode ser considerado um ajuste em combinação com o indicador de volume de movimento ou o indicador de taxa de flutuação.

  3. O uso de combinações de vários parâmetros e condições aumenta a complexidade da estratégia. Os parâmetros inadequados podem causar transações excessivamente radicais e aumentar o risco. Os parâmetros devem ser avaliados com cuidado e ajustados gradualmente.

Direção de otimização

De acordo com a análise de riscos acima, a estratégia pode ser otimizada em vários aspectos:

  1. Ajustar o parâmetro de ciclo de média e reduzir o ciclo para capturar oportunidades de reversão antecipadamente.

  2. A adição de outros indicadores para julgar o sinal de inversão, como MACD, KD, etc., forma uma confirmação múltipla.

  3. Ajuste dinâmico do ciclo ATR ou introduza a volatilidade do mercado, atualizando o ponto de parada em tempo real.

  4. Avaliar as diferenças entre o mercado de ações e o mercado de futuros, ajustando os parâmetros para que sejam mais adequados às características de ambos os mercados.

  5. Adicionar o custo de transação e os pontos de deslizamento à retrospectiva faz com que a estratégia se aproxime mais do ambiente de negociação em disco.

  6. Pode-se considerar a inclusão de modelos de aprendizagem de máquina para otimizar dinamicamente vários parâmetros.

Resumir

A estratégia de combinação de reversão de dupla equilíbrio e ATR trailing stop é uma estratégia de quantificação prática e eficiente. Combina a dupla vantagem de determinar a reversão de mercado de equilíbrio e o controle de risco de ATR setting trail stop. Ao mesmo tempo em que garante lucro, pode reduzir perdas desnecessárias.

Código-fonte da estratégia
/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 17/05/2019
// This is combo strategies for get 
// a cumulative signal. Result signal will return 1 if two strategies 
// is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Secon strategy
// Average True Range Trailing Stops Strategy, by Sylvain Vervoort 
// The related article is copyrighted material from Stocks & Commodities Jun 2009 
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos


ATR_TrailingStop(nATRPeriod, nATRMultip) =>
    xATR = atr(nATRPeriod)
    nLoss = nATRMultip * xATR
    pos = 0.0
    xATRTrailingStop = 0.0
    xATRTrailingStop := iff(close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), close - nLoss),
                         iff(close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), close + nLoss), 
                           iff(close > nz(xATRTrailingStop[1], 0), close - nLoss, close + nLoss)))
    pos := iff(close[1] < nz(xATRTrailingStop[1], 0) and close > nz(xATRTrailingStop[1], 0), 1,
    	     iff(close[1] > nz(xATRTrailingStop[1], 0) and close < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0))) 

    pos

strategy(title="Combo Backtest 123 Reversal & Average True Range Trailing Stops", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
nATRPeriod = input(5)
nATRMultip = input(3.5)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posATR_TrailingStop = ATR_TrailingStop(nATRPeriod, nATRMultip)
pos = iff(posReversal123 == 1 and posATR_TrailingStop == 1 , 1,
	   iff(posReversal123 == -1 and posATR_TrailingStop == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? red: possig == 1 ? green : blue )