Esta estratégia é um projeto melhorado baseado nas idéias apresentadas por Andrew Abraham no artigo
A estratégia primeiro calcula a faixa média verdadeira nos últimos 21 dias como um limiar de referência, em seguida, calcula os preços mais altos e mais baixos nos últimos 21 dias, e define os limites superiores e inferiores do canal de acordo. O limite superior do canal é definido como o preço mais alto de 21 dias menos 3 vezes a faixa verdadeira média, e o limite inferior é definido como o preço mais baixo de 21 dias mais 3 vezes a faixa verdadeira média. Quando o preço de fechamento é superior ao limite superior do canal, é um sinal de pressão de venda; quando o preço de fechamento é inferior ao limite inferior do canal, é um sinal de compra. Para filtrar os falsos sinais, uma média exponencial de 21 períodos também é calculada, e um sinal de negociação real só é gerado quando o preço de fechamento atravessa os limites do canal na mesma direção que a média móvel original. Além disso, a estratégia também fornece um parâmetro de entrada inversa, que pode reverter as operações longas e curtas e inverter os parâmetros de entrada.
A maior vantagem desta estratégia é que ela pode rastrear dinamicamente as tendências de preços e gerar sinais de negociação de acordo. Em comparação com as estratégias de média móvel com parâmetros fixos, ela pode capturar melhor as tendências de mudança de preço. Além disso, o estabelecimento do canal incorpora o intervalo verdadeiro, evitando as deficiências de definir limites de canal baseados apenas nos preços mais altos e mais baixos. A faixa de flutuação dos limites superior e inferior do canal também é muito razoável, evitando falhas de ruptura em certa medida. A personalização do parâmetro inverso também aumenta a flexibilidade da estratégia.
Há dois riscos principais com esta estratégia: um é o risco de excesso de negociação causado pelo aumento dos sinais de negociação; o segundo é o risco que pode surgir de configurações incorretas de parâmetros. Como esta estratégia usa parâmetros dinâmicos, os sinais de negociação serão mais frequentes do que as estratégias tradicionais de média móvel, o que pode levar a um certo grau de risco de excesso de negociação. Além disso, se os parâmetros forem definidos incorretamente, como se o período de tempo for definido muito curto ou os valores limite do canal forem muito pequenos, os sinais falsos também aumentarão, aumentando assim o risco.
Para controlar os riscos, os parâmetros podem ser ajustados adequadamente selecionando períodos de tempo mais longos e relaxando moderadamente as restrições dos limites superior e inferior do canal.
A estratégia de otimização de parâmetros pode ser feita por meio de métodos de aprendizagem automática, como o RSI e o KD. Além disso, os valores ideais dos parâmetros podem diferir entre diferentes ações e ambientes de mercado. Portanto, também podemos considerar a formulação de um conjunto de mecanismos de otimização de parâmetros para selecionar dinamicamente os parâmetros ideais com base nas características de ações e mercado para melhorar a estabilidade da estratégia.
Em geral, esta é uma estratégia de rastreamento de tendências muito prática. Em comparação com as estratégias tradicionais de média móvel, é mais flexível e inteligente, e pode capturar dinamicamente as tendências de mudança de preço. Com ajuste adequado dos parâmetros, a qualidade de seus sinais de negociação é relativamente alta e pode gerar bons retornos. Espera-se que o desempenho desta estratégia possa ser melhorado através de otimizações subsequentes. Vale a pena verificar na negociação ao vivo e na aplicação.
/*backtest start: 2023-02-15 00:00:00 end: 2024-02-21 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 10/10/2018 // This is plots the indicator developed by Andrew Abraham // in the Trading the Trend article of TASC September 1998 // It was modified, result values wass averages. //////////////////////////////////////////////////////////// strategy(title="Trend Trader AVR Backtest", overlay = true) Length = input(21, minval=1), LengthMA = input(21, minval=1), Multiplier = input(3, minval=1) reverse = input(false, title="Trade reverse") avgTR = wma(atr(1), Length) highestC = highest(Length) lowestC = lowest(Length) hiLimit = highestC[1]-(avgTR[1] * Multiplier) loLimit = lowestC[1]+(avgTR[1] * Multiplier) ret = 0.0 ret := iff(close > hiLimit and close > loLimit, hiLimit, iff(close < loLimit and close < hiLimit, loLimit, nz(ret[1], 0))) nResMA = ema(ret, LengthMA) pos = 0 pos := iff(close < nResMA, -1, iff(close > nResMA, 1, nz(pos[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) barcolor(possig == -1 ? red: possig == 1 ? green : blue ) plot(nResMA, color= blue , title="Trend Trader AVR")