
O sistema de negociação de média móvel adaptável ao tangjian é uma estratégia de negociação quantitativa para rastrear tendências de preços. A estratégia usa o indicador de canal de tangjian, combinando a média móvel de linha longa e curta, para julgar e acompanhar a tendência de preços, para capturar a tendência de preços de linha média e longa, para negociar tendências.
A estratégia começa com o cálculo da amplitude real. A amplitude real é o intervalo de variação de preço entre o preço de fechamento da linha K anterior e o preço mais alto e mais baixo da linha K atual. Em seguida, calcula-se a média móvel simples da linha longa da amplitude real, como a largura de banda do canal de Dongxian.
Quando os preços são percorridos pela média móvel de comprimento mais a largura de banda e pela média móvel de curta distância mais a largura de banda, faça mais; quando os preços são percorridos pela média móvel de comprimento menos a largura de banda e pela média móvel de curta distância menos a largura de banda, faça vazio. Condição de equilíbrio para os preços abaixo da largura de banda aumenta a média móvel de comprimento e curta distância; quando os preços são percorridos pela média móvel de largura de banda aumenta a posição vazia.
Desta forma, a estratégia ajusta a largura de banda do canal de Dongguan através da amplitude real da onda e, combinada com a filtragem de duplas médias móveis, pode efetivamente acompanhar a tendência de preços de linha média e longa, reduzindo os falsos sinais e, assim, obter oportunidades de negociação de linha longa estáveis.
A estratégia tem as seguintes vantagens:
O canal de banda pode ser ajustado de forma dinâmica, evitando parâmetros de morte, utilizando o cálculo da amplitude de onda real, para melhor se adaptar às mudanças do mercado.
A dupla média móvel, combinada com o discernimento, pode filtrar o ruído de forma eficaz e reduzir os falsos sinais.
Seguir as tendências médias e longas pode reduzir a repetição de transações, reduzir a frequência de transações e obter oportunidades de lucro sustentado em longos períodos.
A lógica da estratégia é simples, clara e fácil de implementar, com alta tolerância a erros, adequada para negociações de quantificação automática.
A estratégia também traz alguns riscos:
A negociação de linha longa é difícil de entender o momento de entrada do ajuste da linha curta. Pode ser combinado adequadamente com indicadores de flutuação para determinar a situação da linha curta e otimizar a entrada.
Os parâmetros necessitam de otimização, dependendo do setor e do indivíduo.
Quando um evento inesperado causa uma mudança significativa na tendência, o ponto de parada precisa ser adequadamente relaxado.
Em geral, o sistema de negociação de médias móveis de Dongguan é uma estratégia de quantificação estável, simples e fácil de implementar. Utilizando canais dinâmicos e filtragem de dupla linha, a estratégia pode efetivamente acompanhar as tendências de longo prazo do mercado, reduzir a frequência de negociação e obter lucros contínuos em longo prazo.
/*backtest
start: 2023-02-14 00:00:00
end: 2024-02-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © dongyun
//@version=4
strategy("唐齐安移动平均交易系统", overlay=true)
longperiod = input(20,'长线')
shortperiod = input(5,'短线')
bandfactor = input(1.0,'')
TrueHigh = 0.0
TrueLow = 0.0
TrueRange = 0.0
TrueHigh := close[1] > high ? close[1] : high
TrueLow := close[1] < low ? close[1] : low
TrueRange := TrueHigh - TrueLow
AvgTrueRange = sma(TrueRange,longperiod)
MAlong = sma(close,longperiod)
MAshort = sma(close,shortperiod)
band = AvgTrueRange * bandfactor
if close > MAlong[1] + band[1] and close > MAshort[1] + band[1]
strategy.entry("Long", strategy.long, when=strategy.position_size < 1)
else
if close < MAlong[1] - band[1] and close < MAshort[1] - band[1]
strategy.entry("Short", strategy.short, when=strategy.position_size > -1)
if close < MAlong[1] - band[1] or close < MAshort[1] - band[1]
strategy.close("Long", when=strategy.position_size > 0)
else
if close > MAlong[1] + band[1] or close > MAshort[1] + band[1]
strategy.close("Short", when=strategy.position_size < 0)