Esta estratégia combina indicadores de regressão linear e médias móveis exponenciais duplas para implementar operações de rastreamento de curto prazo. A estratégia estabelece posições curtas quando os preços quebram os trilhos superior e inferior e fecha posições quando os preços quebram novamente. Ao mesmo tempo, esta estratégia também usa médias móveis exponenciais duplas para determinar as tendências de preços como uma condição auxiliar para estabelecer posições.
Esta estratégia usa principalmente indicadores de regressão linear para determinar as quebras de preços. O indicador de regressão linear é calculado com base nos preços mais altos e mais baixos durante um determinado período usando regressão linear para obter trilhos superiores e inferiores. Quando os preços quebram do trilho superior ou quebram do trilho inferior, acreditamos que é um sinal de negociação.
Além disso, esta estratégia também introduz médias móveis exponenciais duplas para determinar a tendência intercalar. As médias móveis exponenciais duplas podem responder mais rapidamente às mudanças de preço. Quando os preços quebram do trilho superior, se a média móvel exponencial dupla já estiver acima do preço neste momento, isso indica que está atualmente em uma tendência de queda. Vamos estabelecer posições curtas. Quando os preços quebram o trilho superior novamente ou quebram a média móvel exponencial dupla, vamos nivelar as posições.
Em especial, os principais pontos da estratégia incluem:
Em comparação com a média móvel tradicional e outros indicadores, esta estratégia tem as seguintes vantagens:
Esta estratégia tem também alguns riscos a considerar:
Para os riscos acima, podemos resolvê-los por otimização de parâmetros, perda de parada rigorosa, relaxando adequadamente a amplitude de ruptura, etc.
Esta estratégia pode também ser otimizada nos seguintes aspectos:
Esta estratégia usa abrangentemente indicadores de regressão linear e médias móveis exponenciais duplas, o que tem certas vantagens na teoria e na prática. Melhorias adicionais na estabilidade e resultados da estratégia podem ser alcançados através de otimização e ajuste contínuos. Esta estratégia é adequada para operações de curto prazo e pode trazer um bom alfa para os traders quantitativos.
/*backtest start: 2023-12-26 00:00:00 end: 2024-01-25 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy('LR&SSL_Short', overlay=true) startP = timestamp(input(2017, "Start Year"), input(12, "Month"), input(17, "Day"), 0, 0) end = timestamp(9999,1,1,0,0) _testPeriod() => true len = input(title="Period", defval=89) smaHigh = linreg(high, len, 0) smaLow = linreg(low, len, -1) Hlv = 0.0 Hlv := close > smaHigh ? 1 : close < smaLow ? -1 : Hlv[1] sslDown = Hlv < 0 ? smaHigh : smaLow sslUp = Hlv < 0 ? smaLow : smaHigh plot(sslDown, linewidth=2, color=color.red) plot(sslUp, linewidth=2, color=color.lime) length = input(200, title="DEMA") d1 = ema(close, length) d2 = 2 * d1 - ema(d1, length) trendColour = d2 > d1 ? #AAFFAA : #FFAAAA dema=sma(d2,length) turnGreen = d2 > d1 and d2[1] <= d1[1] turnRed = d2 <= d1 and d2[1] > d1[1] up =turnGreen down=turnRed plotshape(down, title="down", style=shape.triangledown,location=location.abovebar, color=color.red, transp=0, size=size.small) plotshape(up, title="up", style=shape.triangleup,location=location.belowbar, color=color.green, transp=0, size=size.small) plot(dema, color = trendColour,linewidth=3 ,transp = 0) bgcolor(close > dema ? color.green : color.red) strategy.entry("short", strategy.short, when= crossunder(sslUp, sslDown) and dema > close and _testPeriod()) strategy.close("short", when = crossover(sslUp, sslDown) or crossover(close, dema))