La Estrategia Multi Timeframe RSI y Estocástica es una estrategia que combina indicadores RSI y Estocásticos en múltiples marcos de tiempo para determinar las condiciones de sobrecompra y sobreventa en el mercado. Utiliza los valores promedio de RSI y Estocásticos de 4 marcos de tiempo diferentes para medir el impulso general del mercado y la sobreextensión. Esto le permite aprovechar las fortalezas de los indicadores en diferentes marcos de tiempo.
El indicador RSI es un poderoso oscilador que mide los niveles de sobrecompra y sobreventa basados en la magnitud de los movimientos de precios recientes.
Esta estrategia utiliza un RSI de 14 períodos y obtiene los valores del RSI de los marcos de tiempo mensuales, diarios, de 4 horas y de 1 hora.
El estocástico %K es un indicador que muestra los niveles de sobrecompra/sobreventa en el mercado en una escala de 0 a 100.
La estrategia utiliza una configuración estocástica de 14,3 y también obtiene valores %K de los marcos de tiempo antes mencionados.
El eje de la estrategia consiste en tomar un promedio de los dos indicadores en los múltiples marcos de tiempo. Esto le permite aprovechar las fortalezas de cada marco de tiempo al medir las condiciones generales del mercado.
El RSI promedio = (RSI mensual + RSI diario + RSI de 4 horas + RSI de 1 hora) / 4
Estocástico promedio = (Estocástico mensual + Estocástico diario + Estocástico de 4 horas + Estocástico de 1 hora) / 4
La estrategia activa un largo cuando el promedio del RSI cae por debajo de 30 y el promedio del Estocástico cae por debajo de 20.
La posición larga se cierra cuando el promedio estocástico se eleva por encima de 70 y el promedio RSI sube por encima de 50.
La principal ventaja de esta estrategia radica en la combinación de dos indicadores en múltiples marcos de tiempo. Esto mejora enormemente la confiabilidad de las señales comerciales y minimiza las señales falsas.
El RSI y el Estocástico se verifican entre sí como señales.
Por ejemplo, los marcos de tiempo mensuales y diarios muestran un mercado sobrecomprado, pero los marcos de tiempo más pequeños aún no han alcanzado los niveles de sobreextensión. Esto sugiere que es probable que continúe una tendencia alcista. Las señales son más confiables cuando todos los marcos de tiempo están de acuerdo.
Identificación más clara de los puntos de inflexión estructurales cuando múltiples marcos de tiempo muestran simultáneamente una ruptura de los niveles clave de S/R, lo que indica una inversión de tendencia.
El cálculo automático de promedios simplifica el flujo de trabajo. No se necesita cálculo manual ya que el código maneja la recuperación de datos, el cálculo de indicadores y la media automáticamente.
Al igual que con todas las estrategias de análisis técnico, el principal riesgo radica en las fallas y señales falsas.
Las inversiones de tendencia que conducen a ser detenido. Por ejemplo, los precios hacen una brecha a corto plazo por debajo del soporte antes de rebotar mientras largo. Tales casos pueden incurrir en pérdidas a corto plazo debido a la lógica de salida.
Invalidación de los niveles clave de S/R que conducen a un fracaso de las paradas de seguimiento. Una ruptura de los niveles principales de S/R puede desencadenar directamente paradas diseñadas por debajo de ellos, lo que resulta en pérdidas por encima del promedio.
Los valores de los osciladores pueden ser erróneos si los intervalos de tiempo son demasiado suaves o muy bajos.
Divergencia entre los marcos de tiempo que causa un efecto de Dunkerque: cuando los marcos de tiempo más altos muestran un mercado sobrecomprado pero los marcos de tiempo más bajos indican condiciones de sobreventa, lo que hace que los promedios sean ineficaces.
Las soluciones incluyen la optimización de las estrategias de stop loss, el seguimiento de los niveles dinámicos de S/R, el ajuste de los parámetros de los plazos y la adición de filtros adicionales.
Teniendo en cuenta los riesgos discutidos, las oportunidades de mejora incluyen:
Optimizar el mecanismo de stop loss para incorporar trailing stops y partial exits. Esto bloquea las ganancias mientras se controlan los riesgos de una sola operación.
Añadir marcos de tiempo más altos como el gráfico trimestral. Esto permite una mayor orientación de tendencia para filtrar señales falsas. Priorizar las lecturas de marcos de tiempo más altos cuando ocurre una divergencia.
Incorporación de volumen para la validación de tendencias adicionales mediante divergencias alcista/oscura para evitar tendencias zombi.
Ajuste fino de las señales de entrada, esperando las rupturas en torno a los valores históricos clave S/R o permitiendo las entradas de retroceso óptimas.
Implementación de paradas adaptativas basadas en la volatilidad reciente y los valores ATR para el posicionamiento dinámico de paradas.
La Estrategia Multi Timeframe RSI y Estocástica es un enfoque claro y confiable que utiliza una combinación de RSI y Estocástica en múltiples marcos de tiempo para identificar los niveles de sobrecompra / sobreventa. Su mayor fortaleza radica en la verificación mutua de indicadores y marcos de tiempo para minimizar los riesgos de señales falsas y falsas. Sin embargo, al igual que todas las estrategias técnicas, enfrenta riesgos inherentes que deben abordarse a través de la optimización de stop loss, selecciones de marcos de tiempo, etc. para refinarlo en una estrategia de trading automatizada estable.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ ////////////////////////////////////////// MTF Stochastic & RSI Strategy 🚥 ©️ bykzis ///////////////////////////////////////// // // *** Inspired by "Binance CHOP Dashboard" from @Cazimiro and "RSI MTF Table" from @mobester16 *** and LOT OF COPY of Indicator-Jones MTF Scanner // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //@version=5 strategy('MTF RSI & STOCH Strategy🚥 by kzi', overlay=false,initial_capital=100, currency=currency.USD, commission_value=0.01, commission_type=strategy.commission.percent) // Pair list var string GRP1 = '══════════ General ══════════' overbought = input.int(80, 'Overbought Level', minval=1, group=GRP1) oversold = input.int(20, 'Oversold Level', minval=1, group=GRP1) /// Timeframes var string GRP2 = '══════════ Timeframes ══════════' timeframe1 = input.timeframe(title="Timeframe 1", defval="W", group=GRP2) timeframe2 = input.timeframe(title="Timeframe 2", defval="D", group=GRP2) timeframe3 = input.timeframe(title="Timeframe 3", defval="240", group=GRP2) timeframe4 = input.timeframe(title="Timeframe 4", defval="60", group=GRP2) // RSI settings var string GRP3 = '══════════ RSI settings ══════════' rsiLength = input.int(14, minval=1, title='RSI length', group=GRP3) rsiSource = input(close, 'RSI Source', group=GRP3) rsioverbought = input.int(70, 'RSI Overbought Level', minval=1, group=GRP3) rsioversold = input.int(30, 'RSI Oversold Level', minval=1, group=GRP3) /// Get RSI values of each timeframe ///////////////////////////////////////////////////// rsi = ta.rsi(rsiSource, rsiLength) callRSI(id,timeframe) => rsiValue = request.security(id, str.tostring(timeframe), rsi, gaps=barmerge.gaps_off) rsiValue RSI_TF1 = callRSI(syminfo.tickerid, timeframe1) RSI_TF2 = callRSI(syminfo.tickerid, timeframe2) RSI_TF3 = callRSI(syminfo.tickerid, timeframe3) RSI_TF4 = callRSI(syminfo.tickerid, timeframe4) /////// Calculate Averages ///////////////////////////////////////////////////////////////// calcAVG(valueTF1, valueTF2, valueTF3, valueTF4) => math.round((valueTF1 + valueTF2 + valueTF3 + valueTF4) / 4, 2) AVG=calcAVG(RSI_TF1, RSI_TF2, RSI_TF3, RSI_TF4) // Stochastic settings var string GRP4 = '══════════ Stochastic settings ══════════' periodK = input.int(14, '%K length', minval=1, group=GRP4) smoothK = input.int(3, 'Smooth K', minval=1, group=GRP4) stochSource = input(close, 'Stochastic Source', group=GRP4) stochoverbought = input.int(70, 'Stochastic Overbought Level', minval=1, group=GRP4) stochoversold = input.int(30, 'Stochastic Oversold Level', minval=1, group=GRP4) /// Get Stochastic values of each timeframe //////////////////////////////////////////////// stoch = ta.sma(ta.stoch(stochSource, high, low, periodK), smoothK) getStochastic(id,timeframe) => stochValue = request.security(id, str.tostring(timeframe), stoch, gaps=barmerge.gaps_off) stochValue Stoch_TF1 = getStochastic(syminfo.tickerid, timeframe1) Stoch_TF2 = getStochastic(syminfo.tickerid, timeframe2) Stoch_TF3 = getStochastic(syminfo.tickerid, timeframe3) Stoch_TF4 = getStochastic(syminfo.tickerid, timeframe4) AVG_STOCH=calcAVG(Stoch_TF1, Stoch_TF2, Stoch_TF3, Stoch_TF4) plot(AVG, color = color.blue, title='RSI') plot(AVG_STOCH, color = color.yellow,title='STOCH') hline(rsioverbought,color=color.red) hline(rsioversold, color=color.lime) hline(50, color=color.white) //============ signal Generator ==================================// if AVG <= rsioversold and AVG_STOCH <=stochoversold strategy.entry('Buy_Long', strategy.long) strategy.close("Buy_Long",when=(AVG_STOCH >=70 and AVG >=50 and close >=strategy.position_avg_price),comment="Long_OK") if AVG >=rsioverbought and AVG_STOCH >=stochoverbought strategy.entry('Buy_Short', strategy.short) strategy.close("Buy_Short",when=(AVG_STOCH <=30 and AVG <=50 and close <=strategy.position_avg_price),comment="Short_OK") ///////////////////////////////////////////////////////////////////////////////////////////