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.
A estratégia baseia-se nos seguintes princípios:
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
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.
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.
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.
A estratégia tem as seguintes vantagens:
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.
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.
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.
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.
A estratégia também apresenta os seguintes riscos:
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.
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.
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:
A liberação adequada do sinal combinado para evitar a perda de muitas oportunidades
Regressão linear alternativa, combinada com indicadores de tendência, para obter um julgamento de tendência em tempo real
Otimizar os parâmetros com métodos de aprendizagem de máquina, entre outros, para melhorar a seleção de parâmetros
A estratégia pode ser melhorada em:
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.
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.
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.
A tecnologia de processamento de linguagem natural é usada para avaliar o sentimento dos participantes do mercado e auxiliar na tomada de decisões comerciais.
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.
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.
/*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 )