
Essa estratégia usa um sistema de média móvel dupla para julgamento de tendências e decisões de negociação, e identifica o início, a continuação ou o fim das tendências de mercado por meio da relação de posição relativa entre a média móvel rápida e a média móvel lenta em um ponto específico no tempo. A estratégia verifica a relação posicional entre a EMA rápida e a EMA lenta em um horário fixo todos os dias, estabelece uma posição longa quando a linha rápida está acima da linha lenta e estabelece uma posição curta quando a linha rápida está abaixo da linha lenta. alcançando assim a negociação de rastreamento de tendências.
O cerne da estratégia é fazer um julgamento de tendência com base em duas médias móveis exponenciais (MME) de períodos diferentes. A EMA rápida (período padrão é 10) é mais sensível a mudanças de preço e pode capturar tendências de mercado mais rapidamente; a EMA lenta (período padrão é 50) reflete tendências de longo prazo. A estratégia verifica a relação posicional das duas médias móveis em um horário específico em cada dia de negociação (o padrão é 9:00), determina a direção da tendência do mercado e negocia com base no sinal de cruzamento da média móvel. Quando a EMA rápida cruza acima da EMA lenta, isso indica que o momentum ascendente de curto prazo aumentou e é hora de entrar no mercado para operar comprado; quando a EMA rápida cruza abaixo da EMA lenta, isso indica que o momentum ascendente de curto prazo aumentou e é hora de entrar no mercado para operar comprado; o momentum de baixa do prazo aumentou e é hora de entrar no mercado para operar vendido.
Esta estratégia concretiza um sistema de negociação de rastreamento de tendências simples e eficaz, combinando um sistema de média móvel dupla rápida e lenta com um mecanismo de verificação de tempo fixo. As vantagens dessa estratégia são lógica clara e alto grau de automação, mas também tem limitações, como atraso da média móvel e tempo de entrada fixo. Ainda há muito espaço para melhorias na estratégia, introduzindo indicadores técnicos adicionais, otimizando mecanismos de seleção de parâmetros e aumentando medidas de controle de risco. No geral, esta é uma estrutura estratégica básica com valor prático, que pode ser melhorada e otimizada de acordo com necessidades específicas.
/*backtest
start: 2024-12-06 00:00:00
end: 2025-01-04 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Daily EMA Comparison Strategy", shorttitle="Daily EMA cros Comparison", overlay=true)
//------------------------------------------------------------------------------
// Inputs
//------------------------------------------------------------------------------
fastEmaLength = input.int(10, title="Fast EMA Length", minval=1) // Fast EMA period
slowEmaLength = input.int(50, title="Slow EMA Length", minval=1) // Slow EMA period
checkHour = input.int(9, title="Check Hour (24h format)", minval=0, maxval=23) // Hour to check
checkMinute = input.int(0, title="Check Minute", minval=0, maxval=59) // Minute to check
//------------------------------------------------------------------------------
// EMA Calculation
//------------------------------------------------------------------------------
fastEMA = ta.ema(close, fastEmaLength)
slowEMA = ta.ema(close, slowEmaLength)
//------------------------------------------------------------------------------
// Time Check
//------------------------------------------------------------------------------
// Get the current bar's time in the exchange's timezone
currentTime = timestamp("GMT-0", year, month, dayofmonth, checkHour, checkMinute)
// Check if the bar's time equals or passes the daily check time
isCheckTime = (time >= currentTime and time < currentTime + 60 * 1000) // 1-minute tolerance
//------------------------------------------------------------------------------
// Entry Conditions
//------------------------------------------------------------------------------
// Buy if Fast EMA is above Slow EMA at the specified time
buyCondition = isCheckTime and fastEMA > slowEMA
// Sell if Fast EMA is below Slow EMA at the specified time
sellCondition = isCheckTime and fastEMA < slowEMA
//------------------------------------------------------------------------------
// Strategy Execution
//------------------------------------------------------------------------------
// Enter Long
if buyCondition
strategy.entry("Long", strategy.long)
// Enter Short
if sellCondition
strategy.entry("Short", strategy.short)
//------------------------------------------------------------------------------
// Plot EMAs
//------------------------------------------------------------------------------
plot(fastEMA, color=color.blue, title="Fast EMA")
plot(slowEMA, color=color.orange, title="Slow EMA")