A estratégia baseia-se em três EMAs de diferentes períodos para julgar os sinais de negociação, usando três EMAs de 8 ciclos, 50 ciclos e 200 ciclos para julgar o jogo de ouro e o jogo de morte, para aproveitar as vantagens de diferentes EMAs para obter melhores resultados de negociação.
A estratégia é baseada em três EMAs de 8 ciclos, 50 ciclos e 200 ciclos, e define um canal de correlação para a correlação. A lógica é:
Com base na operação do EMA de ciclo rápido, o EMA de ciclo médio garante a tendência, o EMA de ciclo lento filtra oscilações, e os três complementam-se para determinar a mudança de padrão e, ao mesmo tempo, a frequência de negociação.
O EMA de três ciclos determina a direção da tendência a médio prazo, e o EMA de oito ciclos determina a direção da tendência a médio prazo, e o EMA de 50 ciclos determina a direção da tendência a médio prazo, e o EMA de 200 ciclos filtra oscilações para garantir a tendência a longo prazo.
A opção de fazer mais apenas quando o preço é superior a 200 ciclos de EMA, para evitar que a onda de choque produzir um sinal errado.
Paragem opcional A linha média da EMA define a posição de parada racional.
A visualização de configurações, como a cor da faixa, a exibição de linhas EMA, etc., aumenta a ajustabilidade da estratégia.
O blogueiro também escreveu um artigo sobre o tema, que foi publicado em seu blog.
A EMA média tem um atraso e pode perder o melhor momento para a criação de posições. O período de EMA pode ser apropriadamente reduzido ou combinado com outros indicadores, como o MACD, para determinar o momento.
A linha média EMA em situações de tremor pode gerar um sinal falso. Pode-se usar um EMA de longo período para eliminar o tremor ou adicionar outras condições de filtragem.
A posição de parada é fixa e não pode ser ajustada de acordo com as flutuações do mercado. Pode ser alterada para uma parada dinâmica, que determina a posição de parada de acordo com indicadores como o ATR.
Não tendo em conta os critérios de saída do stop loss, existe um risco de perda. Pode ser configurado um stop loss móvel ou um stop loss de ponto fixo para controlar o risco.
O ciclo EMA pode ser otimizado para encontrar a melhor combinação de parâmetros.
Pode ser adicionado um indicador como o MACD para avaliar o tempo de vaga.
Adicionar condições de parada dinâmica e ajustar a posição de parada de acordo com a volatilidade do mercado.
Adicione a lógica de stop loss, configure stop loss móvel ou stop loss de ponto fixo.
Otimizar as condições de admissão, como o aumento do indicador de energia e filtros.
A estratégia baseia-se na direção da tendência de julgamento de filtro estável da linha de equilíbrio da EMA, combinando os benefícios da EMA de diferentes períodos para capturar oportunidades de negociação. Otimizar a estratégia de stop loss e adicionar mais critérios de indicadores pode aumentar a taxa de vitória da estratégia.
/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-20 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Long only EMA CROSS 8/50/200 Backtest", shorttitle="Golden Cross Tri EMA", overlay=true)
// EMA 8/50/200 Cross TEST
// Input
switch1=input(true, title="Enable Bar Color?")
switch2=input(true, title="Show 8 EMA")
switch3=input(true, title="Show 50 EMA")
switch4=input(true, title="Show 200 EMA")
switch5=input(false, title="Show profit level EMA")
bool_Long_EMA200=input(false, title="Long only above EMA200")
movingaverage_8 = ema(close, input(8))
movingaverage_50 = ema(close, input(50))
movingaverage_market_signal = ema(close, input(200))
movingaverage_profitlvl = ema(close, input(50))
// Calculation
bullish_cross = if bool_Long_EMA200 == true
crossover(movingaverage_8, movingaverage_50) and movingaverage_8 > movingaverage_market_signal
else
bullish_cross = crossover(movingaverage_8, movingaverage_50)
bearish_cross = crossunder(close, movingaverage_profitlvl)
// Strategy
if bullish_cross
strategy.entry("long", strategy.long)
strategy.close("long", when = bearish_cross )
// Colors
bartrendcolor = close > movingaverage_8 and close > movingaverage_50 and change(movingaverage_50) > 0 ? green : close < movingaverage_8 and close < movingaverage_50 and change(movingaverage_50) < 0 ? red : blue
barcolor(switch1?bartrendcolor:na)
// Output
plot(switch2?movingaverage_8:na,color = change(movingaverage_8) > 0 ? green : red,linewidth=2, title="EMA8")
plot(switch3?movingaverage_50:na,color = change(movingaverage_50) > 0 ? green : red,linewidth=2,title="EMA50")
plot(switch4?movingaverage_market_signal:na,color = change(movingaverage_market_signal) > 0 ? green : red,linewidth=3,title="EMA200")
plot(switch5?movingaverage_profitlvl:na,color = change(movingaverage_profitlvl) > 0 ? green : red,linewidth=3, title="EMA Profit LVL")
//
alertcondition(bullish_cross, title='Golden Cross (bullish)', message='Bullish')
alertcondition(bearish_cross, title='Death Cross (bearish)', message='Bearish')