Esta estrategia combina la estrategia de reversión 123 y la estrategia de interceptación de regresión lineal para implementar una estrategia de negociación combinada impulsada por múltiples factores. La estrategia de reversión 123 juzga la relación de precios entre los dos últimos días de negociación y combina el indicador Stoch para determinar la señal de reversión. La estrategia de interceptación de regresión lineal utiliza el análisis de regresión lineal para juzgar la relación entre el precio y la línea de tendencia y generar señales comerciales.
La estrategia se basa en los siguientes principios:
Si la relación del precio de cierre entre los dos últimos días de negociación es el precio de cierre de hoy más alto que el de ayer, y la línea rápida de Stoch es inferior a la línea lenta, se considera que hay una señal de reversión alcista
Si la relación del precio de cierre entre los dos últimos días de negociación es el precio de cierre de hoy más bajo que el de ayer, y la línea rápida de Stoch es superior a la línea lenta, se considera que existe una señal de reversión bajista
Las normas de la sentencia son las siguientes:
Si el precio de cierre de hoy > el precio de cierre de ayer y la línea rápida de Stoch < línea lenta de Stoch y línea rápida de Stoch > establecen el parámetro, se genera una señal de compra
Si el precio de cierre de hoy < el precio de cierre de ayer y la línea rápida de Stoch > la línea lenta de Stoch y la línea rápida de Stoch < el parámetro establecido, se genera una señal de venta
La estrategia debe establecer parámetros de los indicadores de Stoch, incluidos: longitud del ciclo de la línea K para el cálculo de Stoch, ciclo de suavizado KS suavizado para la línea rápida de Stoch, ciclo de suavizado DLength para la línea lenta de Stoch, nivel de umbral para el juicio de la línea rápida de Stoch.
La estrategia se basa en el análisis de regresión lineal para juzgar la relación entre el precio y la línea de tendencia de regresión lineal.
Si el precio de cierre es mayor que la intersección de regresión lineal, se genera una señal de compra
Si el precio de cierre es inferior a la intersección de regresión lineal, se genera una señal de venta
La estrategia debe establecer el ciclo de regresión lineal LengthLRI y la fuente de datos de entrada de regresión lineal xSeria.
La estrategia combinada requiere señales de compra/venta simultáneas tanto de la estrategia de inversión 123 como de la estrategia de interceptación de regresión lineal para generar órdenes comerciales reales, lo que filtra efectivamente las señales falsas y mejora el rendimiento comercial.
La estrategia tiene las siguientes ventajas:
La combinación de dos tipos diferentes de estrategias requiere señales de ambas estrategias para realizar órdenes.
La intersección de regresión lineal puede reflejar la relación entre el precio y la línea de tendencia en tiempo real. Si el precio se desvía significativamente de la tendencia, rápidamente impulsará la estrategia para ajustar la dirección de la posición. Esto permite detener las pérdidas oportunamente y evita quedar atrapado en tendencias históricas.
La estrategia de regresión lineal es mejor para identificar puntos de compra y venta de tendencia. Mientras que la estrategia de reversión 123 se centra en identificar puntos de reversión.
Ambas estrategias proporcionan ciertos parámetros para la personalización, que se pueden optimizar para diferentes variedades y diferentes tendencias para optimizar el efecto de la estrategia combinada.
La estrategia también presenta los siguientes riesgos:
La necesidad de cumplir con las señales de negociación de ambas estrategias perderá algunas oportunidades que pueden ser rentables dependiendo únicamente de una sola estrategia.
La regresión lineal requiere algunos datos históricos para el cálculo y no puede responder en tiempo real a eventos repentinos, lo que resulta en un cierto retraso.
Ambas estrategias requieren una selección adecuada de parámetros, que pueden tener que ajustarse de forma independiente para algunas variedades.
Los riesgos pueden reducirse mediante los siguientes métodos:
Relajar adecuadamente las condiciones de activación de la señal combinada para evitar perder demasiadas oportunidades
Combinar indicadores de tendencia para reemplazar la regresión lineal para obtener más juicios de tendencia en tiempo real
Utilizar métodos de aprendizaje automático para ayudar a la optimización de parámetros y mejorar la selección de parámetros
La estrategia se puede optimizar aún más de las siguientes maneras:
Recopilar datos históricos, diseñar objetivos de optimización de parámetros y usar algoritmos de aprendizaje automático como algoritmos genéticos y optimización bayesiana para buscar las mejores combinaciones de parámetros.
Las reglas de stop-loss se pueden establecer en función del ATR, los indicadores de tendencia, etc., para controlar la pérdida máxima por operación.
Las condiciones auxiliares, como los filtros de media móvil y las bandas de Bollinger, pueden añadirse sobre la base de las señales de negociación para reducir la frecuencia de los ajustes de posición y evitar quedar atrapados.
Utilizar técnicas de procesamiento del lenguaje natural para determinar el sentimiento de los participantes en el mercado y ayudar en las decisiones comerciales.
Utilice modelos de aprendizaje profundo como LSTM y GRU para predecir los precios como una referencia importante para las decisiones estratégicas.
Esta estrategia combina la estrategia de reversión 123 y la estrategia de interceptación de regresión lineal para implementar la negociación cuantitativa impulsada por múltiples factores. El mecanismo de verificación puede filtrar eficazmente las señales falsas y capturar oportunidades de inversión y tendencia comercial. Pero también hay ciertos riesgos de retraso en la estrategia que requieren atención a la optimización de parámetros y la expansión de los mecanismos de control de riesgos para mejorar aún más la estabilidad de la estrategia. Combinar el aprendizaje automático y otras tecnologías para la optimización de parámetros y la expansión de características es una dirección de optimización adicional que vale la pena para la estrategia.
/*backtest start: 2023-09-18 00:00:00 end: 2023-09-19 00:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 25/01/2021 // This is combo strategies for get a cumulative signal. // // First strategy // This System was created from the Book "How I Tripled My Money In The // Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies. // The strategy buys at market, if close price is higher than the previous close // during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. // The strategy sells at market, if close price is lower than the previous close price // during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50. // // Second strategy // Linear Regression Intercept is one of the indicators calculated by using the // Linear Regression technique. Linear regression indicates the value of the Y // (generally the price) when the value of X (the time series) is 0. Linear // Regression Intercept is used along with the Linear Regression Slope to create // the Linear Regression Line. The Linear Regression Intercept along with the Slope // creates the Regression line. // // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// Reversal123(Length, KSmoothing, DLength, Level) => vFast = sma(stoch(close, high, low, Length), KSmoothing) vSlow = sma(vFast, DLength) pos = 0.0 pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1, iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) pos LRI(Length,xSeria) => pos = 0.0 xX = Length * (Length - 1) * 0.5 xDivisor = xX * xX - Length * Length * (Length - 1) * (2 * Length - 1) / 6 xXY = 0.0 for i = 0 to Length-1 xXY := xXY + (i * xSeria[i]) xSlope = (Length * xXY - xX * sum(xSeria, Length)) / xDivisor xLRI = (sum(xSeria, Length) - xSlope * xX) / Length pos:= iff(close > xLRI, 1, iff(close < xLRI, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Line Regression Intercept", shorttitle="Combo", overlay = true) line1 = input(true, "---- 123 Reversal ----") Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- line2 = input(true, "---- Line Regression Intercept ----") LengthLRI = input(14, minval=1) xSeria = input(title="Source", type=input.source, defval=close) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posLRI = LRI(LengthLRI,xSeria) pos = iff(posReversal123 == 1 and posLRI == 1 , 1, iff(posReversal123 == -1 and posLRI == -1, -1, 0)) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1 , 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) if (possig == 0) strategy.close_all() barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )