Estratégia de regressão linear reversa


Data de criação: 2023-12-29 17:15:07 última modificação: 2023-12-29 17:15:07
cópia: 2 Cliques: 722
1
focar em
1621
Seguidores

Estratégia de regressão linear reversa

Visão geral

A estratégia de regressão linear inversa é uma estratégia de negociação inversa baseada na oscilação dos preços. Combina a análise de regressão linear e o indicador AVERAGE TRUE RANGE, definindo condições de ascensão contínua da linha K ou queda contínua da linha K. A análise de regressão linear determina a inversão dos preços.

Princípio da estratégia

A estratégia primeiro calcula a inclinação da regressão linear. Quando a inclinação da regressão linear é maior do que 0, o preço está em uma tendência ascendente; quando menor do que 0, o preço está em uma tendência descendente. Ao mesmo tempo, a relação entre o preço de fechamento e o preço de abertura da última linha K é combinada para determinar se a última linha K está alta ou baixa.

A frequência de negociação pode ser controlada através da configuração de um número de linhas K ascendentes e descendentes consecutivas. Quando a linha K ascendente consecutiva atinge um número definido, um sinal de venda é gerado com uma inclinação de regressão linear menor que 0 para realizar uma negociação de reversão perto do ponto alto; Quando a linha K descendente consecutiva atinge um número definido, um sinal de compra é gerado com uma inclinação de regressão linear maior que 0 para realizar uma negociação de reversão perto do ponto baixo.

Análise de vantagens

A estratégia combina tendência e reversão de negociação, permitindo a reversão de negociação perto do ponto crítico, obtendo vantagem após o ajuste de preço. A análise de regressão linear fornece meios para determinar a tendência geral dos preços, evitando a reversão de zero ou mais quando os preços continuam subindo ou caindo.

Em comparação com a estratégia de inversão simples, a estratégia combina vários indicadores técnicos, o controle do tempo de negociação é mais preciso, evita o risco de brechas falsas e aumenta a probabilidade de lucro.

Análise de Riscos

A estratégia enfrenta principalmente o risco de reversão de falha. Se o preço continuar a operar na tendência original após o julgamento de um sinal de reversão de preço, isso causará prejuízos. Além disso, a análise de regressão linear e a configuração de parâmetros do indicador ATR também afetam os ganhos da estratégia.

Pode-se controlar a perda individual através de stop loss. Avaliação racional da frequência de flutuação do mercado, ajuste adequado do número de linhas K consecutivas, redução da frequência de negociação. Optimização dos parâmetros do ciclo de regressão linear e dos parâmetros ATR, para que sejam mais adequados às características de diferentes variedades.

Direção de otimização

A estratégia pode ser melhorada em vários aspectos:

  1. A adição de outros indicadores técnicos de julgamento, em combinação com diferentes indicadores de períodos de tempo, aumenta a precisão de julgamento. Por exemplo, a inclusão do MACD, Bollinger Band, etc.

  2. Adicionar componentes de aprendizado de máquina, otimizar automaticamente os parâmetros através de algoritmos e ajustar dinamicamente as regras de negociação.

  3. Adotar mecanismos de gestão de risco, como gestão de fundos, estratégias de stop loss, etc., para controlar o risco de transação.

  4. Optimizar o portfólio, combinando a estratégia com outras estratégias não relevantes, reduzindo a retirada global e aumentando a estabilidade.

  5. Expandir para mais variedades, avaliar a configuração de parâmetros de diferentes variedades, tornar a estratégia mais universal.

Resumir

A estratégia de regressão linear inversa, que integra vários indicadores técnicos e opera de forma inversa ao determinar o momento da reversão do preço, é uma estratégia de negociação inversa eficaz. A estratégia pode ampliar ainda mais a margem de lucro através da otimização de parâmetros e do fortalecimento do gerenciamento de riscos, com grande potencial de melhoria.

Código-fonte da estratégia
/*backtest
start: 2023-12-21 00:00:00
end: 2023-12-28 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Reverse Up/Down Strategy", currency=currency.USD, initial_capital=1000, pyramiding=2, default_qty_type=strategy.percent_of_equity, default_qty_value=100,overlay=true)

//User Options
consecutiveBarsUp   = input(title="Sell after how many bars up?",   type=input.integer, minval=1, defval=1)
consecutiveBarsDown = input(title="Buy after how many bars down?",  type=input.integer, minval=1, defval=1)
atrLength           = input(title="ATR Length",                     type=input.integer, minval=1, defval=14)
atrMult             = input(title="ATR Multiplier",                 type=input.float,   minval=0.1, defval=2.33)

//ATR Channel
adjustedATR     = sma(atr(atrLength),atrLength) * atrMult
longATR         = low - adjustedATR
shortATR        = high + adjustedATR
plot(shortATR,  title="Short ATR",  color=color.red)
plot(longATR,   title="Long ATR",   color=color.lime)


// This is the true linear regression slope rather than an approximation given by numerical differentiation
src = hlc3
len = input(defval=14, minval=1, title="Slope Length")
lrc = linreg(src, len, 0)
lrc1 = linreg(src, len,1)
lrs = (lrc-lrc1)

//Check if last candle was up or down
priceOpen = open
priceClose = close
longCondition = priceOpen > priceClose
shortCondition = priceOpen < priceClose
ups = 0.0
dns = 0.0

ups := shortCondition ? nz(ups[1]) + 1 : 0
dns := longCondition ? nz(dns[1]) + 1 : 0

if (shortCondition)
    strategy.close("buy", qty_percent=100, comment="Close")
    if (ups >= consecutiveBarsUp and lrs <= 0)
    	strategy.entry("sell", strategy.short, comment="Sell")
    	

if (longCondition)
    strategy.close("sell", qty_percent=100, comment="Close")
    if (dns >= consecutiveBarsDown and lrs >= 0)
	    strategy.entry("buy", strategy.long, comment = "Buy")