Estratégia de acompanhamento de tendência de regressão linear dupla


Data de criação: 2023-11-17 16:51:33 última modificação: 2023-11-17 16:51:33
cópia: 0 Cliques: 616
1
focar em
1617
Seguidores

Estratégia de acompanhamento de tendência de regressão linear dupla

Visão geral

A estratégia de acompanhamento de tendências de regressão binária usa o diferencial entre a regressão linear rápida e a regressão linear lenta para determinar a tendência do preço e, assim, serve como sinal de entrada. Quando a regressão linear rápida faz mais quando atravessa o limite superior do limite, a baixa do limite é a posição de equilíbrio.

Princípio da estratégia

A estratégia primeiro calcula duas curvas de regressão linear de diferentes períodos, uma para regressão linear rápida, com períodos mais curtos, e outra para regressão linear lenta, com períodos mais longos. Em seguida, calcula-se a diferença entre as duas curvas de regressão linear. Quando a regressão linear rápida é maior que a regressão linear lenta, a diferença é maior que 0, indicando que o preço está em uma tendência ascendente; quando a regressão linear rápida é menor que a regressão linear lenta, a diferença é menor que 0, indicando que o preço está em uma tendência descendente.

A estratégia usa a linha de diferença para atravessar o limite de entrada como um sinal de compra, e a linha de diferença para atravessar o limite de entrada como um sinal de parada. Ao mesmo tempo, exige que o preço seja superior ao EMA de 200 ciclos, para filtrar situações fora de tendência.

Análise de vantagens

  1. A regressão binária capta a tendência dos preços e é mais eficaz na retrospecção.

  2. Adição de filtro EMA para filtragem de alguns eventos fora de tendência, evitando sinais errados.

  3. A lógica da estratégia é simples, clara, fácil de entender e de implementar.

Análise de Riscos

  1. A configuração incorreta do ciclo de regressão linear pode gerar uma grande quantidade de sinais de ruído.

  2. Em um cenário de forte tendência, o filtro EMA pode ter perdido algumas oportunidades.

  3. A situação de turbulência é propensa a transações frequentes e perdas.

Solução:

  1. Otimização dos parâmetros do ciclo de regressão linear e redução do ruído.

  2. O ciclo EMA pode ser ajustado de acordo com a dinâmica do mercado.

  3. Aumentar o stop loss para controlar os prejuízos.

Otimização de Estratégia

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

  1. Otimizar os parâmetros de ciclo de regressão linear rápida e lenta para encontrar a melhor combinação de parâmetros.

  2. Tente outros indicadores de filtragem em vez de EMA, como Brinks, KDJ, etc., para ver se pode melhorar a eficácia da estratégia.

  3. Aumentar o stop loss dinâmico para controlar o risco e evitar a expansão dos prejuízos.

  4. Combinando com o mecanismo de seleção de ações, escolha ações com tendência mais forte para negociar.

  5. Parâmetros de desenvolvimento auto-adaptação função, de acordo com a situação do mercado ajustar automaticamente os parâmetros

Resumir

A estratégia de acompanhamento de tendências de regressão binária é mais simples e direta, usando o diferencial de regressão binária para determinar a tendência de preços e usando a EMA como um indicador de filtragem, para acompanhar efetivamente a tendência. Mas a estratégia também apresenta certos riscos e precisa se concentrar na otimização de parâmetros, controle de perda e outros aspectos para obter o máximo efeito da estratégia.

Código-fonte da estratégia
/*backtest
start: 2022-11-10 00:00:00
end: 2023-11-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © TradingAmmo

//@version=4
strategy("Linear trend", overlay=false, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.075, currency='USD')
startP = timestamp(input(2017, "Start Year"), input(12, "Month"), input(17, "Day"), 0, 0)
end   = timestamp(input(9999, "End Year"),   input(1, "Month"),   input(1, "Day"),   0, 0)
_testPeriod() =>
    iff(time >= startP and time <= end, true, false)

src = close
len1 = input(defval=13, minval=1, title="Fast LR")
len2 = input(defval=55, minval=1, title="Slow LR")

lag1 = input(0, title="Lag for fast")
lag2 = input(0, title="Lag for slow")

threshold  = input(0,step=0.5, title="Threshold")

fast_lr = linreg(src, len1, lag1)
slow_lr = linreg(src, len2, lag2)
lr = fast_lr - slow_lr
plot_fast = plot(lr, color = lr > 0 ? color.green : color.red)
plot(threshold, color=color.purple)

long_condition = crossover(lr, threshold) and close > ema(close, 200) and _testPeriod()
strategy.entry('BUY', strategy.long, when=long_condition) 

short_condition = crossunder(lr, threshold) 
strategy.close('BUY', when=short_condition)