
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.
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.
A regressão binária capta a tendência dos preços e é mais eficaz na retrospecção.
Adição de filtro EMA para filtragem de alguns eventos fora de tendência, evitando sinais errados.
A lógica da estratégia é simples, clara, fácil de entender e de implementar.
A configuração incorreta do ciclo de regressão linear pode gerar uma grande quantidade de sinais de ruído.
Em um cenário de forte tendência, o filtro EMA pode ter perdido algumas oportunidades.
A situação de turbulência é propensa a transações frequentes e perdas.
Solução:
Otimização dos parâmetros do ciclo de regressão linear e redução do ruído.
O ciclo EMA pode ser ajustado de acordo com a dinâmica do mercado.
Aumentar o stop loss para controlar os prejuízos.
A estratégia pode ser melhorada em vários aspectos:
Otimizar os parâmetros de ciclo de regressão linear rápida e lenta para encontrar a melhor combinação de parâmetros.
Tente outros indicadores de filtragem em vez de EMA, como Brinks, KDJ, etc., para ver se pode melhorar a eficácia da estratégia.
Aumentar o stop loss dinâmico para controlar o risco e evitar a expansão dos prejuízos.
Combinando com o mecanismo de seleção de ações, escolha ações com tendência mais forte para negociar.
Parâmetros de desenvolvimento auto-adaptação função, de acordo com a situação do mercado ajustar automaticamente os parâmetros
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.
/*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)