Esta estratégia visa implementar uma estratégia de negociação de auto buy-in e hold baseada nos indicadores técnicos do RSI estocástico e EMA. É projetada para velas de 5 minutos, otimizadas para BTC. O objetivo é manter a moeda o máximo possível durante tendências laterais ou não significativas.
A estratégia utiliza o indicador RSI para determinar os níveis de sobrecompra e sobrevenda, combinados com a relação entre os valores K e D do RSI estocástico para gerar sinais de compra e venda.
Ele desencadeará um sinal de compra quando a linha do RSI Stochastic K estiver abaixo de 20, considerada sobrevenda, e K estiver acima de D. Depois disso, ele determinará se vender com base em três condições: 1) o preço sobe mais de 1% seguido de reversão da EMA; 2) a linha do RSI Stochastic K está abaixo de D; 3) o preço de stop loss atinge 98,5% do preço de entrada.
Além disso, uma virada descendente da EMA de curto prazo após uma tendência de alta também será considerada um sinal de venda.
Esta estratégia integra os pontos fortes do RSI estocástico, EMA e outros indicadores, usando métodos relativamente robustos para determinar o tempo de entrada e saída. Melhorias adicionais na lucratividade e estabilidade podem ser alcançadas através da otimização de parâmetros e gestão de riscos.
/*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)