A estratégia de rastreamento da EMA é uma estratégia de tendência que usa o indicador EMA para rastrear tendências.
O indicador central desta estratégia é a EMA. A EMA é uma sigla para a média móvel exponencial, que é um indicador de rastreamento de tendências. A EMA calcula o preço médio atual com base nos preços históricos e no período de tempo definido. A EMA também tem o efeito de suavizar os preços.
A estratégia primeiro calcula o valor da EMA de 50 períodos dos preços como o principal indicador de julgamento. Em seguida, com base em uma certa porcentagem do valor da EMA, os trilhos superiores e inferiores são definidos. Aqui é definido em ± 0,3% do valor da EMA. Quando o preço atravessa o trilho superior da EMA, um sinal de compra é gerado. Quando o preço cai abaixo do trilho inferior da EMA, um sinal de venda é gerado. Isso pode rastrear as mudanças de tendência dentro do ciclo da EMA.
A estratégia de rastreamento da EMA tem uma lógica geral clara, julgando as tendências de preços através de indicadores da EMA e gerando sinais de negociação com faixas de intervalo. As vantagens são regras simples que são fáceis de entender e podem evitar algum ruído. Mas também há problemas como espaço de ajuste limitado, sinais atrasados, controle de retirada pobre, etc. Os próximos passos poderiam ser melhorá-lo por meio de meios como a combinação de vários indicadores, otimização de stop loss, etc. para tornar a estratégia mais prática e estável.
/*backtest start: 2023-01-17 00:00:00 end: 2024-01-23 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title="PingEMA50V.3 Piw", shorttitle="EMA50 Piw", overlay=true) // input src = input(title="Data Array",defval=close) ema_period = input(title="EMA period", defval=50) percent = input(title="Band %", type=float,defval=0.003) // ema ema50 = ema(src, ema_period) plot(ema50, color=green) // upper lower upper = ema50 + (ema50*percent) lower = ema50 - (ema50*percent) plot(upper, color=blue) plot(lower, color=blue) // signal buy = src > upper sell = src < lower // bar color bcolor = buy ? lime : red barcolor(color=bcolor) // trade if (buy) strategy.entry("long", strategy.long) if (sell) strategy.close("long")