A HYE Mean Reversion SMA Strategy é uma estratégia de negociação de reversão média usando médias móveis simples e o índice de força relativa (RSI).
A estratégia baseia-se principalmente nas seguintes regras:
Quando a média móvel simples de dois períodos cair 3% abaixo da média móvel simples de cinco períodos, considera-se que o preço se desvia da média e é gerado um sinal de compra.
Quando a SMA de 2 períodos cruza a SMA de 5 períodos, considera-se que o preço reverte para a média e é gerado um sinal de venda.
Em combinação com a média móvel exponencial do RSI de 5 períodos, os sinais de compra só são gerados quando o RSI está abaixo de 30 e os sinais de venda quando o RSI está acima de 70, para evitar negociações desnecessárias.
A ideia principal é capturar oportunidades de reversão média usando flutuações de preços de curto prazo. Compre quando o preço cai em uma certa porcentagem, venda quando o preço reverte perto da média móvel, para obter lucro. Enquanto isso, o indicador RSI pode identificar condições de sobrecompra e sobrevenda para filtrar alguns sinais de negociação barulhentos.
A estratégia apresenta as seguintes vantagens:
Simples de implementar com baixos custos de monitorização.
Captura oportunidades de reversão média de curto prazo usando desvio de preço das médias móveis.
O indicador RSI pode efetivamente filtrar o ruído da negociação e evitar perseguir picos e vales de morte.
Ajuste flexível dos parâmetros adaptável aos diferentes ambientes de mercado.
Suporta apenas negociações longas, curtas ou em ambas as direcções para atender a diferentes preferências.
Há também alguns riscos:
A reversão média depende da reversão do preço para a média móvel.
A configuração inadequada dos parâmetros pode conduzir a um excesso de negociação ou a oportunidades perdidas.
O desempenho está fortemente correlacionado com o mercado.
Contramedidas:
Configure o stop loss adequado para controlar a perda de uma única transação.
Otimizar gradualmente os parâmetros e avaliar os retornos ajustados ao risco.
Combinar com o índice de ações para melhorar a adaptabilidade.
A estratégia pode ser otimizada nos seguintes aspectos:
Teste diferentes combinações de médias móveis para encontrar parâmetros ótimos.
Tente incorporar outros indicadores para identificar tendências e melhorar a taxa de vitória.
Adicionar mecanismos de stop loss para reduzir o drawdown máximo.
Otimizar as regras de entrada e saída para melhorar os fatores de lucro.
Adotar técnicas de aprendizagem de máquina para construir parâmetros adaptativos.
A estratégia HYE Mean Reversion SMA é uma estratégia de reversão média de curto prazo simples e prática. Ela usa o desvio de preço das médias móveis para gerar sinais de negociação, filtrando o ruído com o indicador RSI. Demonstrou bons desempenhos de backtest. A estratégia é fácil de implementar com parâmetros ajustáveis adaptáveis a diferentes ambientes de mercado.
/*backtest start: 2022-12-08 00:00:00 end: 2023-12-14 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // @version=4 strategy("HYE Mean Reversion SMA [Strategy]", overlay = true ) //Strategy inputs source = input(title = "Source", defval = close) tradeDirection = input(title="Trade Direction", type=input.string, options=["Long Only", "Short Only", "Both"], defval="Long Only") smallMAPeriod = input(title = "Small Moving Average", defval = 2) bigMAPeriod = input(title = "Big Moving Average", defval = 5) percentBelowToBuy = input(title = "Percent below to buy %", defval = 3) percentAboveToSell = input(title = "Percent above to sell %", defval = 3) rsiPeriod = input(title = "Rsi Period", defval = 2) rsiLevelforBuy = input(title = "Maximum Rsi Level for Buy", defval = 30) rsiLevelforSell = input(title = "Minimum Rsi Level for Sell", defval = 70) longOK = (tradeDirection == "Long Only") or (tradeDirection == "Both") shortOK = (tradeDirection == "Short Only") or (tradeDirection == "Both") // Make input options that configure backtest date range startDate = input(title="Start Date", type=input.integer, defval=1, minval=1, maxval=31) startMonth = input(title="Start Month", type=input.integer, defval=1, minval=1, maxval=12) startYear = input(title="Start Year", type=input.integer, defval=2020, minval=1800, maxval=2100) endDate = input(title="End Date", type=input.integer, defval=31, minval=1, maxval=31) endMonth = input(title="End Month", type=input.integer, defval=12, minval=1, maxval=12) endYear = input(title="End Year", type=input.integer, defval=2021, minval=1800, maxval=2100) inDateRange = true //Strategy calculation rsiValue = rsi(source, rsiPeriod) rsiEMA = ema(rsiValue, 5) smallMA = sma(source, smallMAPeriod) bigMA = sma(source, bigMAPeriod) buyMA = ((100 - percentBelowToBuy) / 100) * sma(source, bigMAPeriod)[0] sellMA = ((100 + percentAboveToSell) / 100) * sma(source, bigMAPeriod)[0] if(crossunder(smallMA, buyMA) and rsiEMA < rsiLevelforBuy and inDateRange and longOK) strategy.entry("BUY", strategy.long) if(crossover(smallMA, bigMA) or not inDateRange) strategy.close("BUY") if(crossover(smallMA, sellMA) and rsiEMA > rsiLevelforSell and inDateRange and shortOK) strategy.entry("SELL", strategy.short) if(crossunder(smallMA, bigMA) or not inDateRange) strategy.close("SELL")