
이 전략은 선형 회귀 지표와 쌍 지수 이동 평균을 결합하여 단선 추적 동작을 구현한다. 이 전략은 가격 돌파구가 상하로 갈 때 포지션을 공백하고, 가격이 다시 돌파구가 될 때 평소 포지션을 기반으로 한다. 동시에, 이 전략은 쌍 지수 이동 평균을 사용하여 가격 경향을 판단하여 포지션을 구축하는 보조 조건으로 한다.
이 전략은 주로 선형 회귀 지표를 통해 가격의 돌파구를 판단한다. 선형 회귀 지표는 선형 회귀법을 사용하여 일정 주기 동안의 최고 가격과 최저 가격에 따라 계산된 상하 궤도이다. 가격이 상하 궤도에서 또는 하하 궤도에서 돌파 할 때, 우리는 거래 신호라고 생각합니다.
또한, 이 전략은 쌍 지수 이동 평균 판단 중간 트렌드를 도입한다. 쌍 지수 이동 평균은 가격 변화에 더 빨리 반응 할 수 있다. 가격이 상반에서 하향으로 이동하면 쌍 지수 이동 평균이 이미 가격 위에 있다면, 현재 하향 추세에 있음을 나타냅니다. 이 때 우리는 포지션을 설정한다. 가격이 다시 상향 궤도를 돌파하거나 쌍 지수 이동 평균을 돌파 할 때, 우리는 포지션을 평정한다.
특히, 전략은 다음과 같은 요점을 포함합니다.
전통적인 이동 평균과 같은 지표에 비해 이 전략은 다음과 같은 장점이 있습니다.
이 전략에는 몇 가지 위험도 있습니다.
위와 같은 위험은 변수 최적화, 엄격한 손해, 적절한 침입 폭 완화 등의 방법으로 해결할 수 있습니다.
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
이 전략은 선형 회귀 지표와 이중 지수 이동 평균을 통합하여 이론과 실무에서 어느 정도 장점이 있다. 지속적인 최적화 조정으로 안정성과 전략 효과를 더욱 향상시킬 수 있다. 이 전략은 짧은 선의 연산에 적합하며, 양자 거래자에게 좋은 알파를 가져올 수 있다.
/*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))