
La estrategia de RSI y indicadores aleatorios de marcos múltiples es una estrategia que utiliza un indicador combinado de RSI y indicadores aleatorios para determinar el mercado de sobreventa y sobreventa en marcos múltiples. La estrategia combina al mismo tiempo RSI y indicadores aleatorios de 4 marcos de tiempo, utilizando sus promedios para determinar el movimiento general del mercado y las situaciones de sobreventa y sobreventa para aprovechar las ventajas de los indicadores de cada marco de tiempo.
El RSI es un poderoso indicador de sobrecompra y sobreventa, que se basa en la fluctuación de las acciones en un determinado período de tiempo. El RSI oscila entre 0 y 100, generalmente, el RSI mayor a 70 es sobrecompra y menor a 30 es sobreventa.
Esta estrategia utiliza 14 indicadores RSI de longitud y obtiene los valores RSI de 1 mes, 1 día, 4 horas y 1 hora en 4 marcos de tiempo.
El indicador aleatorio %K es un indicador que muestra que el mercado está en el rango de sobreventa o sobreventa, con valores que oscilan entre 0 y 100. En general, un indicador aleatorio mayor de 80 significa sobreventa y menor de 20 significa sobreventa.
En esta estrategia, el indicador aleatorio %K tiene una longitud de 14, una suavidad de 3, obteniendo también los valores de los 4 marcos de tiempo anteriores.
La clave de la estrategia es calcular el promedio de los dos indicadores mencionados en los 4 marcos de tiempo para aprovechar las ventajas de cada marco de tiempo y determinar la tendencia general del mercado. La fórmula de cálculo específica es la siguiente:
El promedio del RSI = (el RSI lunar + el RSI diurno + el RSI de 4 horas + el RSI de 1 hora) / 4
El promedio del indicador aleatorio = (línea lunar del indicador aleatorio + línea solar del indicador aleatorio + indicador aleatorio de 4 horas + indicador aleatorio de 1 hora) / 4
Cuando el promedio RSI es menor que 30 y el promedio del indicador aleatorio es menor que 20, hacer más; cuando el promedio RSI es mayor que 70 y el promedio del indicador aleatorio es mayor que 80, hacer un hueco.
Después de hacer un alza, cerrar una posición cuando el promedio del indicador aleatorio es mayor a 70 y el promedio del RSI es mayor a 50; después de cerrar una posición cuando el promedio del indicador aleatorio es menor a 30 y el promedio del RSI es menor a 50
La mayor ventaja de esta estrategia es la combinación de dos indicadores y varios marcos de tiempo al mismo tiempo, lo que puede aumentar considerablemente la fiabilidad de las señales de negociación y evitar al máximo las falsas señales. Las ventajas concretas son las siguientes:
Los indicadores RSI y los indicadores aleatorios se verifican mutuamente. Es fácil generar falsas señales con un solo indicador, mientras que esta estrategia puede mejorar la precisión de la señal al combinar los dos indicadores.
El análisis de múltiples marcos de tiempo puede mejorar la precisión de los juicios. Por ejemplo, las líneas lunar y solar muestran sobreventa, pero 4 horas y 1 hora no están completamente sobreventa, lo que indica que la tendencia puede continuar. Si todos los marcos de tiempo coinciden, la señal es más confiable.
Una mejor comprensión de los puntos de inflexión estructural. Se pueden ver brechas de soporte/resistencia clave simultáneamente en varios marcos de tiempo, lo que permite determinar si la tendencia actual está cambiando.
El cálculo automático del promedio de los indicadores simplifica las operaciones. No se requiere un cálculo manual, el código automáticamente completa la extracción de datos, el cálculo de indicadores y el promedio, lo que reduce la cantidad de trabajo.
El principal riesgo de esta estrategia es que, como todas las estrategias de análisis técnico, no se puede evitar por completo la probabilidad de ser engañado y generar falsas señales. Los principales riesgos son:
La reversión de la tendencia a corto plazo provoca un tope. Por ejemplo, durante las posiciones de varios titulares, las líneas cortas de precios rebotan una vez más después de romper los soportes a la baja. En este caso, la lógica de la posición cerrada de la estrategia requiere un alto inmediato, pero puede causar pérdidas a corto plazo.
Si un punto clave de soporte o resistencia se rompe, el precio de parada original puede ser directamente roto, lo que genera una mayor pérdida.
Si el marco de tiempo se establece incorrectamente, se produce un error de juicio. Si el marco de tiempo se establece demasiado largo o demasiado corto, puede producirse un error de juicio en el indicador.
La dispersión de los indicadores causa el efecto Dunkirk. Es decir, los indicadores de los marcos de tiempo más altos muestran sobrecompras y los de los marcos de tiempo más bajos muestran sobreventa, y los indicadores promedio no reflejan la realidad.
Las soluciones para responder al riesgo incluyen: optimización de las estrategias de parada de pérdidas, seguimiento de la dinámica de soporte / resistencia, ajuste de los parámetros del marco de tiempo y la adición de mecanismos de filtración, etc.
Teniendo en cuenta los riesgos mencionados anteriormente, la estrategia también puede ser optimizada en las siguientes direcciones:
Optimización de los mecanismos de detención de pérdidas, el seguimiento de las pérdidas y la detención de los lotes. Esto puede controlar el riesgo de pérdidas individuales, al tiempo que garantiza la rentabilidad.
Añadir un marco de tiempo más alto, como una línea trimestral. Esto puede utilizar un filtro de tendencia de mayor nivel para desviar señales. Si los indicadores discrepan, dar prioridad a un marco de tiempo más alto.
Aumentar la verificación múltiple del volumen de tráfico. Combinar los cambios de volumen de tráfico para determinar el desvío inferior y superior y evitar ser engañados por el movimiento de los zombies.
Optimización de la hora de entrada. Se puede esperar una entrada de ruptura cerca del soporte/resistencia histórico importante, o esperar el punto de compra de la devolución óptima.
Aumento del Stop Loss Adaptable. Se puede calcular y ajustar el Stop Loss Dinámico en función de la fluctuación más reciente y el ATR.
La estrategia de RSI de marco múltiple de tiempo y el indicador aleatorio mediante la combinación de usar el indicador RSI y el indicador aleatorio para juzgar el período de sobreventa y sobreventa en el mercado en varios marcos de tiempo, es una estrategia de negociación clara y confiable. Su mayor ventaja es que la combinación de indicadores y marcos de tiempo se verifican mutuamente, lo que evita al máximo el riesgo de ser corregido y falsas señales. Por supuesto, la estrategia también existe el riesgo de que las estrategias de análisis técnico similares sean generales, que requieren una mejora y optimización continua en términos de optimización de tiempos de parada, opciones de marcos, etc., para convertirse en una estrategia de negociación algorítmica de ganancias estables.
/*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")
///////////////////////////////////////////////////////////////////////////////////////////