
A estratégia de negociação de filtragem de tendências de cruzamento de médias móveis de múltiplos índices é um sistema de negociação automatizado baseado em indicadores de EMA (6, 14, 50, 200) de múltiplos períodos. A estratégia utiliza sinais de cruzamento de EMA (6, 14 e 14) de curto prazo para gerar pontos de entrada de negociação e, ao mesmo tempo, confirma a direção da tendência do mercado através de EMA (50 e 200) de longo prazo, aumentando a taxa de sucesso das negociações.
A lógica central da estratégia baseia-se em um sistema de confirmação de sinais de média móvel exponencial em vários níveis:
Geração de sinais básicos: Usar o cruzamento do EMA6 com o EMA14 como sinal inicial de negociação. Quando o EMA6 atravessa o EMA14 para cima, gera um sinal de multiplicação; Quando o EMA6 atravessa o EMA14 para baixo, gera um sinal de vazio.
Confirmação da direção da tendência: A principal tendência do mercado é julgada pela posição relativa do EMA50 e do EMA200. A tendência ascendente é confirmada quando o EMA50 é maior que o EMA200; A tendência descendente é confirmada quando o EMA50 é menor que o EMA200.
Filtragem de intensidade de tendência: Calcule a diferença percentual entre o EMA50 e o EMA200 e considere a tendência forte o suficiente para permitir a negociação somente se a diferença for maior ou igual ao valor mínimo definido pelo usuário (default 1.0%).
Filtragem por posição de preço: Filtração adicional de acordo com a posição atual do preço em relação ao EMA50 e EMA200. Para fazer mais, o preço deve estar acima do EMA50 ou na “zona” entre o EMA50 e o EMA200; Para fazer vazio, o preço deve estar abaixo do EMA200 ou na “zona” entre o EMA50 e o EMA200.
Gestão de posiçõesSuporta dois modos de configuração do tamanho da posição - o modo percentual (percentagem fixa do equilíbrio da conta) ou o modo de quantidade fixa de USDT, e pode ajustar o tamanho real da transação com parâmetros de alavancagem.
Estratégia de saídaO banco oferece dois modos de suspensão - suspensão porcentual ou suspensão cruzada por EMA, além de usar uma suspensão porcentual fixa para proteger os fundos.
Mecanismo de confirmação múltiplaA combinação de médias móveis de curto e longo prazo, formando um mecanismo de confirmação de sinal de filtragem em camadas, reduz significativamente a probabilidade de falsos sinais. O EMA de curto prazo capta o dinamismo instantâneo, o EMA de longo prazo verifica a direção da tendência geral.
Identificação da intensidade da tendênciaA diferença percentual entre os EMAs é calculada para garantir que as negociações sejam feitas apenas em tendências suficientemente fortes, evitando transações frequentes e perdas em mercados horizontais.
Área de entrada flexívelA estratégia permite a entrada em “transações regionais”, ou seja, o preço dentro da faixa de retorno na direção da tendência principal (entre EMA50 e EMA200), o que ajuda a obter um preço de entrada mais favorável.
Flexibilidade na gestão de fundosA plataforma permite a gestão de posições em percentagem ou em valores fixos, para os operadores com diferentes tamanhos de contas e preferências de risco.
Paragem automáticaO sistema de bloqueio de perda por cento, o controle automático de risco, a prevenção de interferência emocional humana e a proteção dos fundos de negociação.
Integração de funções de alertaA função de alerta de formato fixo, implementada através de alertcondition, facilita o emparelhamento com sistemas externos ou a assistência de transações manuais.
Cumulação de atraso em vários indicadoresO uso de múltiplos EMAs pode levar à superposição de sinais de atraso, a perda de pontos de entrada ótimos ou a reação lenta em mercados de rápida mudança. A solução é considerar a introdução de parâmetros mais sensíveis em EMAs de curto período ou adicionar indicadores de momentum como alerta precoce.
Problemas de adaptabilidade de parâmetros fixosOs períodos de EMA fixos na estratégia (6, 14, 50, 200) podem não ser aplicáveis a todas as condições de mercado ou períodos de tempo. Recomenda-se fazer um teste de retorno antes do uso real e ajustar esses parâmetros de acordo com as características de um mercado específico.
Limitação de Stop Loss em percentagem fixaO uso de um stop loss de porcentagem fixa não leva em consideração a variação da taxa de volatilidade do mercado. O stop loss pode ser pequeno em ambientes de alta volatilidade e muito grande em ambientes de baixa volatilidade. Considere o uso do ATR (Média da Amplitude de Variação Real) para ajustar dinamicamente o nível de stop loss.
Vulnerabilidade no ponto de viragem da tendência: Perto dos principais pontos de mudança de tendência, os sinais de cruzamento da EMA podem ser frequentemente falsos. Recomenda-se a adição de indicadores de confirmação adicionais, como volume de negociação, indicadores de choque ou análise de configuração de preços.
Riscos de gestão de fundosO padrão USDT fixo pode levar a posições de tamanho irracional em mercados de alta volatilidade. Considere implementar um mecanismo de ajuste de posição dinâmico, ajustando a proporção de capital por transação de acordo com o risco de mercado.
Mecanismo de ajuste de parâmetros dinâmicosDesenvolvimento de configurações de ciclo de EMA auto-adaptáveis, que ajustam automaticamente os parâmetros do EMA de acordo com a volatilidade do mercado ou o ciclo de negociação, aumentando a adaptabilidade da estratégia em diferentes ambientes de mercado. Isso pode ser feito adicionando a função de cálculo da volatilidade, como a variação do valor do ATR, como base para o ajuste dos parâmetros.
Adição de indicadores auxiliares de confirmaçãoIntrodução de indicadores técnicos adicionais, como RSI (Índice de Força e Fraqueza Relativa), MACD (Movimento Média de Convergência de Dispersão) ou indicadores de conversão, como confirmação de sinais de cruzamento, reduzindo a incidência de falsos sinais.
Paragem inteligente: Substitua o stop loss por um stop loss dinâmico baseado no ATR, melhor adaptado às mudanças na volatilidade do mercado. Por exemplo, pode-se definir o stop loss como o preço de entrada menos 2 vezes o valor atual do ATR.
Estratégia de construção em lotes e de armazenamento pacíficoA realização de estratégias de entrada em lotes e de lucro em lotes, em vez de uma operação única de posições completas, reduzindo a pressão de escolha do momento e aumentando a estabilidade geral dos lucros.
Identificação do estado do mercadoA adição de funções de classificação de estados de mercado (como mercados de tendência, mercados de turbulência), a aplicação de diferentes parâmetros de negociação em diferentes estados de mercado ou até mesmo evitar completamente certos estados de mercado.
Otimização de aprendizagem de máquinaIntrodução de algoritmos de aprendizado de máquina simples para otimizar a seleção de parâmetros, ajustando automaticamente o melhor ciclo EMA e outras combinações de parâmetros com base em dados históricos.
Mecanismo de equilíbrio de risco: Realizar ajustes de posição dinâmicos com base na variação do valor líquido da conta, aumentar a posição após ganhos contínuos, reduzir a posição após perdas contínuas, controlar o retorno ao mesmo tempo em que realiza o crescimento do lucro.
A estratégia de negociação de filtragem de tendências cruzadas de médias móveis de múltiplos índices é um sistema de negociação abrangente que combina indicadores de EMA em vários níveis, identificando efetivamente as tendências do mercado e gerando sinais de negociação por meio da sinergia de médias móveis de curto e longo prazo. O principal benefício da estratégia é o mecanismo de confirmação múltipla e a capacidade de gerenciamento de posições flexíveis, o que a torna excelente em mercados de tendências.
No entanto, a estratégia também apresenta limitações de atraso de indicadores e fixação de parâmetros. A direção de otimização se concentra principalmente no ajuste dinâmico de parâmetros, no aumento de indicadores auxiliares e na melhoria do mecanismo de suspensão e parada. A introdução de parâmetros dinâmicos e gerenciamento de risco com percepção de volatilidade aumenta ainda mais a adaptabilidade em vários cenários de mercado.
Em geral, é uma estratégia de acompanhamento de tendências com uma estrutura clara e rigorosa, adequada para investidores de médio e longo prazo. Para os comerciantes mais ativos, pode-se considerar a redução do ciclo de EMA para aumentar a sensibilidade; Para os comerciantes mais conservadores, pode-se adicionar condições de filtragem adicionais e ampliar o limite de perda para reduzir a frequência de negociação e risco.
/*backtest
start: 2024-05-20 00:00:00
end: 2024-08-17 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"DOGE_USDT"}]
*/
// @version=6
strategy("EMA sabit usdt ve Alarm)", overlay=true, margin_long=1, margin_short=1)
// —— GİRDİLER —— //
fastLen = input.int(6, "EMA6 Periyodu")
slowLen = input.int(14, "EMA14 Periyodu")
midLen = input.int(50, "EMA50 Periyodu")
longLen = input.int(200, "EMA200 Periyodu")
tpMode = input.string("Percent", "Take Profit Modu", options=["Percent", "EMA Cross"])
tpPerc = input.float(2.0, "TP (%)", step=0.1)
slPerc = input.float(7.0, "Stop Loss (%)", step=0.1)
orderSizeMode = input.string("Percent", "Pozisyon Boyutu Modu", options=["Percent", "Fixed"])
orderSizePerc = input.float(10.0, "Boyut (%)", minval=0.1, step=0.1)
orderSizeFixed = input.float(5.0, "Boyut (Sabit) [USDT]", minval=0)
leverage = input.int(1, "Kaldıraç", minval=1)
minEMAPct = input.float(1.0, "%50–200 Min Fark", step=0.1)
// —— EMA HESAPLAMALARI —— //
ema6 = ta.ema(close, fastLen)
ema14 = ta.ema(close, slowLen)
ema50 = ta.ema(close, midLen)
ema200 = ta.ema(close, longLen)
plot(ema6, title="EMA 6", linewidth=1)
plot(ema14, title="EMA 14", linewidth=1)
plot(ema50, title="EMA 50", linewidth=2)
plot(ema200, title="EMA 200", linewidth=2)
crossUp = ta.crossover(ema6, ema14)
crossDown = ta.crossunder(ema6, ema14)
priceAbove50 = close > ema50
priceBelow50 = close < ema50
priceAbove200 = close > ema200
priceBelow200 = close < ema200
upTrend = ema50 > ema200
downTrend = ema50 < ema200
zoneLong = priceBelow50 and priceAbove200
zoneShort = priceAbove50 and priceBelow200
emaDistPct = math.abs(ema50 - ema200) / ema200 * 100
strongTrend= emaDistPct >= minEMAPct
// —— KOŞULLAR —— //
longCond = crossUp and upTrend and strongTrend and (priceAbove50 or zoneLong)
shortCond = crossDown and downTrend and strongTrend and (priceBelow200 or zoneShort)
// —— POZİSYON MİKTARI —— //
var float qty = na
if orderSizeMode == "Percent"
qty := strategy.equity * (orderSizePerc/100) * leverage
else
qty := (orderSizeFixed / close) * leverage
// —— SİNYAL KOŞULLARI — statik mesajlar —— //
alarmLongID = "EMA_Long_Signal"
alarmShortID = "EMA_Short_Signal"
// —— GİRİŞLER —— //
if longCond
strategy.entry("Long", strategy.long, qty=qty)
label.new(bar_index, high, text="Long", yloc=yloc.abovebar)
if shortCond
strategy.entry("Short", strategy.short, qty=qty)
label.new(bar_index, low, text="Short", yloc=yloc.belowbar)
// —— ALERTCONDITION ile sabit mesaj —— //
alertcondition(longCond, title="Long Alarm", message=alarmLongID)
alertcondition(shortCond, title="Short Alarm", message=alarmShortID)
// ÇIKIŞLAR (TP/SL) —— //
if tpMode == "Percent"
if strategy.position_size > 0
slPrice = strategy.position_avg_price * (1 - slPerc/100)
tpPrice = strategy.position_avg_price * (1 + tpPerc/100)
strategy.exit("Exit Long", from_entry="Long", stop=slPrice, limit=tpPrice)
if strategy.position_size < 0
slPrice = strategy.position_avg_price * (1 + slPerc/100)
tpPrice = strategy.position_avg_price * (1 - tpPerc/100)
strategy.exit("Exit Short", from_entry="Short", stop=slPrice, limit=tpPrice)
else
if strategy.position_size > 0
slPrice = strategy.position_avg_price * (1 - slPerc/100)
strategy.exit("Stop Long", from_entry="Long", stop=slPrice)
if strategy.position_size < 0
slPrice = strategy.position_avg_price * (1 + slPerc/100)
strategy.exit("Stop Short", from_entry="Short", stop=slPrice)