이 전략은 선형 회귀 관절을 계산하기 위해 선형 회귀 관절 기술을 사용하고 양적 거래 전략을 구성하기 위해 거래 신호로 사용합니다. 주식의 가격 시간 시리즈를 분석함으로써 이 전략은 선형 회귀 추세 선에 부합하고 선형 회귀 관절을 사용하여 가격이 과대평가되거나 과대평가되었는지 판단하여 거래 신호를 생성합니다.
선형 회귀 교차는 시간 계열 값 X가 0일 때 Y의 예측 값 (일반적으로 가격) 을 나타냅니다. 이 전략은 매개 변수 Length를 미리 설정하고, 종료 가격을 소스 시퀀스로 취하고, 가장 최근의 Length 날의 선형 회귀 교차 (xLRI) 를 계산합니다. 종료 가격이 xLRI보다 높을 때, 긴; 종료 가격이 xLRI보다 낮을 때, 짧은.
구체적인 계산 공식은 다음과 같습니다.
xX = Length *(Length - 1)* 0.5
xDivisor = xX *xX - Length* Length *(Length - 1) *(2 * Length - 1) / 6
xXY = Σ(i *Closing Price[i]), i from 0 to Length-1
xSlope = (Length *xXY - xX* Σ(Closing Price, Length))/ xDivisor
xLRI = (Σ(Closing Price, Length) - xSlope * xX) / Length
이러한 계산을 통해 가장 최근의 길이 날의 선형 회귀 교차 xLRI를 얻을 수 있습니다. 전략은 거래 신호를 생성하기 위해 이를 기반으로 가격 최고와 최저를 판단합니다.
이 전략은 다음과 같은 장점을 가지고 있습니다.
이 전략에는 또한 몇 가지 위험이 있습니다.
대책:
이 전략은 다음 측면에서도 최적화 될 수 있습니다.
이 전략은 선형 회귀 교차에 기반한 간단한 양적 거래 전략을 구축합니다. 전반적으로 전략은 약간의 경제적 가치를 가지고 있지만 주목해야 할 몇 가지 위험도 있습니다. 지속적인 최적화를 통해 전략의 안정성과 수익성을 더욱 향상시킬 것으로 예상됩니다.
/*backtest start: 2023-11-28 00:00:00 end: 2023-12-28 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 21/03/2018 // Linear Regression Intercept is one of the indicators calculated by using the // Linear Regression technique. Linear regression indicates the value of the Y // (generally the price) when the value of X (the time series) is 0. Linear // Regression Intercept is used along with the Linear Regression Slope to create // the Linear Regression Line. The Linear Regression Intercept along with the Slope // creates the Regression line. // // You can change long to short in the Input Settings // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// strategy(title="Line Regression Intercept Backtest", overlay = true) Length = input(14, minval=1) xSeria = input(title="Source", defval=close) reverse = input(false, title="Trade reverse") xX = Length * (Length - 1) * 0.5 xDivisor = xX * xX - Length * Length * (Length - 1) * (2 * Length - 1) / 6 xXY = 0 for i = 0 to Length-1 xXY := xXY + (i * xSeria[i]) xSlope = (Length * xXY - xX * sum(xSeria, Length)) / xDivisor xLRI = (sum(xSeria, Length) - xSlope * xX) / Length pos = iff(close > xLRI, 1, iff(close < xLRI, -1, nz(pos[1], 0))) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) barcolor(possig == -1 ? red: possig == 1 ? green : blue ) plot(xLRI, color=blue, title="LRI")