
A estratégia de seguimento de tendências da EMA é uma estratégia de seguimento de tendências baseada nos indicadores da EMA. A estratégia determina a direção da tendência dos preços através do cálculo da linha EMA do período especificado.
A estratégia baseia-se principalmente no EMA para determinar a tendência dos preços. O EMA é uma média móvel de deslizamento do índice de preços, que dá maior peso aos preços mais recentes e responde mais rapidamente às mudanças de preços. A estratégia calcula o preço médio no ciclo EMA, produzindo uma curva de deslizamento.
De acordo com este princípio, a estratégia faz um “voce” quando o preço atravessa a EMA acima e faz um “voce” quando o preço atravessa a EMA abaixo, para acompanhar as mudanças na tendência do preço através do rastreamento da linha EMA. Concretamente, ele calcula uma linha EMA de 8 ciclos no código, abrindo uma posição “voce” quando o preço fecha a EMA acima e abrindo uma posição “voce” quando a EMA abaixo.
Pode ocorrer o risco de perder o ponto de ajuste. Quando o preço se reverte rapidamente, a linha EMA precisa de algum tempo para fazer o ajuste, e pode perder o melhor momento de entrada. A solução é combinar outros indicadores para determinar o ponto de ajuste.
Existe o risco de aumento dos prejuízos. A linha EMA atua como um seguimento de tendência, não é possível determinar com precisão o ponto de ajuste. Se o preço se inverter, pode causar grandes prejuízos. A solução é definir um ponto de parada razoável.
A frequência de negociação pode ser muito alta ou muito baixa. Diferentes períodos de EMA, a frequência de negociação de estratégias de produção também é diferente. Períodos muito curtos podem levar a excesso de negociação e períodos muito longos podem perder oportunidades.
Otimizar os parâmetros do EMA para encontrar o melhor ponto de equilíbrio. Otimizar por etapas pode determinar o melhor valor do ciclo EMA.
Adicione outros indicadores para determinar o ponto de ajuste. Por exemplo, a combinação de indicadores de sobrevenda e sobrevenda, como o RSI, pode ajudar a determinar melhor o ponto de ajuste.
Optimizar a estratégia de stop loss para encontrar o melhor ponto de stop loss. Testar diferentes pontos de stop loss através de feedback para encontrar a posição de stop loss que bloqueia o máximo de lucro.
Optimizar a seleção de variedades. Ajustar os parâmetros do ciclo EMA de acordo com as características de diferentes variedades para obter o melhor efeito.
A estratégia EMA de acompanhamento de tendências é uma estratégia de acompanhamento de tendências muito típica baseada em indicadores. É simples, direta e fácil de implementar, adequada para os iniciantes. Ao mesmo tempo, é extensivo e pode aumentar ainda mais a eficácia da estratégia adicionando outros indicadores ou parâmetros de otimização.
/*backtest
start: 2022-10-09 00:00:00
end: 2023-10-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title = "EMA Close Strategy", shorttitle = "EMA Close",calc_on_order_fills=true,calc_on_every_tick =true, initial_capital=21000,commission_value=.25,overlay = true,default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
EmaSource = input(defval = close, title = "EMA Source")
EmaLength = input(defval = 8, title = "EMA Period", minval = 1)
StartYear = input(2018, "Backtest Start Year")
StartMonth = input(1, "Backtest Start Month")
StartDay = input(1, "Backtest Start Day")
stopLoss = input(30, title = "Stop loss percentage(0.1%)")
UseStopLoss = input(true,"UseStopLoss")
window() => time >= timestamp(StartYear, StartMonth, StartDay,00,00) ? true : false
EMA = ema(EmaSource,EmaLength)
plot(EMA, title = "EMA", color = green, linewidth = 2, style = line, transp = 50)
long = crossunder(EMA, close)
short= crossover(EMA, close)
if (long)
strategy.entry("LongId", strategy.long, when=window())
if (short)
strategy.entry("ShortId", strategy.short, when=window())
if (UseStopLoss)
strategy.exit("StopLoss", "LongId", loss = close * stopLoss / 1000 / syminfo.mintick)
strategy.exit("StopLoss", "ShortId", loss = close * stopLoss / 1000 / syminfo.mintick)