O recurso está a ser carregado... Carregamento...

Tendência de múltiplos prazos Seguindo a estratégia com filtro EMA 200 - Apenas longo

Autora:ChaoZhang, Data: 23 de maio de 2024 18:07:50
Tags:EMA

img

Resumo

Esta estratégia é uma estratégia de seguimento de tendências baseada em médias móveis exponenciais (EMAs) de vários prazos e um filtro EMA de 200 períodos. A ideia principal é usar EMAs em diferentes prazos para identificar a direção da tendência do mercado e estabelecer posições longas quando a tendência está em alta e o preço está acima da EMA de 200 períodos. Isso garante que as negociações sejam feitas apenas durante fortes tendências de alta, com o objetivo de capturar movimentos ascendentes sustentados enquanto gerencia o risco com mecanismos definidos de stop-loss e take-profit.

A estratégia usa três prazos: 5 minutos, 15 minutos e 30 minutos, calculando EMAs rápidas e lentas para cada um. Comparando as EMAs rápidas e lentas para cada período, a direção da tendência pode ser determinada. Os sinais de tendência dos três prazos são então somados para obter um sinal de tendência combinado. Quando o sinal de tendência combinado é 3 (indicando uma tendência de alta em todos os prazos) e o preço de fechamento atual está acima da EMA de 200 períodos no período de 5 minutos, a estratégia entra em uma posição longa. A posição é fechada quando o sinal de tendência combinado cai abaixo de 3 ou o preço cai abaixo da EMA de 200 períodos de 5 minutos.

Princípios de estratégia

  1. Calcular a EMA rápida (períodos de 9 por defeito) e a EMA lenta (períodos de 21 por defeito) para os prazos de 5 minutos, 15 minutos e 30 minutos.
  2. Calcular a EMA de 200 períodos no período de 5 minutos como um filtro de tendência.
  3. Para cada período de tempo, compare as EMAs rápidas e lentas.
  4. Somar os sinais de tendência dos três prazos para obter um sinal de tendência combinado no intervalo [-3, 3].
  5. Introduzir uma posição longa quando o sinal de tendência combinado for igual a 3 (forte tendência de alta) e o preço de fechamento atual estiver acima da EMA de 200 períodos de 5 minutos.
  6. Fechar a posição quando o sinal de tendência combinado cair abaixo de 3 (tendência ascendente de enfraquecimento) ou o preço cair abaixo da EMA de 200 períodos de 5 minutos.
  7. Estabelecer o stop-loss 1% abaixo do preço de entrada e o take-profit 3% acima do preço de entrada.

Vantagens

  1. Ao utilizar sinais de tendência de vários prazos, a estratégia pode avaliar mais abrangentemente a tendência do mercado e reduzir os falsos sinais.
  2. O filtro EMA de 200 períodos garante que as transacções só sejam inseridas durante fortes tendências de alta, aumentando a taxa de sucesso.
  3. As condições de entrada e de saída mais rigorosas, juntamente com o stop-loss e o take-profit, ajudam a controlar o risco e a melhorar o rácio risco/recompensa.
  4. Os parâmetros ajustáveis tornam a estratégia adaptável a diferentes mercados e estilos de negociação.

Riscos

  1. A estratégia pode reagir lentamente aos pontos de virada da tendência, perdendo oportunidades de entrada ótimas.
  2. As entradas e saídas frequentes podem aumentar os custos comerciais.
  3. Os níveis fixos de stop-loss podem conduzir a saídas prematuras em mercados altamente voláteis.
  4. A determinação da tendência baseia-se em dados históricos e pode não reagir prontamente a movimentos súbitos de preços causados por eventos inesperados.

Orientações de otimização

  1. Introduzir mais prazos ou otimizar a seleção dos prazos existentes para melhorar a precisão e a atualidade da identificação das tendências.
  2. Otimizar os níveis de stop-loss e take-profit, como a implementação de trailing stops ou take-profits dinâmicos, para se adaptar às diferentes condições do mercado.
  3. Incorporar sinais adicionais como volume, impulso, etc., juntamente com sinais de tendência para formar condições de entrada e saída multifatores, aumentando a robustez da estratégia.
  4. Otimizar os parâmetros para encontrar a combinação mais adequada para o mercado atual.
  5. Considerar a adição de um mecanismo de venda a descoberto para alargar a aplicabilidade da estratégia.

Resumo

Esta estratégia determina a direção da tendência, comparando as EMAs em vários prazos, usando uma EMA de 200 períodos como filtro de tendência. Estabelece posições longas quando a tendência é claramente ascendente e o preço está acima da média móvel de longo prazo, com o objetivo de capturar fortes tendências de alta. Condições de entrada e saída rígidas e níveis fixos de stop-loss e take-profit ajudam a gerenciar o risco. No entanto, a estratégia pode reagir lentamente nos pontos de virada da tendência e tem limitações em lidar com a volatilidade súbita do mercado devido aos níveis fixos de stop-loss e take-profit. No futuro, a adaptabilidade e a robustez da estratégia poderão ser melhoradas através da introdução de mais prazos, da otimização dos níveis de stop-loss e take-profit, da incorporação de sinais comerciais adicionais, da otimização de parâmetros, etc. Isto permitirá que a estratégia aproveite melhor as oportunidades de mercado, controlando simultaneamente os riscos.


/*backtest
start: 2023-05-17 00:00:00
end: 2024-05-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Multi-Timeframe Trend Following with 200 EMA Filter - Longs Only", shorttitle="MTF_TF_200EMA_Longs", overlay=true, initial_capital=1000, default_qty_type=strategy.fixed, default_qty_value=1)

// Inputs
fast_length = input.int(9, title="Fast EMA Length", minval=1)
slow_length = input.int(21, title="Slow EMA Length", minval=1)
filter_length_200 = input.int(200, title="200 EMA Length", minval=1)
stop_loss_perc = input.float(1.0, title="Stop Loss Percentage", minval=0.1) / 100
take_profit_perc = input.float(3.0, title="Take Profit Percentage", minval=0.1) / 100

// Calculate EMAs for 5-minute, 15-minute, and 30-minute timeframes
ema_fast_5min = request.security(syminfo.tickerid, "5", ta.ema(close, fast_length), lookahead=barmerge.lookahead_on)
ema_slow_5min = request.security(syminfo.tickerid, "5", ta.ema(close, slow_length), lookahead=barmerge.lookahead_on)

ema_fast_15min = request.security(syminfo.tickerid, "15", ta.ema(close, fast_length), lookahead=barmerge.lookahead_on)
ema_slow_15min = request.security(syminfo.tickerid, "15", ta.ema(close, slow_length), lookahead=barmerge.lookahead_on)

ema_fast_30min = request.security(syminfo.tickerid, "30", ta.ema(close, fast_length), lookahead=barmerge.lookahead_on)
ema_slow_30min = request.security(syminfo.tickerid, "30", ta.ema(close, slow_length), lookahead=barmerge.lookahead_on)

// Calculate 200 EMA for the 5-minute timeframe
ema_200_5min = ta.ema(close, filter_length_200)

// Determine the trend for each timeframe
trend_5min = ema_fast_5min > ema_slow_5min ? 1 : -1
trend_15min = ema_fast_15min > ema_slow_15min ? 1 : -1
trend_30min = ema_fast_30min > ema_slow_30min ? 1 : -1

// Combine trend signals
combined_trend = trend_5min + trend_15min + trend_30min

// Define entry and exit conditions with 200 EMA filter
enter_long = combined_trend == 3 and close > ema_200_5min
exit_long = combined_trend < 3 or close < ema_200_5min

// Plot EMAs for the 5-minute timeframe
plot(ema_fast_5min, color=color.blue, linewidth=2, title="Fast EMA 5min")
plot(ema_slow_5min, color=color.red, linewidth=2, title="Slow EMA 5min")
plot(ema_200_5min, color=color.green, linewidth=2, title="200 EMA 5min")

// Strategy execution
if (enter_long)
    strategy.entry("Long", strategy.long, stop=close * (1 - stop_loss_perc), limit=close * (1 + take_profit_perc))
if (exit_long)
    strategy.close("Long")


Relacionados

Mais.