
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.
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.
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.
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:
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.
Combinado com o indicador STOCH para confirmar sinais de inversão, evitar sinais errados.
O ATR trailing stop é um ponto de parada flexível de acordo com as flutuações do mercado, para maximizar o lucro.
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.
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.
Embora a estratégia tenha muitos benefícios, há alguns riscos a serem considerados:
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.
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.
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.
De acordo com a análise de riscos acima, a estratégia pode ser otimizada em vários aspectos:
Ajustar o parâmetro de ciclo de média e reduzir o ciclo para capturar oportunidades de reversão antecipadamente.
A adição de outros indicadores para julgar o sinal de inversão, como MACD, KD, etc., forma uma confirmação múltipla.
Ajuste dinâmico do ciclo ATR ou introduza a volatilidade do mercado, atualizando o ponto de parada em tempo real.
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.
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.
Pode-se considerar a inclusão de modelos de aprendizagem de máquina para otimizar dinamicamente vários parâmetros.
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.
/*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 )