Estratégia autônoma de compra e swing scalper baseada em RSI estocástico e EMA


Data de criação: 2023-10-31 11:34:47 última modificação: 2023-10-31 11:34:47
cópia: 0 Cliques: 808
1
focar em
1617
Seguidores

Estratégia autônoma de compra e swing scalper baseada em RSI estocástico e EMA

Visão geral

A estratégia visa alcançar uma estratégia de negociação de escalpelamento de moedas que compram e possuem de forma autônoma, com base em indicadores de índices aleatórios de média móvel lisa (RSI) e de média móvel (EMA). Aplica-se à linha K de 5 minutos e é otimizada para o BTC. O objetivo da estratégia é manter o máximo possível de moedas quando elas estão em contrapartida ou não caem muito.

Princípio da estratégia

A estratégia usa o indicador RSI para determinar se está em uma zona de sobrecompra ou sobrevenda, e combina o K-valor com o D-valor do indicador RSI aleatório para emitir sinais de compra e venda.

Quando a linha K do RSI aleatório é inferior a 20, é considerado um excesso de venda e gera um sinal de compra quando a linha K é maior do que a linha D. Depois disso, a venda é julgada com base em três condições: 1) uma reversão do EMA ocorre após um aumento de preço superior a 1%, 2) quando a linha K do RSI aleatório é inferior à linha D, 3) quando o preço de parada atinge 98,5% do preço de entrada.

Além disso, quando a EMA de curto prazo inverte para baixo após a alta, também é considerado um sinal de venda.

Vantagens estratégicas

  • O uso de um indicador RSI aleatório para determinar o momento de compra é mais confiável e pode filtrar efetivamente as brechas falsas.
  • A combinação com os indicadores EMA permite uma melhor avaliação do momento em que a tendência mudou.
  • O uso de stop loss pode ser eficaz no controle de perdas.
  • A posse de tantas moedas quanto possível pode reduzir a frequência de transações e reduzir as taxas.

Risco estratégico

  • A probabilidade de um indicador RSI emitir um falso sinal. Pode-se ajustar adequadamente os parâmetros RSI para otimizar.
  • A fixação de um preço de stop-loss muito baixo pode levar à expansão dos prejuízos. Pode-se ajustar a amplitude de stop-loss de forma adequada.
  • A configuração incorreta dos parâmetros do indicador da EMA pode perder o tempo de mudança de tendência. Os parâmetros de diferentes períodos da EMA podem ser testados.

Direção de otimização

  • Teste diferentes RSI e configurações de parâmetros RSI aleatórios para encontrar a combinação de parâmetros ótima
  • Tente diferentes paradas para equilibrar prejuízos e retrações de lucros
  • Testar a combinação de EMAs de longo e curto período para determinar os melhores parâmetros de mudança de tendência
  • Considere a inclusão de outros indicadores para melhorar a precisão do julgamento de compra e venda

Resumir

A estratégia integra as vantagens de vários indicadores, como o RSI e o EMA aleatórios, e usa uma abordagem mais robusta para determinar a hora de comprar e vender. A otimização de parâmetros e o gerenciamento de risco podem aumentar ainda mais a rentabilidade e a estabilidade da estratégia.

Código-fonte da estratégia
/*backtest
start: 2023-09-30 00:00:00
end: 2023-10-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="Stochastic RSI W Auto Buy Scalper Scirpt III ", shorttitle="Stoch RSI_III", format=format.price, precision=2)
smoothK = input.int(3, "K", minval=1)
smoothD = input.int(3, "D", minval=1)
lengthRSI = input.int(14, "RSI Length", minval=1)
lengthStoch = input.int(14, "Stochastic Length", minval=1)
src = input(close, title="RSI Source")
rsi1 = ta.rsi(src, lengthRSI)
k = ta.sma(ta.stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = ta.sma(k, smoothD)
plot(k, "K", color=#2962FF)
plot(d, "D", color=#FF6D00)
h0 = hline(80, "Upper Band", color=#787B86)
hline(50, "Middle Band", color=color.new(#787B86, 50))
h1 = hline(20, "Lower Band", color=#787B86)

longStopLoss  = strategy.opentrades.entry_price(0)* (.985)

stochDropping = ta.falling(k,2)
shortSma = ta.sma(hlc3,12)
shorterSma = ta.sma(hlc3,3)
plot(shortSma[3])

shortSmaFlip = (ta.change(shortSma,3)>0) and ta.falling(hlc3,1)
shorterSmaFlip = (ta.change(shorterSma,2)>0) and ta.falling(hlc3,1)
messageSellText ='"type": "sell", "symbol": "BTCUSD", "marketPosition": "{{strategy.market_position}}"'

messageBuyText ='"type": "buy", "symbol": "BTCUSD", "marketPosition": {{strategy.market_position}}"'

fill(h0, h1, color=color.rgb(33, 150, 243, 90), title="Background")

strategy.entry("Tech", strategy.long, when=(strategy.position_size <= 0 and k<17 and k>d),alert_message=messageBuyText)
//original: strategy.close("TL", when=(strategy.position_size >= 0 and (k>90 and k<d)))

takeProfit = hlc3 > strategy.opentrades.entry_price(0)*1.01
//longStopLoss  = strategy.opentrades.entry_price(0)* (.995)

strategy.close("Tech", when=(strategy.position_size >= 0 and (k>90 and k<d and stochDropping)) or close<longStopLoss, comment="rsi or Stop sell",alert_message=messageSellText)
//strategy.close("Tech", when=(strategy.position_size >= 0 and close<longStopLoss), comment="stopLoss sell",alert_message=messageSellText)

strategy.close("Tech", when=(shortSmaFlip and k>20 and takeProfit),comment="Sma after profit",alert_message=messageSellText)