Esta estratégia foi concebida com base nos princípios de cruzamento das linhas EMA para realizar transacções de curto prazo adequadas e obter lucros decentes quando os preços recuarem em certa medida.
A estratégia adota 5 linhas EMA com diferentes parâmetros, especificamente as linhas de 10 dias, 20 dias, 50 dias, 75 dias e 200 dias.
Quando o preço cruza acima da linha de 75 dias e cai abaixo da linha de 50 dias, é considerado um sinal para uma retirada de curto prazo adequada para tomar uma posição curta.
Após o curto, se a linha de 10 dias cruzar abaixo da linha de 20 dias, continue a manter a posição curta.
Através deste projeto lógico, grandes flutuações de preços no curto prazo podem ser capturadas para ganhar com os spreads de preços durante os pullbacks.
A maior vantagem desta estratégia reside nos seus sinais simples e claros, que são fáceis de implementar. Apenas pela situação de cruzamento de várias médias móveis, as decisões de negociação podem ser tomadas sem problemas, sem modelos complexos e cargas de dados históricos, reduzindo a dificuldade de implementação.
Além disso, a utilização combinada de várias linhas EMA ajuda a filtrar o ruído do mercado de forma eficaz e a identificar com precisão o momento das inversões de tendência de médio a curto prazo para tomar decisões comerciais sensatas.
O principal risco desta estratégia vem de violentas oscilações de preços no curto prazo. Subidas ou quedas acentuadas descontroladas podem resultar em stop loss ou quebra de linhas de lucro, causando enormes perdas. Além disso, parâmetros inadequados podem levar a sinais de negociação excessivamente frequentes que prejudicam a lucratividade da estratégia.
Para controlar os riscos, os parâmetros das médias móveis devem ser ajustados adequadamente para manter a frequência do sinal em um nível adequado. Intervalos razoáveis de stop loss e take profit também devem ser definidos para evitar perdas excessivas por negociação.
O principal espaço de otimização reside no ajuste de parâmetros. Mais combinações podem ser testadas para encontrar o portfólio de parâmetros ideal. Por exemplo, mais médias móveis podem ser introduzidas como linhas de 60 dias e 120 dias para formar uma fonte de sinal mais rica.
A otimização também pode ser feita em torno de aspectos como stop loss e take profit. O afrouxamento adequado do intervalo de stop loss pode diminuir a probabilidade de paradas erradas. A redução do intervalo de take profit pode aumentar a lucratividade. Estes ajustes de parâmetros precisam ser baseados nos resultados do backtest para a ótima.
Para concluir, esta estratégia é bastante simples em geral. Projetada com sinais crossover básicos da EMA, ela se transforma em uma tática de negociação de curto prazo viável. Sua vantagem reside em sinais claros que são fáceis de executar, que podem efetivamente aproveitar oportunidades de negociação de inversões de tendência de médio a curto prazo. Melhorias adicionais podem ser alcançadas através do ajuste de parâmetros e otimização de configurações de stop loss, take profit.
/*backtest start: 2023-02-13 00:00:00 end: 2024-02-19 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // © theswissguy //@version=5 strategy("Jan 2024 Daily (Short)", initial_capital = 10000, overlay=true, commission_value = 1) // use closing prices as data source throughout calcs. ema_source = close price = close // set up the EMA curves. ema10 = ta.ema(ema_source, 10) ema20 = ta.ema(ema_source, 20) ema50 = ta.ema(ema_source, 50) ema75 = ta.ema(ema_source, 75) ema200 = ta.ema(ta.ema(ema_source, 200), 35) plot(ema10, color=color.red, title="EMA10") plot(ema20, color=color.orange, title="EMA20") plot(ema50, color=color.green, title="EMA50") plot(ema75, color=color.yellow, title="EMA75") plot(ema200, color=color.blue, title="EMA200", linewidth = 4) // if EMA50 <= price <= EMA75 AND EMA10 < EMA20 - sell dailySellIndicator = ta.crossover(price, ema75) and ta.crossunder(price, ema50) and ta.crossunder(ema10, ema20) dailyBuyIndicator = ta.crossover(ema10, ema20) if(dailySellIndicator) strategy.entry("daily", strategy.short) else if(dailyBuyIndicator) strategy.entry("daily", strategy.long)