중력 중심 역 테스트 거래 전략

저자:차오장, 날짜: 2023-12-12 16:56:51
태그:

img

전반적인 설명

중력 중심 역검사 거래 전략은 이동 평균에 기반한 거래 전략이다. 그것은 가격의 중심을 계산하고 자산 코팅의 통로로 가격 채널을 구성합니다. 전략은 입력 설정에서 길고 짧게 변경할 수 있습니다.

전략 원칙

이 전략은 선형 회귀 함수를 통해 중력 중심 위치를 계산한다. 구체적으로, 그것은 길이 기간 동안의 폐쇄 가격의 선형 회귀 값을 계산한다. 이는 가격의 중심이다. 가격 채널은 이 기반에서 상향과 아래로 이동하여 %로 구성된다. 가격 채널의 상부 및 하부 경계는 각각 긴 및 짧은 신호로 사용됩니다. 가격이 상부 레일을 통과하면 길게; 가격이 하부 레일을 넘으면 짧게 가십시오. 신호 라인 매개 변수는 첫 번째 채널 또는 두 번째 채널의 상부 및 하부 레일을 거래 신호로 사용 여부를 선택하는 데 사용됩니다. 역 매개 변수는 길고 짧게 역전하는 데 사용됩니다.

이점 분석

이것은 다음과 같은 주요 장점을 가진 매우 간단한 탈출 전략입니다:

  1. 이 아이디어는 명확하고 이해하기 쉽고 실행하기 쉽습니다.
  2. 좋은 백테스트 결과와 실제 실행 가능성
  3. 다양한 시장 환경에 적응할 수 있는 유연한 매개 변수 설정
  4. 설정 가능한 역거래, 양방향 동작에 적합합니다.

위험 분석

이 전략은 또한 몇 가지 위험을 안고 있습니다.

  1. 백테스트 과정에서 과도한 리스크가 발생할 수 있습니다. 실제 거래에 대한 매개 변수를 다시 최적화해야합니다.
  2. 실패한 탈출은 큰 손실로 이어질 수 있습니다.
  3. 거래 빈도는 상대적으로 높을 수 있기 때문에 자본 사용 비율은 통제되어야합니다.

위험은 대역, 길이 등과 같은 매개 변수를 조정하여 제어 할 수 있습니다. 최대 손실을 제한하기 위해 Stop Loss도 설정할 수 있습니다.

최적화 방향

이 전략은 다음과 같은 방법으로 더 이상 최적화 될 수 있습니다.

  1. 트렌드 지표와 결합하여 신호를 필터하고 트렌드에 반하는 거래를 피하십시오.
  2. 스톱 손실 메커니즘을 추가합니다.
  3. 수익률을 높이기 위해 매개 변수 설정을 최적화합니다.
  4. 위험도를 줄이기 위해 위치 조절을 추가합니다.

요약

중력 센터 백테스팅 거래 전략은 간단한 브레이크아웃 전략입니다. 명확한 논리, 좋은 실용성 및 유연한 매개 변수 설정을 가지고 있습니다. 동시에 적절한 최적화 및 통제가 필요한 특정 위험도 있습니다. 이 전략은 라이브 거래 및 최적화을위한 기본 전략으로 적합하며 초보자도 배우기에 매우 적합합니다.


/*backtest
start: 2023-11-11 00:00:00
end: 2023-12-11 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 15/03/2018
// The indicator is based on moving averages. On the basis of these, the 
// "center" of the price is calculated, and price channels are also constructed, 
// which act as corridors for the asset quotations.
//
// You can change long to short in the Input Settings
// WARNING:
//  - For purpose educate only
//  - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Center Of Gravity Backtest", shorttitle="CFO", overlay = true)
Length = input(20, minval=1)
m = input(5, minval=0)
Percent = input(1, minval=0)
SignalLine = input(1, minval=1, maxval = 2, title = "Trade from line (1 or 2)")
reverse = input(false, title="Trade reverse")
xLG = linreg(close, Length, m)
xLG1r = xLG + ((close * Percent) / 100)
xLG1s = xLG - ((close * Percent) / 100)
xLG2r = xLG + ((close * Percent) / 100) * 2
xLG2s = xLG - ((close * Percent) / 100) * 2
xSignalR = iff(SignalLine == 1, xLG1r, xLG2r)
xSignalS = iff(SignalLine == 1, xLG1s, xLG2s)
pos = iff(close > xSignalR, 1,
       iff(close < xSignalS, -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(xLG, color=blue, title="CFO")
plot(xLG1r, color=green, title="LG1r")
plot(xLG2r, color=green, title="LG2r")
plot(xLG1s, color=red, title="LG1s")
plot(xLG2s, color=red, title="LG2s")

더 많은