Estrategia combinada de interceptación de inversión y regresión lineal

El autor:¿ Qué pasa?, Fecha: 2023-09-26 15:56:48
Las etiquetas:

Resumen general

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.

Principio de la estrategia

123 Estrategia de reversión

La estrategia se basa en los siguientes principios:

  1. 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

  2. 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.

Estrategia de interceptación de regresión lineal

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.

Estrategia combinada

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.

Análisis de ventajas

La estrategia tiene las siguientes ventajas:

  1. Impulsado por múltiples factores, filtra eficazmente las señales falsas y mejora la calidad de la señal

La combinación de dos tipos diferentes de estrategias requiere señales de ambas estrategias para realizar órdenes.

  1. El seguimiento en tiempo real de las relaciones de precios y tendencias evita quedar atrapado

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.

  1. Tener en cuenta las oportunidades comerciales tanto para las tendencias como para las reversiones

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.

  1. Optimización de parámetros personalizables de las estrategias

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.

Análisis de riesgos

La estrategia también presenta los siguientes riesgos:

  1. Los conductores de múltiples factores pueden perder algunas oportunidades

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.

  1. La regresión lineal tiene retraso

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.

  1. Se necesita una optimización razonable de parámetros

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:

  1. Relajar adecuadamente las condiciones de activación de la señal combinada para evitar perder demasiadas oportunidades

  2. Combinar indicadores de tendencia para reemplazar la regresión lineal para obtener más juicios de tendencia en tiempo real

  3. Utilizar métodos de aprendizaje automático para ayudar a la optimización de parámetros y mejorar la selección de parámetros

Direcciones de optimización

La estrategia se puede optimizar aún más de las siguientes maneras:

  1. Utilice métodos de aprendizaje automático para la optimización de parámetros

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.

  1. Mecanismo de stop-loss añadido

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.

  1. Optimiza la lógica de entrada y salida

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.

  1. Análisis de sentimientos combinados

Utilizar técnicas de procesamiento del lenguaje natural para determinar el sentimiento de los participantes en el mercado y ayudar en las decisiones comerciales.

  1. Añadir módulo de predicción de aprendizaje automático

Utilice modelos de aprendizaje profundo como LSTM y GRU para predecir los precios como una referencia importante para las decisiones estratégicas.

Resumen de las actividades

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 )

Más.