
Trata-se de uma estratégia de negociação quantitativa baseada no conceito de rastreamento de tendências, que visa aumentar a precisão de negociação principalmente por meio de sinais de filtragem de múltiplos indicadores. A estratégia funciona em um período de 5 minutos, usando a linha média de 200 e a linha média de 21 como principais filtros de tendência, em combinação com os indicadores RSI e MACD para a confirmação de sinais de negociação.
O núcleo da estratégia é a construção de um sistema abrangente de confirmação de tendências usando múltiplos indicadores técnicos, evitando falsas rupturas e capturando oportunidades de tendências de alta probabilidade por meio de filtragem em camadas. Os princípios de implementação são os seguintes:
Confirmação da direção da tendência: Use a média móvel de 200 periodos ((EMA) como um indicador de tendência de longo prazo, a EMA de 21 como um indicador de tendência de médio prazo. Os preços devem estar do mesmo lado das duas linhas médias para serem considerados para entrada.
Confirmação de potência: Use o índice de força relativa ((RSI) como um filtro de força adicional. Em casos de múltiplos cabeças, o RSI deve ser maior que 50; em casos de cabeças vazias, o RSI deve ser menor que 50, garantindo a consistência com a direção da tendência geral.
Trigger de entrada: Dependendo do MACD ((12,26,9) indicador de sinal de cruzamento como a entrada final a condição de disparo. A entrada multi-cabeça requer MACD em linha de passagem do sinal de linha, e MACD valor positivo; entrada em branco requer MACD abaixo da linha de passagem do sinal de linha, e MACD valor negativo.
Gestão de RiscosPor cada transação, usa-se a configuração fixa de stop loss (15 pontos) e stop loss (22,5 pontos), criando uma relação de risco/retorno de 1:1,5, que é uma configuração razoável para equilibrar o risco e o retorno.
Auxílio visualA estratégia inclui a visualização de etiquetas de negociação e de linhas horizontais de stop loss/stop-loss para facilitar a monitorização e a análise de feedback.
Notificação automáticaAlerta embutida, funcionalidade de notificação automática através da plataforma, para transações semi-automáticas.
Ao analisarmos a implementação de código da estratégia, encontramos algumas vantagens significativas:
Sistema de filtragem múltiplaA estratégia estabelece um rigoroso sistema de filtragem de sinais através da combinação de três diferentes tipos de indicadores: linha de média, RSI e MACD, o que reduz significativamente os falsos sinais e aumenta a precisão das negociações.
Controle de riscos claroO risco de cada transação é previamente definido, facilitando a gestão de fundos e controle de risco. A relação de risco-retorno de 1:1,5 é uma configuração razoável, de acordo com os princípios de negociação profissional.
Lógica de negociação de tendênciaA estratégia é projetada para garantir que as transações sejam feitas apenas na direção da tendência confirmada, evitando o alto risco de operações contracorrentes.
Sistema de feedback visualA estratégia é executada através de uma visualização de etiquetas e linhas, que permitem aos traders ter uma visão intuitiva do estado de funcionamento e histórico da estratégia.
Gerenciamento de fundos com flexibilidadeA estratégia é usar a percentagem de direitos e interesses da conta para gerenciar posições, que podem ser ajustadas dinamicamente com o tamanho da conta, para a operação de longo prazo.
Facilitar a automaçãoOs requisitos de alerta incorporados permitem que a estratégia seja facilmente integrada ao sistema de negociação automática, reduzindo a interferência emocional e os erros humanos.
Embora a estratégia tenha sido concebida com raciocínio lógico, existem alguns riscos e limitações potenciais:
Risco de perda fixaO uso de um ponto fixo de parada pode não ser suficiente em mercados altamente voláteis, especialmente quando a volatilidade do mercado aumenta de repente, o que pode levar a que a parada seja facilmente tocada. Uma forma de melhoria é considerar o uso do ATR (Average True Range) para ajustar dinamicamente o nível de parada.
Identificação insuficiente de pontos de viragemA estratégia funciona bem em tendências fortes, mas pode ter uma reação de atraso nos pontos de reversão de tendência, resultando em entrada na direção da tendência original no início da reversão. Considere a adição de indicadores de força de tendência, como o ADX, para evitar entrada em tendências fracas.
Condições múltiplas podem ser excessivamente complicadasA multiplicação de condições, apesar de melhorar a qualidade do sinal, também pode levar a perder algumas boas oportunidades de negociação. Na aplicação prática, a qualidade e a frequência do sinal precisam ser equilibradas com base nos resultados dos testes.
Otimização para o período de 5 minutos: Esta estratégia foi projetada para o período de 5 minutos, e pode ser necessário reajustar os parâmetros em outros períodos de tempo. Uma simples combinação em diferentes períodos de tempo pode levar a uma queda de desempenho.
Falta de adaptabilidade ao estado do mercadoA estratégia não faz distinção entre o mercado de liquidação e o mercado de tendências, podendo ocorrer frequentes operações perdedoras durante a fase de liquidação horizontal. Pode ser considerado o acréscimo de filtros de volatilidade ou lógica de identificação da estrutura do mercado.
Com base na análise de código, a estratégia tem várias possibilidades de otimização:
Gestão de Riscos DinâmicosSubstituição de pontos fixos de stop loss e stop loss por um stop loss e stop loss dinâmico baseado no ATR, permitindo que a estratégia ajuste automaticamente os parâmetros de risco de acordo com a volatilidade do mercado. A vantagem de fazer isso é manter uma abertura de risco relativamente consistente em diferentes ambientes de volatilidade.
Filtragem de intensidade de tendência: Adicionar ADX (Average Directional Index) como um indicador de força de tendência, apenas quando a força da tendência é maior do que um determinado limite (por exemplo, 25), evitando a negociação em mercados de tendência fraca ou de turbulência.
Otimização do tempo de entradaPode-se considerar a possibilidade de esperar o sinal de confirmação para retornar ao preço perto da linha média, para obter um melhor preço de entrada e menor distância de parada, aumentando o retorno do risco.
Adicionar filtro de período de transaçãoAnalisando o desempenho de diferentes períodos de negociação, pode-se descobrir que certos períodos (como o período de sobreposição do período de negociação da Europa e dos EUA) têm um melhor desempenho, podendo a estratégia ser ativada apenas nesses períodos.
Implementação de um mecanismo de bloqueio parcial de lucrosQuando o negócio atinge um determinado nível de lucro (por exemplo, 50% do objetivo), o stop loss é movido para o preço de entrada ou para a margem de lucro, garantindo pelo menos a manutenção de parte do lucro.
Aumentar o julgamento do estado do mercado: julgar o estado do mercado através da largura de banda de Brin ou indicadores semelhantes ((trend ou consolidado), usar diferentes lógica de negociação ou configuração de parâmetros em diferentes estados
Optimização de parâmetros e feedbackOtimizar o retorno do ciclo da linha média, os limites do RSI e os parâmetros MACD para encontrar a combinação de parâmetros com o melhor desempenho histórico, mas é necessário ter cuidado para evitar o overfit.
Trata-se de uma estratégia de acompanhamento de tendências razoavelmente concebida, com um rigoroso sistema de filtragem de sinais estabelecido através da aplicação integrada de múltiplos indicadores técnicos, o que aumenta a qualidade dos sinais de negociação. A configuração fixa de gerenciamento de risco fornece uma estrutura estável de controle de risco para a estratégia, adequada para o uso de traders diários e de seguidores de tendências.
Embora a estratégia possa ter um bom desempenho em um ambiente de forte tendência, ela pode ser desafiada em um ambiente de transição de estado de mercado e de alta volatilidade. A solidez e adaptabilidade da estratégia pode ser ainda melhorada através da implementação de medidas de otimização recomendadas, especialmente o aumento do gerenciamento de risco dinâmico e da adaptabilidade ao estado de mercado.
A estratégia, em conjunto, reflete os princípios centrais da negociação sistemática: condições rigorosas de entrada, regras de saída claras e gestão de risco consistente, ideal para os comerciantes que desejam reduzir a interferência emocional e executar rigorosamente o sistema de negociação.
/*backtest
start: 2024-07-31 00:00:00
end: 2025-07-29 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("TPC Strategy XAUUSD - M5 with Fixed SL/TP", overlay=true)
// === INPUTS ===
ema200 = ta.ema(close, 200)
ema21 = ta.ema(close, 21)
rsi = ta.rsi(close, 14)
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
// === CONDITIONS ===
longCondition = close > ema200 and close > ema21 and rsi > 50 and macdLine > signalLine and ta.crossover(macdLine, signalLine)
shortCondition = close < ema200 and close < ema21 and rsi < 50 and macdLine < signalLine and ta.crossunder(macdLine, signalLine)
// === TRADE PARAMETERS ===
sl_pips = 15.0
tp_pips = 22.5
sl = sl_pips * syminfo.mintick * 10
tp = tp_pips * syminfo.mintick * 10
// === TRADE ENTRIES ===
var float long_entry_price = na
var float short_entry_price = na
if (longCondition)
strategy.entry("Long", strategy.long)
long_entry_price := close
label.new(bar_index, low, "BUY", style=label.style_label_up, color=color.green, textcolor=color.white, size=size.small)
if (shortCondition)
strategy.entry("Short", strategy.short)
short_entry_price := close
label.new(bar_index, high, "SELL", style=label.style_label_down, color=color.red, textcolor=color.white, size=size.small)
// === STRATEGY EXITS ===
strategy.exit("Long TP/SL", from_entry="Long", stop=close - sl, limit=close + tp)
strategy.exit("Short TP/SL", from_entry="Short", stop=close + sl, limit=close - tp)
// === PLOTS ===
plot(ema200, color=color.red, title="200 EMA")
plot(ema21, color=color.blue, title="21 EMA")
// === PLOT SL & TP LINES ===
plot(long_entry_price ? long_entry_price - sl : na, title="Long SL", color=color.red, style=plot.style_linebr, linewidth=1)
plot(long_entry_price ? long_entry_price + tp : na, title="Long TP", color=color.green, style=plot.style_linebr, linewidth=1)
plot(short_entry_price ? short_entry_price + sl : na, title="Short SL", color=color.red, style=plot.style_linebr, linewidth=1)
plot(short_entry_price ? short_entry_price - tp : na, title="Short TP", color=color.green, style=plot.style_linebr, linewidth=1)
// === ALERT CONDITIONS ===
alertcondition(longCondition, title="Buy Signal", message="📈 XAUUSD Buy Setup (M5) detected!")
alertcondition(shortCondition, title="Sell Signal", message="📉 XAUUSD Sell Setup (M5) detected!")