Estratégia de SMA de reversão da média HYE

Autora:ChaoZhang, Data: 2023-12-15 16:51:23
Tags:

img

Resumo

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).

Estratégia lógica

A estratégia baseia-se principalmente nas seguintes regras:

  1. 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.

  2. 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.

  3. 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.

Análise das vantagens

A estratégia apresenta as seguintes vantagens:

  1. Simples de implementar com baixos custos de monitorização.

  2. Captura oportunidades de reversão média de curto prazo usando desvio de preço das médias móveis.

  3. O indicador RSI pode efetivamente filtrar o ruído da negociação e evitar perseguir picos e vales de morte.

  4. Ajuste flexível dos parâmetros adaptável aos diferentes ambientes de mercado.

  5. Suporta apenas negociações longas, curtas ou em ambas as direcções para atender a diferentes preferências.

Análise de riscos

Há também alguns riscos:

  1. A reversão média depende da reversão do preço para a média móvel.

  2. A configuração inadequada dos parâmetros pode conduzir a um excesso de negociação ou a oportunidades perdidas.

  3. O desempenho está fortemente correlacionado com o mercado.

Contramedidas:

  1. Configure o stop loss adequado para controlar a perda de uma única transação.

  2. Otimizar gradualmente os parâmetros e avaliar os retornos ajustados ao risco.

  3. Combinar com o índice de ações para melhorar a adaptabilidade.

Orientações de otimização

A estratégia pode ser otimizada nos seguintes aspectos:

  1. Teste diferentes combinações de médias móveis para encontrar parâmetros ótimos.

  2. Tente incorporar outros indicadores para identificar tendências e melhorar a taxa de vitória.

  3. Adicionar mecanismos de stop loss para reduzir o drawdown máximo.

  4. Otimizar as regras de entrada e saída para melhorar os fatores de lucro.

  5. Adotar técnicas de aprendizagem de máquina para construir parâmetros adaptativos.

Conclusão

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")



Mais.