
A estratégia de cruzamento de canais de adaptação entre a média móvel tripla e a média móvel tripla é um sistema de negociação quantitativa que combina o EMA (Média Móvel Indicativa) e o RMA (Média Móvel Relativa) de curto período. A estratégia usa o indicador ATR (Amplitude Real de Ondas) para construir canais de preços e identificar os sinais de entrada por meio da captura do comportamento de ruptura dos preços nesses canais. A estratégia possui um mecanismo de gerenciamento de risco embutido, que calcula o tamanho da posição com uma proporção de risco fixa e usa o preço de abertura como ponto de parada, além de projetar um mecanismo de liquidação baseado no preço de abertura do período anterior, formando um sistema de negociação completo.
A lógica central da estratégia baseia-se na combinação de dois conjuntos de médias com seus canais ATR:
Sistema de canalização da EMA:
Sistema de passagem RMA:
Condições de disparo do sinal:
Gestão de posições:
Mecanismos de stop loss e de liquidação:
Responder rapidamente às mudanças do mercadoA estratégia é capaz de capturar rapidamente os movimentos de preços e entrar na tendência em tempo hábil.
Mecanismo de dupla confirmaçãoOs dois sistemas EMA e RMA trabalham em conjunto, e a confiabilidade da transação é significativamente melhorada quando ambos emitem sinais na mesma direção.
Ajuste de taxa de flutuação: Ajustar a largura do canal através do indicador ATR, a estratégia pode ajustar a sensibilidade automaticamente em diferentes ambientes de flutuação.
Controle preciso de riscosO risco de cada transação é fixado em 0,5% do capital da conta e o limite de risco de cada transação é rigorosamente controlado.
Uma estratégia de saída claraO mecanismo de liquidação baseado no preço de abertura do ciclo anterior oferece condições claras de lucro para a transação.
Multiplicação de canais diferenciados: O canal EMA usa 1.5x ATR, enquanto o canal RMA usa 1.0x ATR, o design permite que os dois sistemas tenham diferentes sensibilidades e sejam capazes de capturar diferentes tipos de oportunidades de mercado.
Risco de excesso de negociaçãoA média móvel de curto período pode produzir muitos falsos sinais em mercados turbulentos, resultando em negociações frequentes e erosão de taxas.
Paragem de perda muito fixaO uso do preço de abertura como ponto de parada pode não ser sempre a melhor opção, especialmente em situações de alta volatilidade ou de queda.
Condições de equilíbrio mais simplesO cruzamento que depende apenas do preço de abertura do ciclo anterior pode levar a uma saída prematura de uma tendência forte.
Falta de filtragem do mercadoA estratégia não distingue entre diferentes estados de mercado (trend/vibração), podendo ser negociada com frequência em condições de mercado inadequadas.
Riscos de otimização de parâmetros: Os parâmetros atuais (como o ciclo 3 e a multiplicação do ATR) podem ser muito adequados para os dados históricos, existindo incerteza sobre o desempenho futuro.
Optimização da adaptabilidade do estado do mercado:
Confirmação do Multi-Tempos:
Otimização dinâmica de stop loss:
A estratégia de equilíbrio é reforçada:
Avaliação da qualidade do sinal:
A estratégia de cruzamento de canais entre a média móvel tripla e a média móvel tripla relacional combina habilmente dois tipos diferentes de médias móveis e canais ATR, formando um sistema de negociação sensível a rupturas de preço, mas com capacidade de controle de risco. A estratégia é especialmente adequada para capturar flutuações de preços de curto prazo e reagir rapidamente a tendências de desenvolvimento rápido.
No entanto, a estratégia também apresenta riscos potenciais de sobre-negociação e problemas de adaptabilidade ao mercado. A solidez e o desempenho a longo prazo da estratégia podem ser significativamente aumentados por meio do aumento do filtro de estado de mercado, otimização do mecanismo de parada de perdas e introdução de confirmação de múltiplos períodos de tempo. Em particular, a adição da capacidade de identificação do ambiente de mercado permitirá que a estratégia participe seletivamente de negociações em diferentes condições de mercado, aumentando ainda mais a praticidade e a lucratividade da estratégia.
Em geral, trata-se de uma estratégia de negociação quantitativa com uma estrutura clara e rigorosa, com uma boa base teórica e potencial de aplicação. Através da orientação de otimização recomendada neste artigo, a estratégia deverá demonstrar maior adaptabilidade e estabilidade em vários ambientes de mercado.
/*backtest
start: 2024-04-07 00:00:00
end: 2025-04-06 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("EMA3 & RMA3 ATR Strategy", overlay=true, initial_capital=10000, currency=currency.USD)
// —— 输入参数 ——
ema_len = input.int(3, "EMA周期")
ema_mult = input.float(1.5, "EMA通道ATR乘数", step=0.1)
rma_len = input.int(3, "RMA周期")
rma_mult = input.float(1.0, "RMA通道ATR乘数", step=0.1)
atr_len = input.int(3, "ATR周期")
// —— 核心计算 ——
ema_val = ta.ema(close, ema_len)
atr_val = ta.atr(atr_len)
ema_upper = ema_val + atr_val * ema_mult
ema_lower = ema_val - atr_val * ema_mult
rma_val = ta.rma(close, rma_len)
rma_upper = rma_val + atr_val * rma_mult
rma_lower = rma_val - atr_val * rma_mult
// —— 信号条件 ——
ema_buy = barstate.isconfirmed and close > ema_upper
ema_sell = barstate.isconfirmed and close < ema_lower
rma_buy = barstate.isconfirmed and close > rma_upper
rma_sell = barstate.isconfirmed and close < rma_lower
// —— 仓位计算 ——
risk_percent = 0.5 // 单次风险0.5%
position_size(price, stop_price) =>
risk_amount = strategy.equity * risk_percent / 100
math.abs(price - stop_price) > 0 ? (risk_amount / math.abs(price - stop_price)) : na
// —— 交易逻辑 ——
var float prev_open = na
if barstate.isconfirmed
prev_open := open[1]
// 多单逻辑
if (ema_buy or rma_buy) and strategy.position_size == 0
stop_price = open
qty = position_size(close, stop_price)
if not na(qty)
strategy.entry("Long", strategy.long, qty=qty)
strategy.exit("Long Stop", "Long", stop=stop_price)
// 空单逻辑
if (ema_sell or rma_sell) and strategy.position_size == 0
stop_price = open
qty = position_size(close, stop_price)
if not na(qty)
strategy.entry("Short", strategy.short, qty=qty)
strategy.exit("Short Stop", "Short", stop=stop_price)
// 平仓逻辑
if strategy.position_size > 0
if ta.crossover(low, prev_open)
strategy.close("Long")
if strategy.position_size < 0
if ta.crossunder(high, prev_open)
strategy.close("Short")
// —— 可视化 ——
plot(ema_val, "EMA3", color.new(#00BFFF, 0), 2)
plot(ema_upper, "EMA Upper", color.red, 1)
plot(ema_lower, "EMA Lower", color.green, 1)
plot(rma_val, "RMA3", color.new(#FFA500, 0), 2)
plot(rma_upper, "RMA Upper", #FF1493, 1)
plot(rma_lower, "RMA Lower", #32CD32, 1)