Estrategia de scalping de compra autónoma basada en el RSI estocástico y la EMA


Fecha de creación: 2023-10-31 11:34:47 Última modificación: 2023-10-31 11:34:47
Copiar: 0 Número de Visitas: 808
1
Seguir
1617
Seguidores

Estrategia de scalping de compra autónoma basada en el RSI estocástico y la EMA

Descripción general

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.

Principio de estrategia

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.

Ventajas estratégicas

  • El uso de un indicador RSI aleatorio para determinar el momento de compra es más confiable y puede filtrar efectivamente las brechas falsas.
  • La combinación de los indicadores de la EMA puede ayudar a determinar mejor el momento en que la tendencia cambia.
  • La adopción de stop loss puede controlar las pérdidas de manera efectiva.
  • Tener el mayor número posible de monedas puede reducir la frecuencia de las transacciones y reducir las comisiones.

Riesgo estratégico

  • La probabilidad de que el indicador RSI emita una señal falsa. Se puede ajustar adecuadamente el parámetro RSI para optimizar.
  • Si el precio de la parada es demasiado bajo, puede aumentar las pérdidas. Se puede ajustar el valor de la parada.
  • Si los parámetros del indicador de la EMA se ajustan incorrectamente, es posible que se pierda el momento de cambiar la tendencia. Se pueden probar parámetros de diferentes períodos de la EMA.

Dirección de optimización

  • Prueba diferentes RSI y configuraciones de parámetros RSI aleatorios para encontrar la combinación óptima de parámetros
  • Prueba diferentes tipos de stop loss para equilibrar las pérdidas y el retiro de ganancias
  • Prueba de la combinación de los períodos largos y cortos de la EMA para determinar los parámetros que mejor determinan el cambio de tendencia
  • Se puede considerar la inclusión de otros indicadores para mejorar la precisión de la hora de comprar y vender

Resumir

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.

Código Fuente de la Estrategia
/*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)