Esta estratégia gera sinais de negociação calculando os crossovers entre a média móvel exponencial de 5 dias (EMA) e a média móvel simples de 20 dias (SMA).
As médias móveis exponenciais duplas são indicadores técnicos amplamente usados. A EMA de 5 dias representa tendências recentes de preços, enquanto a SMA de 20 dias mostra movimentos de preços de médio prazo. Quando a MA de curto prazo cruza acima da MA de longo prazo, ela sinaliza uma quebra para cima e uma tendência de preço ascendente, indicando um bom momento para ir longo. Pelo contrário, o cruzamento descendente implica uma potencial reversão de preços e deve considerar a saída de posições.
Esta estratégia define a EMA de 5 dias e a SMA de 20 dias como sinais de negociação. Ela fica longa quando a EMA de 5 dias cruza a SMA de 20 dias e fecha a posição quando a mudança de preço atinge 5% ou -5%.
Os passos detalhados são:
Esta estratégia utiliza o cruzamento dourado entre dois MAs e tem os seguintes benefícios:
Em geral, esta estratégia tem regras simples, utiliza indicadores técnicos maduros como cruzamento de MA e tem medições de controle de risco relativamente abrangentes.
Esta estratégia apresenta ainda alguns riscos:
As melhorias sugeridas são:
Assim, há espaço para uma maior otimização.
Esta estratégia pode ser melhorada pelos seguintes aspectos:
Otimizar os parâmetros de MA testando combinações de EMA e SMA mais curtas/mais longas para encontrar o par ideal.
Adicione outros indicadores como MACD, KDJ para filtrar falsos sinais.
Empregar algoritmos de aprendizagem de máquina para encontrar melhores parâmetros através de modelagem de dados históricos e estatísticas.
Estabelecer um stop loss/take profit dinâmico com base na volatilidade do mercado e nas características do instrumento para controlar melhor os riscos.
Expanda esta estratégia para outros produtos como forex, criptomoedas.
Através das melhorias acima referidas, a estabilidade e a rentabilidade desta estratégia podem ser substancialmente melhoradas.
Em conclusão, esta é uma estratégia de cruzamento de MA duplo fácil de entender e implementar. Ele aproveita os sinais MA e usa TII para filtrar erros. Ele controla os riscos por stop loss / take profit. A estratégia é adequada para iniciantes aprenderem e também tem grande espaço para otimizações.
/*backtest start: 2024-01-02 00:00:00 end: 2024-02-01 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA-SMA Crossover Strategy", shorttitle="EMA-SMA Cross", overlay=true) // Define the moving averages ema5 = ta.ema(close, 5) sma20 = ta.sma(close, 20) smaVolume10 = ta.sma(volume, 50) majorLength = input(60, title="Major Length") minorLength = input(30, title="Minor Length") src = input(close, title="Source") smaValue = ta.sma(src, majorLength) positiveSum = 0.0 negativeSum = 0.0 for i = 0 to minorLength - 1 price = na(src[i]) ? 0 : src[i] avg = na(smaValue[i]) ? 0 : smaValue[i] positiveSum := positiveSum + (price > avg ? price - avg : 0) negativeSum := negativeSum + (price > avg ? 0 : avg - price) tii = 100 * positiveSum / (positiveSum + negativeSum) // Buy condition: 5 EMA crosses above 20 SMA buyCondition = ta.crossover(ema5, sma20) and tii > 0 and tii >= tii[1] //and volume > smaVolume10 // // Track entry price var entryPrice = 0.0 if (buyCondition) entryPrice := close // Calculate percentage change from entry price priceChange = close / entryPrice - 1 // Plotting the moving averages on the chart plot(ema5, color=color.blue, title="5 EMA") plot(sma20, color=color.red, title="20 SMA") // Highlighting buy signals and exit signals on the chart // plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, size=size.small, style=shape.labelup, text="Buy") // Strategy entry and exit if (buyCondition) strategy.entry("Buy", strategy.long) // Exit conditions if (strategy.opentrades > 0) if (priceChange >= 0.05 or priceChange <= -0.05) strategy.close("Buy")