Esta estrategia combina el RSI estocástico y el EMA para detectar tendencias y verificar las señales comerciales. Cuando el precio se recupera por encima de la EMA20 a entre la EMA9 y la EMA14, y el RSI estocástico está por debajo del nivel de sobreventa, se genera una señal larga; cuando el precio se recupera por debajo de la EMA20 a entre la EMA9 y la EMA14, y el RSI estocástico está por encima del nivel de sobrecompra, se genera una señal corta.
La idea central de esta estrategia es utilizar el RSI estocástico para determinar si el retroceso de precios en la tendencia principal (representada por EMA20) ha alcanzado un área de sobrecompra o sobreventa apropiada, mientras que se utiliza el EMA rápido y el EMA medio para verificar la fuerza del retroceso. Si el precio rompe la EMA rápida y el EMA medio, el retroceso puede terminar y la tendencia puede revertirse, lo que no es adecuado para ingresar a una posición. Solo cuando el precio se retrocesa entre EMA9 y EMA14 se considera que se ingresa a una posición en la dirección de la tendencia. Este método de verificación multi-condicional puede mejorar efectivamente la calidad de la señal y reducir los errores de juicio.
Esta estrategia utiliza el RSI estocástico combinado con la verificación multicondicional de la EMA para controlar eficazmente el riesgo al tiempo que capta los retrocesos de tendencia. La idea general es simple y fácil de entender, adecuada para que los principiantes aprendan y usen. Sin embargo, la estrategia en sí también tiene algunas limitaciones, como un bajo rendimiento en los mercados laterales, una comprensión insuficiente de los movimientos de la tendencia, etc., que deben ajustarse de manera flexible de acuerdo con la situación real. En el futuro, también se puede considerar la optimización y mejora de la estrategia desde aspectos como parámetros dinámicos, más verificación de indicadores y gestión de dinero para obtener rendimientos más robustos. En general, esta estrategia puede servir como una plantilla básica que se puede modificar y ampliar, y es un buen punto de partida y material de aprendizaje.
/*backtest start: 2023-03-02 00:00:00 end: 2024-03-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Crypto-EMA_Pullback=-", overlay=true,initial_capital = 10000000,default_qty_type=strategy.percent_of_equity, default_qty_value=10.0, pyramiding = 10) // Inputs lengthRsi = input(14, title="RSI Length") k = input(3, title="Stoch %K") d = input(3, title="Stoch %D") lengthStoch = input(14, title="Stochastic RSI Length") overSold = input(25, title="Oversold Level") overBought = input(85, title="Overbought Level") emaFastLength = input(9, title="Fast EMA Length") emaMediumLength = input(14, title="Medium EMA Length") emaSlowLength = input(20, title="Slow EMA Length") // Calculating EMAs emaFast = ta.ema(close, emaFastLength) emaMedium = ta.ema(close, emaMediumLength) emaSlow = ta.ema(close, emaSlowLength) // Calculating the RSI and Stoch RSI rsi = ta.rsi(close, lengthRsi) stochRsiK = ta.sma(ta.stoch(rsi, rsi, rsi, lengthStoch), k) stochRsiD = ta.sma(stochRsiK, d) // Entry Conditions bullishCondition = close > emaSlow and close < emaFast and close < emaMedium and stochRsiK < overSold bearishCondition = close < emaSlow and close > emaFast and close > emaMedium and stochRsiK > overBought // Strategy Execution if (bullishCondition) strategy.entry("Long", strategy.long) if (bearishCondition) strategy.entry("Short", strategy.short) // Plotting plot(emaFast, color=color.blue, title="Fast EMA") plot(emaMedium, color=color.orange, title="Medium EMA") plot(emaSlow, color=color.red, title="Slow EMA") hline(overSold, "Oversold", color=color.green) hline(overBought, "Overbought", color=color.red)