
La estrategia está diseñada para lograr una estrategia de comercio de Scalper para comprar y mantener monedas de forma autónoma basadas en indicadores de índices aleatorios de movimiento suave (RSI) y índices de movimiento medio (EMA). Se aplica a la línea K de 5 minutos y se optimiza para BTC. La estrategia tiene como objetivo mantener el mayor número posible de monedas cuando están en la borda o no caen mucho.
La estrategia utiliza el indicador RSI para determinar si se encuentra en una zona de sobreventa o sobreventa, y combina los valores K y D del indicador RSI al azar para emitir señales de compra y venta.
Cuando la línea K del RSI aleatorio está por debajo de 20, se considera una sobreventa, y se produce una señal de compra cuando la línea K es mayor que la línea D. Después, se juzga si se vende según tres condiciones: 1) una reversión de EMA después de una subida de más del 1% en el precio; 2) cuando la línea K del indicador RSI aleatorio está por debajo de la línea D; 3) cuando el precio de parada alcanza el 98.5% del precio de entrada.
Además, cuando una EMA a corto plazo se invierte hacia abajo después de subir, también se considera una señal de venta.
La estrategia integra las ventajas de varios indicadores, como el RSI y el EMA aleatorios, y utiliza un método más sólido para determinar el momento de comprar y vender. La optimización de parámetros y la gestión de riesgos pueden mejorar aún más la rentabilidad y la estabilidad de la estrategia. En general, la lógica de la estrategia es razonable y merece ser verificada y optimizada en el mundo real.
/*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)