
A estratégia TMA é um sistema de negociação de acompanhamento de tendências que combina habilmente a média móvel de movimentação de múltiplos períodos (SMMA) e a análise de forma de linha K para identificar oportunidades de negociação de alta probabilidade. A estratégia usa a média móvel de movimentação de 21, 50, 100 e 200 períodos como base para a identificação de tendências e áreas de suporte / resistência, enquanto usa as duas formas clássicas de linha K, “retorno de três linhas” e “forma de engolfar”, para confirmar os sinais de entrada.
A lógica central da estratégia de TMA gira em torno de médias móveis suaves de múltiplos períodos, confirmação de forma de linha K e filtragem de sessões de negociação. Primeiro, a estratégia calcula médias móveis suaves de quatro períodos diferentes: (21, 50, 100 e 200), que constituem o quadro das tendências do mercado.
O projeto de admissão foi concebido de forma muito rigorosa, exigindo simultaneamente a satisfação de várias condições:
Além disso, se o filtro de sessão de negociação estiver ativado, a operação de entrada também deve ser executada dentro do período de negociação especificado. Esse design de filtragem condicional em vários níveis reduz efetivamente a geração de sinais errados.
As condições de saída são relativamente simples e claras:
Este design permite que a tendência se desenvolva plenamente e, ao mesmo tempo, se retire imediatamente no início da reversão da tendência, protegendo efetivamente os lucros obtidos.
A estratégia TMA tem várias vantagens que a tornam uma ferramenta poderosa de acompanhamento de tendências:
Confirmação de tendências em vários níveisA estratégia permite avaliar a força e a continuidade das tendências de mercado de forma abrangente, reduzindo a possibilidade de um único indicador induzir em erro.
Confirmação de forma de linha KA estratégia não se baseia apenas em indicadores técnicos, mas também combina a análise de forma de linha K clássica, um mecanismo de dupla confirmação que aumenta significativamente a confiabilidade do sinal de entrada.
Altamente adaptávelA configuração de parâmetros ajustáveis (por exemplo, o ciclo da média móvel, o tempo da sessão de negociação, etc.) permite que a estratégia se adapte a diferentes mercados e estilos de negociação.
Melhoria na gestão de riscosO que é: Condições de saída claras baseadas em cruzamentos de médias móveis, que fornecem aos comerciantes um mecanismo de controle de risco objetivo, evitando a posse excessiva que pode resultar de julgamentos subjetivos.
Gestão de LiquidezA estratégia permite evitar períodos de baixa liquidez, reduzindo os riscos de deslizamento e manipulação de preços através de filtros de sessões de negociação.
Reduzir o ruídoO uso de médias móveis lisas reduz o impacto do ruído do mercado e torna os sinais de tendência mais claros.
Aplicabilidade para vários mercadosA estratégia é projetada para vários mercados, como Forex, ações e criptomoedas, especialmente em prazos mais longos (minutos 15, 1 hora, 4 horas, dia).
Apesar das vantagens da estratégia TMA, existem alguns riscos potenciais a serem observados:
Identificação tardia de tendênciasSolução: Pode-se considerar a combinação de indicadores mais sensíveis (como MACD ou RSI) para identificar potenciais mudanças de tendência mais cedo.
Mercado de turbulência não funciona bemComo uma estratégia de acompanhamento de tendências, pode ocorrer uma sequência de negociações perdedoras em um ambiente de mercado horizontal ou com frequência oscilante. Solução: Adicionar um filtro de modelo de mercado, suspender a negociação quando um mercado de turbulência é identificado ou ajustar a configuração de parâmetros adequados para o mercado de turbulência.
Risco de Falso BreakoutMétodo de Solução: Condições de confirmação adicionais podem ser adicionadas, como confirmação de volume de transação ou confirmação de ruptura de nível de preço crítico.
Risco de otimização excessiva: vários parâmetros ajustáveis podem levar a um excesso de ajuste de dados históricos, mas com um mau desempenho no futuro do mercado. Solução: fazer um retorno suficiente em diferentes mercados e períodos de tempo, e manter a estabilidade dos parâmetros definidos.
Configuração do Filtro de SessõesO filtro de sessão de negociação depende da configuração correta do fuso horário, uma configuração errada pode levar a negociação em períodos de tempo inadequados. Solução: Verifique cuidadosamente a configuração do fuso horário para garantir que coincida com o período ativo do mercado alvo.
De acordo com a análise do código, a estratégia TMA pode ser otimizada de várias maneiras:
Ajuste de parâmetros dinâmicosA estratégia atual usa um ciclo de média móvel fixo. Pode-se considerar o ajuste automático desses parâmetros com base na volatilidade do mercado. Por exemplo, o uso de ciclos mais longos para reduzir o ruído em mercados com maior volatilidade e o uso de ciclos mais curtos em mercados com menor volatilidade para aumentar a sensibilidade. Isso pode adaptar melhor a estratégia a diferentes condições de mercado.
Aumentar o mecanismo de suspensão de perdasA estratégia atual baseia-se apenas no cruzamento de médias móveis como condição de saída, podendo ser adicionado um stop-loss fixo ou um stop-loss de rastreamento para limitar o máximo de perdas em uma única transação e proteger a segurança dos fundos.
Apresentando filtros de volatilidade: Adicionar indicadores de volatilidade nas condições de entrada (como ATR ou diferença padrão), evitar entrar no mercado durante períodos de volatilidade anormal ou ajustar dinamicamente o tamanho da posição de acordo com o nível de volatilidade, permitindo uma gestão de risco mais refinada.
Optimizar a gestão do volume de transaçõesConsidere ajustar o tamanho da posição de acordo com a intensidade da tendência ou a qualidade do sinal, em vez de uma porcentagem fixa de capital, o que pode aumentar o lucro em negociações de alta probabilidade, enquanto reduz a abertura de risco em negociações de baixa probabilidade.
Aumentar o mecanismo de bloqueio parcial de lucrosQuando a negociação atinge um certo lucro, pode-se considerar a eliminação parcial ou o movimento do ponto de parada para o preço de custo, bloqueando parte do lucro, mantendo a oportunidade de continuar a participar da tendência.
Confirmação do Multi-TemposA integração de análises de tendências de prazos mais elevados e a entrada em jogo somente se as tendências dos prazos mais elevados estiverem alinhadas, pode aumentar significativamente a taxa de sucesso e reduzir o risco de falsas rupturas.
A estratégia TMA é um sistema de rastreamento de tendências bem projetado, que fornece aos comerciantes uma maneira sistematizada de identificar e capturar tendências de mercado por meio de uma combinação de médias móveis, confirmação de forma de linha K e filtros de tendências dinâmicas. A estratégia tem um foco especial no mecanismo de confirmação, exigindo que múltiplas condições sejam atendidas simultaneamente para a execução de transações, reduzindo efetivamente a taxa de erro.
Apesar de existirem alguns riscos inerentes, tais como atrasos na identificação de tendências e fraco desempenho nos mercados de turbulência, esses riscos podem ser mitigados através da direção de otimização apresentada neste artigo. A robustez e adaptabilidade da estratégia pode ser ainda melhorada pela adição de funções como o mecanismo de parada de perda, o filtro de taxa de flutuação e a confirmação de múltiplos quadros temporais.
Finalmente, é importante ressaltar que nenhuma estratégia de negociação tem 100% de chance de sucesso, e a estratégia TMA não é uma exceção. A negociação bem-sucedida depende não apenas da estratégia em si, mas também da disciplina, capacidade de gerenciamento de risco e compreensão do mercado.
/*backtest
start: 2025-02-26 00:00:00
end: 2025-03-05 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("TMA Strategy", shorttitle="TMA Strategy", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.1)
// Smoothed MAs Inputs
len1 = input.int(21, title="Length 1", group="Smoothed MA Inputs")
src1 = input.source(close, title="Source 1", group="Smoothed MA Inputs")
len2 = input.int(50, title="Length 2", group="Smoothed MA Inputs")
src2 = input.source(close, title="Source 2", group="Smoothed MA Inputs")
h100 = input.bool(true, title="Show 100 Line", group="Smoothed MA Inputs")
len3 = input.int(100, title="Length 3", group="Smoothed MA Inputs")
src3 = input.source(close, title="Source 3", group="Smoothed MA Inputs")
len4 = input.int(200, title="Length 4", group="Smoothed MA Inputs")
src4 = input.source(close, title="Source 4", group="Smoothed MA Inputs")
// Calculate Smoothed MAs
smma1 = ta.sma(src1, len1)
plot(smma1, color=color.white, linewidth=2, title="21 SMMA")
smma2 = ta.sma(src2, len2)
plot(smma2, color=color.green, linewidth=2, title="50 SMMA")
smma3 = ta.sma(src3, len3)
plot(h100 ? smma3 : na, color=color.yellow, linewidth=2, title="100 SMMA")
smma4 = ta.sma(src4, len4)
plot(smma4, color=color.red, linewidth=2, title="200 SMMA")
// Trend Filter
ema2 = ta.ema(close, 2)
// 3 Line Strike Signals
bullSig = close[3] < open[3] and close[2] < open[2] and close[1] < open[1] and close > open[1]
bearSig = close[3] > open[3] and close[2] > open[2] and close[1] > open[1] and close < open[1]
// Engulfing Candles Signals
bullishEngulfing = open <= close[1] and open < open[1] and close > open[1]
bearishEngulfing = open >= close[1] and open > open[1] and close < open[1]
// Trading Session Filter
ts = input.bool(true, title="Enable Session Filter", group="Trade Session")
tz = input.string("America/Chicago", title="Timezone", options=["America/New_York", "America/Chicago", "Europe/London", "Europe/Frankfurt", "Asia/Tokyo", "Asia/Sydney", "UTC"], group="Trade Session")
startH = input.int(8, title="Session Start Hour", minval=0, maxval=23, group="Trade Session")
startM = input.int(30, title="Session Start Minute", minval=0, maxval=59, group="Trade Session")
endH = input.int(12, title="Session End Hour", minval=0, maxval=23, group="Trade Session")
endM = input.int(0, title="Session End Minute", minval=0, maxval=59, group="Trade Session")
startTime = timestamp(year, month, dayofmonth, startH, startM)
endTime = timestamp(year, month, dayofmonth, endH, endM)
inSession = (time >= startTime and time <= endTime)
// Entry Conditions
longCondition = (bullishEngulfing or bullSig) and (ema2 > smma4) and (not ts or inSession)
shortCondition = (bearishEngulfing or bearSig) and (ema2 < smma4) and (not ts or inSession)
// Exit Conditions
exitLong = ta.crossunder(ema2, smma4)
exitShort = ta.crossover(ema2, smma4)
// Strategy Execution
if (longCondition)
strategy.entry("Long", strategy.long, comment="Long Entry")
if (shortCondition)
strategy.entry("Short", strategy.short, comment="Short Entry")
if (exitLong)
strategy.close("Long", comment="Exit Long")
if (exitShort)
strategy.close("Short", comment="Exit Short")
// Debugging Plots
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, title="Long Signal")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Short Signal")
// Visuals
plot(ema2, color=color.blue, linewidth=1, title="EMA(2)")
bgcolor(inSession and ts ? color.new(color.blue, 90) : na, title="Session Background")