Estratégia de combinação de interceptação de reversão e regressão linear


Data de criação: 2023-09-26 15:56:48 última modificação: 2023-09-26 15:56:48
cópia: 1 Cliques: 703
1
focar em
1617
Seguidores

Visão geral

Esta estratégia combina a estratégia de reversão 123 com a estratégia de intervalo de retorno linear para realizar uma estratégia de negociação combinada movida por vários fatores. A estratégia de reversão 123 determina a relação de preços dos dois últimos dias de negociação, combinada com o indicador Stoch para determinar o sinal de reversão. A estratégia de intervalo de retorno linear utiliza a análise de regressão linear para determinar a relação entre o preço e a linha de tendência, gerando negociações.

Princípio da estratégia

123 estratégias de reversão

A estratégia baseia-se nos seguintes princípios:

  1. Se a relação entre os preços de fechamento dos dois últimos dias de negociação é que o preço de fechamento de hoje é mais alto do que o de ontem, e a linha rápida de Stoch é mais baixa do que a linha lenta, acredita-se que haja um sinal de inversão de tendência de baixa

  2. Se a relação entre os preços de fechamento dos dois últimos dias de negociação é de que o preço de fechamento de hoje está abaixo do de ontem e a linha rápida de Stoch está acima da linha lenta, então existe um sinal de inversão de baixa

As regras de julgamento são as seguintes:

  • Se o preço de fechamento de hoje > preço de fechamento de ontem e a linha rápida de Stoch são configurados, um sinal de compra é gerado

  • Se o preço de fechamento de hoje for < preço de fechamento de ontem e a linha rápida de Stoch > linha lenta de Stoch e a linha rápida de Stoch < paramétricos, gera um sinal de venda

A estratégia requer a configuração de parâmetros do indicador de Stoch, incluindo: Calcular o K-linear de Stoch, K-smoothing de Stoch, D-Length de Stoch, e o nível de avaliação de Stoch.

Estratégia de intervalo de regressão linear

A estratégia baseia-se na análise de regressão linear para determinar a relação entre o preço e a linha de tendência de regressão linear, cujas regras de avaliação são as seguintes:

  • Se o preço de fechamento for maior do que o intervalo de regressão linear, gera um sinal de compra

  • Se o preço de fechamento for menor do que o intervalo de retorno linear, gera um sinal de venda

A estratégia requer a configuração do ciclo de regressão linear LengthLRI, e a regressão linear para a fonte de dados xSeria.

Estratégias combinadas

Esta estratégia combinada precisa atender ao sinal de compra/venda da estratégia de inversão 123 e da estratégia de corte de distância de regressão linear para gerar instruções de negociação reais, eliminando assim os falsos sinais e aumentando a eficácia da negociação.

Análise de vantagens

A estratégia tem as seguintes vantagens:

  1. Multi-factor drive, eficaz para eliminar falsos sinais, melhorar a qualidade do sinal

A combinação de dois tipos diferentes de estratégias, que precisam gerar sinais simultaneamente, é a única maneira de efetivamente encomendar. Esse mecanismo de verificação multifator pode filtrar os sinais errados ocasionalmente gerados por uma estratégia, reduzir transações desnecessárias e efetivamente melhorar a qualidade do sinal.

  1. Monitorar a relação entre preços e tendências em tempo real, evitando o cativeiro

O intervalo de regressão linear pode refletir a relação entre o preço e a linha de tendência em tempo real, e, se o preço tiver se desviado muito da tendência, indicar a estratégia para ajustar a direção da posição. Isso pode parar o prejuízo a tempo e evitar ser preso na tendência histórica.

  1. Considerando tendências e oportunidades de inversão

A estratégia de regressão linear é melhor para identificar pontos de venda e compra de tendências, enquanto a estratégia de reversão 123 se concentra na identificação de pontos de reversão. Ambas as estratégias combinam bem as vantagens de negociação de tendências e negociação de reversão.

  1. Parâmetros de estratégia com combinações de otimização personalizáveis

Ambas as estratégias fornecem determinados parâmetros para personalização, que podem ser otimizados para diferentes variedades e tendências, otimizando o efeito da estratégia de combinação.

Análise de Riscos

A estratégia também apresenta os seguintes riscos:

  1. O Multifactor Drive pode ter perdido algumas oportunidades

Os sinais de negociação de duas estratégias devem ser atendidos, perdendo parte da oportunidade de lucrar com uma única estratégia. Se a eficácia de uma estratégia for enfraquecida, o efeito de negociação em geral será prejudicado.

  1. Regressão linear é retardada.

A regressão linear requer dados históricos para serem calculados, não pode reagir em tempo real a eventos inesperados, há um certo atraso. Se o preço se elevar drasticamente, a linha de tendência de regressão linear precisa de um certo tempo para ser ajustada, e esse período pode gerar um sinal errado.

  1. Optimização de parâmetros razoáveis

Ambas as estratégias requerem a escolha de parâmetros apropriados, que podem precisar de ajustes independentes para algumas variedades. Se os parâmetros forem escolhidos incorretamente, o efeito da estratégia será muito reduzido.

Os riscos podem ser reduzidos através dos seguintes métodos:

  1. A liberação adequada do sinal combinado para evitar a perda de muitas oportunidades

  2. Regressão linear alternativa, combinada com indicadores de tendência, para obter um julgamento de tendência em tempo real

  3. Otimizar os parâmetros com métodos de aprendizagem de máquina, entre outros, para melhorar a seleção de parâmetros

Direção de otimização

A estratégia pode ser melhorada em:

  1. Optimização de parâmetros usando métodos de aprendizagem de máquina

Pode-se coletar dados históricos, projetar objetivos de otimização de parâmetros, usar algoritmos de aprendizagem de máquina para procurar o melhor conjunto de parâmetros, como algoritmos genéticos, otimização de Bayes.

  1. Aumentar o mecanismo de suspensão de perdas

Pode-se definir regras de stop loss em combinação com o ATR, indicadores de tendência, etc. para controlar o máximo de perdas em uma única transação.

  1. Optimizar a lógica de entrada e saída

Pode-se adicionar condições auxiliares de entrada no mercado, como filtro de linha uniforme, julgamento de faixa de Bryn, etc., com base em sinais de negociação, reduzindo a frequência de ajuste de posição e evitando a cobertura.

  1. Análise de sentimentos

A tecnologia de processamento de linguagem natural é usada para avaliar o sentimento dos participantes do mercado e auxiliar na tomada de decisões comerciais.

  1. Adição de módulos de previsão de aprendizagem de máquina

O uso de modelos de aprendizagem profunda, como LSTM, GRU e outros, para a previsão de preços, como uma importante base de referência para decisões estratégicas.

Resumir

Esta estratégia, através da combinação de estratégia de inversão 123 e estratégia de corte de distância de regressão linear, permite negociações quantitativas impulsionadas por múltiplos fatores, o mecanismo de verificação pode filtrar efetivamente os sinais falsos, ao mesmo tempo em que captura reversões e oportunidades de negociação de tendências. No entanto, a estratégia também apresenta um certo risco de atraso, que precisa ser focado na otimização de parâmetros e na expansão do mecanismo de controle de vento, para melhorar ainda mais a estabilidade da estratégia.

Código-fonte da estratégia
/*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 )