A estratégia é um sistema de trading de rastreamento de tendências baseado em cruzes de médias multicirculares. Utiliza quatro médias móveis de diferentes ciclos para identificar tendências de mercado e gera sinais de negociação quando as médias de curto prazo e médias de médio prazo se cruzam. A estratégia também inclui um mecanismo de gerenciamento de risco para controlar o risco de queda através da configuração de stop-loss.
O princípio central da estratégia é usar o cruzamento de várias médias móveis para determinar a mudança de tendência do mercado.
Este design aproveita a sensibilidade do mediano curto (MA1) para as mudanças no mercado, ao mesmo tempo em que identifica a tendência geral através do mediano médio (MA2) e do mediano longo (MA4), reduzindo assim o risco de falha de ruptura.
Forte capacidade de rastreamento de tendências: através da cooperação de várias linhas uniformes, é possível capturar efetivamente as tendências de mercado de médio e longo prazo, reduzindo o impacto das volatilidades de curto prazo.
Gestão de riscos: mecanismos de stop loss dinâmicos são implementados para ajudar a controlar o nível de risco de cada transação.
Alta flexibilidade: a política permite que os usuários personalizem o tipo e os parâmetros da linha uniforme, que podem ser otimizados de acordo com diferentes mercados e variedades de transações.
Boa visualização: através de linhas uniformes e marcas de fundo de diferentes cores, os traders podem observar intuitivamente o estado do mercado e os sinais de negociação.
Forte adaptabilidade: pode ser aplicado em vários ciclos de tempo e variedades de transações, com uma ampla aplicabilidade.
Alto grau de automação: as estratégias podem ser executadas de forma totalmente automatizada, reduzindo a interferência emocional humana.
Retraso: A média móvel é essencialmente um indicador de retraso e pode causar um retraso maior no início da reversão da tendência.
Os mercados turbulentos não são adequados: em mercados turbulentos transversais, a interseção frequente de medias pode resultar em excesso de negociação e perdas contínuas.
Risco de falha de ruptura: Apesar da confirmação de múltiplas linhas médias, ainda pode haver falsos sinais em oscilações de curta duração.
A configuração de stop loss pode ser muito rígida: usar o preço mais alto / mais baixo do ponto de entrada como stop loss pode levar a um stop loss prematuro em mercados mais voláteis.
O que é mais importante, é que a maioria das pessoas não tem a menor idéia do que é o mercado e não tem a menor idéia do que é o mercado.
Sensibilidade aos parâmetros: diferentes parâmetros da linha média podem resultar em resultados significativamente diferentes, existindo o risco de excesso de adequação.
Introdução de stop loss dinâmicos: pode-se considerar o uso do ATR para definir uma posição de stop loss mais razoável para adaptar-se às mudanças da volatilidade do mercado.
Aumentar o filtro de intensidade da tendência: introduzir indicadores como o ADX (indicador de tendência médio) para medir a intensidade da tendência e abrir apenas em mercados com forte tendência.
Considerar fatores de volume de transações: usar o volume de transações como condição de confirmação do sinal de negociação para aumentar a confiabilidade do sinal.
Otimizar o tempo de entrada: pode esperar um determinado período de confirmação após o cruzamento da linha média, ou combinar com outros indicadores técnicos (como o RSI) para otimizar o ponto de entrada.
Junte-se a um ponto de parada móvel: Configure um ponto de parada de rastreamento para obter mais lucros se a tendência continuar.
Adaptação de parâmetros: considere o uso de métodos de adaptação de parâmetros, como o ciclo equilátero de ajustes dinâmicos baseados na volatilidade do mercado.
Combinado com análise fundamental: ajustar o comportamento estratégico durante o lançamento de dados econômicos importantes ou eventos especiais para responder a potenciais flutuações anormais.
A estratégia de rastreamento de tendências cruzadas de linhas uniformes multicirculares é um método de negociação quantitativo clássico e eficaz. Através de uma combinação de linhas uniformes múltiplas, ela capta tendências de médio e longo prazo e também filtra, em certa medida, o ruído de curto prazo. A principal vantagem da estratégia é sua sensibilidade às tendências e a integridade do gerenciamento de riscos.
A direção de otimização do futuro deve concentrar-se em melhorar a qualidade do sinal, melhorar o gerenciamento de riscos e a adaptabilidade de estratégias reforçadas. Construir um sistema de negociação mais abrangente e mais robusto pode ser feito através da introdução de mais indicadores técnicos e fatores de mercado. Ao mesmo tempo, a otimização de parâmetros de estratégia e o mecanismo de adaptação também são fundamentais para melhorar o desempenho.
No geral, a estratégia fornece uma estrutura sólida para o seguimento de tendências. Com a otimização e melhoria contínuas, ela tem potencial para se tornar um sistema de negociação automatizado e eficiente e confiável. No entanto, os investidores ainda precisam avaliar o ambiente do mercado com cuidado ao usar a estratégia e fazer os ajustes apropriados de acordo com as preferências de risco individuais e objetivos de investimento.
//@version=5 strategy("Moving Average Ribbon with Orders", shorttitle="MA Ribbon Orders", overlay=true) // Hàm tính toán các loại MA ma(source, length, type) => type == "SMA" ? ta.sma(source, length) : type == "EMA" ? ta.ema(source, length) : type == "SMMA (RMA)" ? ta.rma(source, length) : type == "WMA" ? ta.wma(source, length) : type == "VWMA" ? ta.vwma(source, length) : na // MA1 show_ma1 = input(true , "MA №1", inline="MA #1") ma1_type = input.string("SMA" , "" , inline="MA #1", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"]) ma1_source = input(close , "" , inline="MA #1") ma1_length = input.int(20 , "" , inline="MA #1", minval=1) ma1_color = input(color.new(color.yellow, 0), "" , inline="MA #1") ma1 = ma(ma1_source, ma1_length, ma1_type) plot(show_ma1 ? ma1 : na, color = ma1_color, title="MA №1") // MA2 show_ma2 = input(true , "MA №2", inline="MA #2") ma2_type = input.string("SMA" , "" , inline="MA #2", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"]) ma2_source = input(close , "" , inline="MA #2") ma2_length = input.int(50 , "" , inline="MA #2", minval=1) ma2_color = input(color.new(color.orange, 0), "" , inline="MA #2") ma2 = ma(ma2_source, ma2_length, ma2_type) plot(show_ma2 ? ma2 : na, color = ma2_color, title="MA №2") // MA3 show_ma3 = input(true , "MA №3", inline="MA #3") ma3_type = input.string("SMA" , "" , inline="MA #3", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"]) ma3_source = input(close , "" , inline="MA #3") ma3_length = input.int(100 , "" , inline="MA #3", minval=1) ma3_color = input(color.new(color.red, 0), "" , inline="MA #3") ma3 = ma(ma3_source, ma3_length, ma3_type) plot(show_ma3 ? ma3 : na, color = ma3_color, title="MA №3") // MA4 show_ma4 = input(true , "MA №4", inline="MA #4") ma4_type = input.string("SMA" , "" , inline="MA #4", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"]) ma4_source = input(close , "" , inline="MA #4") ma4_length = input.int(200 , "" , inline="MA #4", minval=1) ma4_color = input(color.new(color.maroon, 0), "" , inline="MA #4") ma4 = ma(ma4_source, ma4_length, ma4_type) plot(show_ma4 ? ma4 : na, color = ma4_color, title="MA №4") // Điều kiện điểm MUA và BAN buy_signal = ta.crossover(ma1, ma2) and close > ma4 sell_signal = ta.crossunder(ma1, ma2) and close < ma4 // Vẽ các điểm MUA và BAN plotshape(series=buy_signal, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal", text="MUA") plotshape(series=sell_signal, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal", text="BAN") // Quản lý trạng thái lệnh var float entry_price_long = na var float stop_price_long = na var float entry_price_short = na var float stop_price_short = na if (buy_signal) entry_price_long := close stop_price_long := low strategy.entry("Long", strategy.long) if (sell_signal) entry_price_short := close stop_price_short := high strategy.entry("Short", strategy.short) // Điều kiện thoát lệnh exit_condition_long = ta.crossunder(ma1, ma2) or close < stop_price_long exit_condition_short = ta.crossover(ma1, ma2) or close > stop_price_short if (exit_condition_long) strategy.exit("Exit Long", "Long", stop=stop_price_long) strategy.close("Long") if (exit_condition_short) strategy.exit("Exit Short", "Short", stop=stop_price_short) strategy.close("Short") // Vẽ vùng MUA và BAN var float buy_price = na var float sell_price = na if (buy_signal) buy_price := close if (sell_signal) sell_price := close bgcolor(buy_price and na(sell_price) ? color.new(color.green, 90) : na) bgcolor(sell_price and na(buy_price) ? color.new(color.red, 90) : na)