Estratégia de negociação de momentum baseada em rompimento de faixa de preço intradiária combinada com otimização do indicador EMAs

EMA SL RR SAST EMAs
Data de criação: 2025-02-21 13:20:45 última modificação: 2025-02-21 13:20:45
cópia: 1 Cliques: 351
2
focar em
319
Seguidores

Estratégia de negociação de momentum baseada em rompimento de faixa de preço intradiária combinada com otimização do indicador EMAs Estratégia de negociação de momentum baseada em rompimento de faixa de preço intradiária combinada com otimização do indicador EMAs

Visão geral

Esta estratégia é uma estratégia de negociação intradiária que combina a ruptura do intervalo de preços do dia anterior com as médias móveis do índice (EMAs). A estratégia é executada identificando o momento de alta ou baixa do dia de negociação anterior à ruptura do preço, em combinação com os sinais de confirmação de EMAs rápidos e lentos. A estratégia é focada em capturar a movimentação de preços de curto prazo e gerenciar o risco através da definição de um número fixo de pontos de parada e de ganhos de risco.

Princípio da estratégia

A lógica central da estratégia é baseada nos seguintes elementos-chave:

  1. A função request.security é usada para obter os pontos altos e baixos do dia de negociação anterior como um intervalo de preços críticos.
  2. Calcular as médias móveis indexadas de 9 e 21 períodos (EMAs) como indicadores de confirmação de tendências.
  3. Quando o preço está acima de um EMA lento e o EMA rápido está acima de um EMA lento, um sinal de multiplicação é acionado.
  4. Quando o preço ultrapassa a baixa do dia anterior e o EMA rápido está abaixo do EMA lento, o sinal de curto-circuito é acionado.
  5. Gerenciar o risco de cada transação, definindo um número fixo de pontos de stop-loss (30 pontos) e um risco-benefício (RRR) de 2.0.
  6. A função de filtro de tempo de negociação opcional, que suporta negociação em um período de tempo específico (zona horária SAST).

Vantagens estratégicas

  1. A estrutura é clara, a lógica é simples: a estratégia usa uma lógica de ruptura de preço que é fácil de entender e executar.
  2. Gerenciamento de risco perfeito: controle rigoroso de risco através da configuração de pontos de parada e de risco-benefício fixos.
  3. Gerenciamento de tempo flexível: o filtro de tempo de negociação opcional permite a negociação nos momentos mais ativos do mercado.
  4. Mecanismo de confirmação múltipla: combinação de ruptura de preços e confirmação de tendências dos EMAs, reduzindo o risco de falsos sinais.
  5. Alto grau de automação: A execução da estratégia pode ser totalmente automatizada, reduzindo a intervenção humana.

Risco estratégico

  1. Risco de Falsa Breakout: O preço pode recuar rapidamente após a breakout, causando um stop loss.
  2. Risco de deslizamento: durante a alta volatilidade, o preço de transação real pode ter um desvio significativo do preço do sinal.
  3. Risco de stop-loss fixo: o stop-loss com um número fixo de pontos pode não ser adequado para todas as condições de mercado.
  4. Risco de flutuação do mercado: pode haver excesso de sinais de negociação durante a baixa volatilidade.

Direção de otimização da estratégia

  1. Optimização de stop loss dinâmico: pode ser considerado o ajuste do número de pontos de stop loss de acordo com a volatilidade do mercado.
  2. Otimização de horários de negociação: Otimização da configuração da janela de horários de negociação através da análise de dados históricos.
  3. Aumento de filtragem de sinal: adição de volume de transação ou índice de taxa de flutuação como condição de filtragem adicional.
  4. Optimização de parâmetros de EMAs: Determinação de configurações periódicas ótimas de EMAs por meio de retrospectiva.
  5. Optimização da gestão de posições: introdução de mecanismos dinâmicos de gestão de posições baseados na volatilidade.

Resumir

A estratégia permite um sistema de negociação intradiário confiável através da combinação de breakouts de preços e confirmação de tendências de EMAs. O principal benefício da estratégia reside na sua estrutura lógica clara e no seu mecanismo de gestão de risco perfeito. A estratégia pode aumentar ainda mais a sua estabilidade e rentabilidade através da orientação de otimização recomendada.

Código-fonte da estratégia
/*backtest
start: 2025-02-16 17:00:00
end: 2025-02-18 14:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/

//@version=5
strategy("GER40 Momentum Breakout Scalping", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=1)

//———— Input Parameters —————
stopLossPoints = input.int(30, title="Stop Loss (Pips)", minval=1)  // Updated to 30 pips
riskReward    = input.float(2.0, title="Risk Reward Ratio", step=0.1)
useTimeFilter = input.bool(false, title="Use Time Filter? (Sessions in SAST)")
// Define sessions (SAST) if needed
session1 = "0900-1030"
session2 = "1030-1200"
session3 = "1530-1730"

//———— Time Filter Function —————
inSession = true
if useTimeFilter
    // TradingView's session function uses the chart's timezone.
    // Adjust the session times if your chart timezone is not SAST.
    inSession = time(timeframe.period, session1) or time(timeframe.period, session2) or time(timeframe.period, session3)

//———— Get Previous Day's High/Low —————
// Fetch the previous day's high/low using the daily timeframe. [1] refers to the previous completed day.
prevHigh = request.security(syminfo.tickerid, "D", high[1])
prevLow  = request.security(syminfo.tickerid, "D", low[1])

//———— Calculate EMAs on the 1-minute chart —————
emaFast = ta.ema(close, 9)
emaSlow = ta.ema(close, 21)

//———— Define Breakout Conditions —————
longCondition  = close > prevHigh and emaFast > emaSlow
shortCondition = close < prevLow  and emaFast < emaSlow

//———— Entry & Exit Rules —————
if inSession
    // Long breakout: Price breaks above previous day's high
    if (longCondition)
        strategy.entry("Long", strategy.long)
        strategy.exit("Exit Long", "Long", 
          stop = strategy.position_avg_price - stopLossPoints * syminfo.mintick, 
          limit = strategy.position_avg_price + stopLossPoints * riskReward * syminfo.mintick)
    
    // Short breakout: Price breaks below previous day's low
    if (shortCondition)
        strategy.entry("Short", strategy.short)
        strategy.exit("Exit Short", "Short", 
          stop = strategy.position_avg_price + stopLossPoints * syminfo.mintick, 
          limit = strategy.position_avg_price - stopLossPoints * riskReward * syminfo.mintick)

//———— Plot Indicators & Levels —————
plot(emaFast, color=color.blue, title="EMA 9")
plot(emaSlow, color=color.red, title="EMA 21")
plot(prevHigh, color=color.green, style=plot.style_linebr, title="Prev Day High")
plot(prevLow, color=color.maroon, style=plot.style_linebr, title="Prev Day Low")