선형 회귀 교류에 기초한 양자 전략

저자:차오장, 날짜: 2023-12-29 11:45:20
태그:

img

전반적인 설명

이 전략은 선형 회귀 관절을 계산하기 위해 선형 회귀 관절 기술을 사용하고 양적 거래 전략을 구성하기 위해 거래 신호로 사용합니다. 주식의 가격 시간 시리즈를 분석함으로써 이 전략은 선형 회귀 추세 선에 부합하고 선형 회귀 관절을 사용하여 가격이 과대평가되거나 과대평가되었는지 판단하여 거래 신호를 생성합니다.

전략 원칙

선형 회귀 교차는 시간 계열 값 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를 얻을 수 있습니다. 전략은 거래 신호를 생성하기 위해 이를 기반으로 가격 최고와 최저를 판단합니다.

장점

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 선형 회귀 기술을 사용하여 가격에 대한 특정 예측 및 트렌드 판단 기능을 가지고 있습니다.
  2. 더 적은 매개 변수, 더 간단한 모델, 이해하기 쉽고 구현하기 쉽습니다.
  3. 조정 가능한 매개 변수 길이가 전략 유연성을 조정합니다.

위험 과 해결책

이 전략에는 또한 몇 가지 위험이 있습니다.

  1. 선형 회귀 조정은 단순히 역사적 데이터에 기초한 통계적 조정이며, 미래의 가격 추세를 예측할 수 있는 능력은 제한적입니다.
  2. 만약 회사의 기본이 크게 변화한다면 선형 회귀 조정의 결과는 무효가 될 수 있습니다.
  3. 부적절한 설정의 파라미터 길이는 과장 montage로 이어질 수 있습니다.

대책:

  1. 부적절한 부착을 방지하기 위해 길이를 적절히 단축합니다.
  2. 회사의 기본 변동에 주의를 기울이고 필요한 경우 수동으로 개입하여 포지션을 닫습니다.
  3. 시장 조건에 따라 동적으로 조정할 수 있는 적응 파라미터 Length를 채택합니다.

최적화 방향

이 전략은 다음 측면에서도 최적화 될 수 있습니다.

  1. 단일 손실을 제어하기 위해 스톱 손실 메커니즘을 추가합니다.
  2. 다른 지표와 결합하여 안정성을 향상시키기 위한 조합 전략을 형성합니다.
  3. 매개 변수 자체 적응 최적화 모듈을 추가하여 길이 매개 변수를 동적으로 변경합니다.
  4. 포지션 컨트롤 모듈을 추가해서 오버 트레이딩을 방지해

요약

이 전략은 선형 회귀 교차에 기반한 간단한 양적 거래 전략을 구축합니다. 전반적으로 전략은 약간의 경제적 가치를 가지고 있지만 주목해야 할 몇 가지 위험도 있습니다. 지속적인 최적화를 통해 전략의 안정성과 수익성을 더욱 향상시킬 것으로 예상됩니다.


/*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")

더 많은