
A estratégia de quantificação de cruzamento de múltiplos times SMA-EMA é uma estratégia de análise técnica que combina sinais de cruzamento de médias móveis simples (SMA) e médias móveis de índices (EMA) e ajuda a julgar através de filtros de múltiplos tempos e indicadores RSI. A ideia central da estratégia é capturar o ponto de cruzamento entre EMA15 e SMA60 como entrada, ao mesmo tempo em que o sinal é introduzido no EMA200 como referência de tendência de longo prazo e, em combinação com o EMA200 de tempos mais altos, filtra a direção da negociação, evitando finalmente a negociação de áreas de sobrecompra e venda pelo indicador RSI.
A estratégia baseia-se nos seguintes componentes de análise técnica:
Média móvel cruzada:
Filtragem de tempo múltipla:
Mecanismo de filtragem RSI:
Sistema de gestão de riscos:
A lógica de negociação da estratégia segue a lógica de “seguindo a tendência + confirmação múltipla”, assegurando a negociação apenas na direção de alta probabilidade por meio de um mecanismo de filtragem em vários níveis, além de proteger a segurança do capital por meio de medidas rigorosas de controle de risco.
Ao analisar o código em profundidade, a estratégia tem as seguintes vantagens significativas:
Mecanismo de confirmação múltiplaCombinação de cruzamento de médias móveis de curto prazo, julgamento de tendências de longo prazo e filtragem de RSI, formando um mecanismo de confirmação tripla, aumentando significativamente a qualidade do sinal e reduzindo as falsas rupturas e os sinais errados.
Adaptação a diferentes cenários de mercadoAtravés de um design parametrizado, a estratégia pode ser adaptada de forma flexível a diferentes ambientes de mercado e variedades de negociação, como o ajuste do ciclo da média móvel, o RSI e outros.
Um bom controlo de riscos:
Gerenciamento do período de transaçãoO sistema de negociação automática permite que os traders estabeleçam posições de liquidação antes do fechamento, evitando o risco de overnight e a incerteza causada pela volatilidade do fechamento, especialmente para os que operam no dia.
Filtração de tendências de alta tensão de tempoA introdução de uma maior coluna de tempo para o julgamento de tendências garante que a direção das negociações esteja em consonância com as grandes tendências, aumentando a taxa de vitória.
ModularidadeOs componentes da estratégia (generação de sinais, mecanismo de filtragem, gestão de riscos) são claramente separados, facilitando a compreensão e o ajuste, bem como a otimização e a expansão posteriores.
Apesar de ser uma estratégia abrangente, existem os seguintes riscos potenciais:
Sensibilidade do parâmetroA eficácia da estratégia é altamente dependente da configuração de parâmetros, como o ciclo da média móvel, o limiar do RSI. Diferentes ambientes de mercado podem exigir diferentes combinações de parâmetros, e a otimização inadequada dos parâmetros pode levar a uma superalimentação dos dados históricos.
Problemas de atrasoA média móvel é, por natureza, um indicador de atraso, que pode produzir um sinal de atraso em mercados de forte flutuação ou de rápida reversão, perdendo o melhor ponto de entrada ou causando um retorno maior.
Mercado horizontal não está indo bemEm mercados de arbitragem horizontal, onde não há uma tendência clara, o cruzamento de médias móveis pode gerar frequentes falsos sinais, resultando em perdas contínuas.
Excessiva dependência de indicadores técnicosA estratégia baseia-se apenas em indicadores técnicos, não leva em conta fatores fundamentais e sentimentos de mercado, e pode não funcionar bem em mercados movidos por grandes notícias ou eventos.
Risco de perda fixaO ponto fixo de parada pode não ser suficientemente flexível em mercados com variações de volatilidade, o ponto fixo de parada pode ser muito relaxado quando a volatilidade se expande e o ponto fixo de parada pode ser muito apertado quando a volatilidade se contrai.
Solução:
Com base na estrutura existente da estratégia, algumas melhorias a considerar são:
Mecanismos de adaptação à volatilidade:
Fortalecimento da coerência do calendário:
Confirmação de transação:
Optimização de parâmetros dinâmicos:
Classificação do estado do mercado:
A introdução da optimização de aprendizagem de máquina:
Essas orientações de otimização permitem melhorar as deficiências da estratégia para que ela mantenha um desempenho estável em um ambiente de mercado mais amplo.
A estratégia de quantificação de cruzamentos de múltiplos ângulos de tempo SMA-EMA é um sistema de negociação de análise técnica bem estruturado e com lógica clara. Ela forma um quadro de decisão de negociação em vários níveis, combinando sinais de cruzamentos de médias móveis, filtragem de tendências de múltiplos ângulos de tempo e julgamentos de RSI.
A principal vantagem da estratégia reside no seu mecanismo de confirmação múltipla e no bom controle de risco, o que lhe permite ter um excelente desempenho em mercados de tendência e ao mesmo tempo controlar eficazmente o risco. No entanto, a estratégia também apresenta problemas como alta sensibilidade a parâmetros e pouca adaptabilidade a mercados horizontais.
Há muito espaço para melhorias na estratégia por meio da introdução de mecanismos de auto-adaptação de taxa de volatilidade, reforço dos requisitos de consistência de várias camadas de tempo, aumento da confirmação de volume de transações e otimização de parâmetros dinâmicos. Essas otimizações podem ajudar a estratégia a se adaptar melhor a diferentes condições de mercado, aumentando a estabilidade e a lucratividade em geral.
Em geral, é uma estratégia de acompanhamento de tendências bem projetada e adequada para o uso de comerciantes com uma certa base em análise técnica. Com o ajuste e otimização de parâmetros apropriados, pode ser uma ferramenta de negociação confiável, especialmente para ambientes de mercado com tendências claras a médio e longo prazo.
/*backtest
start: 2025-01-01 00:00:00
end: 2025-06-15 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy(title="PhaiSinh_SMA & EMA [VNFlow]", overlay=true, slippage=1, backtest_fill_limits_assumption=1, initial_capital=100.000, default_qty_type=strategy.fixed, default_qty_value=4, commission_type=strategy.commission.cash_per_order, commission_value=2700,fill_orders_on_standard_ohlc=true, calc_on_order_fills=true, process_orders_on_close=true)
// === Chỉ báo chính ===
sma60 = ta.sma(close, 60)
ema15 = ta.ema(close, 15)
ema200 = ta.ema(close, 200)
plot(sma60, title="SMA 60", color=color.rgb(227, 10, 251), linewidth=1)
plot(ema15, title="EMA 15", color=color.rgb(246, 222, 11), linewidth=1)
plot(ema200, title="EMA 200", color=color.rgb(13, 141, 245), linewidth=1)
// === Cấu hình thời gian thoát trước khi hết phiên ===
session_close_hour = input.int(14, title="Giờ đóng phiên (24h)")
session_close_minute = input.int(30, title="Phút đóng phiên")
minutes_before_close = input.int(5, title="Số phút thoát lệnh trước đóng phiên")
exit_hour = session_close_hour
exit_minute = session_close_minute - minutes_before_close
exit_hour := exit_minute < 0 ? exit_hour - 1 : exit_hour
exit_minute := exit_minute < 0 ? exit_minute + 60 : exit_minute
cutoff_time = (hour > exit_hour) or (hour == exit_hour and minute >= exit_minute)
// === Bộ lọc RSI ===
use_rsi_filter = input.bool(true, title="Bộ lọc RSI?")
rsi_period = input.int(14, title="Chu kỳ RSI")
rsi_overbought = input.int(70)
rsi_oversold = input.int(30)
rsi_val = ta.rsi(close, rsi_period)
// === Bộ lọc EMA từ HTF ===
use_htf_filter = input.bool(true, title="Bộ lọc EMA HTF?")
htf_tf = input.timeframe("60", title="Khung thời gian EMA cao hơn")
htf_ema = request.security(syminfo.tickerid, htf_tf, ta.ema(close, 200))
ema_trend_up = close > htf_ema
ema_trend_down = close < htf_ema
// === Cài đặt TP/SL/Trailing ===
use_percent_tp = input.bool(false, title="TP theo % (nếu không: tính theo tick)")
tp_value = input.float(1.0, title="Take Profit (tick hoặc %)")
sl_value = input.float(20.0, title="Stop Loss (tick)")
trail_offset = input.int(10, title="Trailing Stop (tick)")
// === Logic tín hiệu vào/ra ===
long_entry = ta.crossover(ema15, sma60) and close >= ema15 and not cutoff_time
short_entry = ta.crossunder(ema15, sma60) and close <= ema15 and not cutoff_time
long_ok = long_entry and (not use_htf_filter or ema_trend_up) and (not use_rsi_filter or rsi_val > rsi_oversold)
short_ok = short_entry and (not use_htf_filter or ema_trend_down) and (not use_rsi_filter or rsi_val < rsi_overbought)
// === Vào lệnh ===
if long_ok
strategy.entry("Long", strategy.long)
if short_ok
strategy.entry("Short", strategy.short)
// === Tính TP theo giá nếu chọn % ===
long_tp_price = close * (1 + tp_value / 100)
short_tp_price = close * (1 - tp_value / 100)
// === Thoát lệnh với TP/SL/Trailing ===
if strategy.position_size > 0
if use_percent_tp
strategy.exit("Dừng Long %", from_entry="Long", loss=sl_value, limit=long_tp_price, trail_points=trail_offset, trail_offset=trail_offset)
else
strategy.exit("Dừng Long Tick", from_entry="Long", loss=sl_value, profit=tp_value, trail_points=trail_offset, trail_offset=trail_offset)
if strategy.position_size < 0
if use_percent_tp
strategy.exit("Dừng Short %", from_entry="Short", loss=sl_value, limit=short_tp_price, trail_points=trail_offset, trail_offset=trail_offset)
else
strategy.exit("Dừng short Tick", from_entry="Short", loss=sl_value, profit=tp_value, trail_points=trail_offset, trail_offset=trail_offset)
// === Đóng toàn bộ trước phiên ===
if cutoff_time
strategy.close_all()