피브 포인트 예측 오시레이터 백테스팅 전략

저자:차오장, 날짜: 2023-12-20 13:44:26
태그:

img

전반적인 설명

이 전략은 투샤르 찬데가 개발한 피보트 포인트 예측 오시일레이터를 백테스트합니다. 오시일레이터는 종료 가격과 n 기간 선형 회귀 예측 가격 사이의 비율 차이를 계산합니다. 예측 가격이 종료 가격보다 크면 0을 넘고 종료 가격보다 작을 때 0을 넘습니다. 이것은 시장의 전환점을 식별하는 데 사용할 수 있습니다.

전략 논리

이 전략은 시장 방향을 결정하기 위해 피보트 포인트 예측 오시일레이터를 사용합니다. 구체적으로 n 기간 선형 회귀 예측 가격과 실제 폐쇄 가격 사이의 비율 차이를 계산합니다. 비율 차이가 0을 넘으면 길게됩니다. 비율 차이가 0을 넘으면 짧게됩니다. 전체 거래 논리는 다음과 같습니다.

  1. n 기간 선형 회귀 예측 가격 xLG를 계산합니다
  2. 종료 가격과 예측 가격 xCFO 사이의 비율 차이를 계산합니다.
  3. xCFO와 0 사이의 관계와 출력 신호 포시그를 결정
    1. xCFO > 0 및 long가 허용됩니다, possig = 1
    2. xCFO < 0 및 짧은 경우 허용됩니다. possig = -1
    3. 그렇지 않으면, possig = 0
  4. 포시그 신호에 따라 길거나 짧게

이 전략은 간단하고 직선적이며 실제 가격을 예측 가격과 비교하여 시장이 과대평가되거나 과소평가되었는지 판단하여 거래 신호를 생성합니다.

이점 분석

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

  1. 명확한 논리, 이해하기 쉽고 실행하기 쉽습니다.
  2. 몇 개의 매개 변수, 조정하기 쉽습니다.
  3. 유연하고 다양한 시장에 적응할 수 있는 기간 선택
  4. 길고 짧은 사이로 전환하기 편리합니다.
  5. 시각 지표는 명확한 거래 신호를 형성합니다.

위험 분석

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

  1. 선형 회귀 예측은 시속성이 있고, 효과를 유지하지 않을 수도 있습니다.
  2. 부적절한 매개 변수 선택은 과잉 거래로 이어질 수 있습니다.
  3. 블랙 스완 사건은 잘못된 신호를 일으킬 수 있습니다.

대책:

  1. 선형 회귀 예측의 유효성을 보장하기 위해 다른 지표와 결합합니다.
  2. 거래 빈도를 낮추기 위해 매개 변수를 최적화합니다.
  3. 단일 트레이드 손실을 제어하기 위해 스톱 로스를 추가합니다.

최적화 방향

이 전략은 다음과 같은 측면에서 개선될 수 있습니다.

  1. MA 및 다른 지표와 결합하여 거래 신호를 풍부하게 만듭니다.
  2. 큰 손실을 피하기 위해 Stop Loss를 추가합니다.
  3. 가장 좋은 조합을 찾기 위해 매개 변수를 최적화하세요.
  4. 자동 수익을 추가합니다.
  5. 거래 비용을 고려하고 합리적인 스톱 로스를 설정하고 수익을 취하십시오.

결론

피보트 포인트 예측 오시일레이터는 선형 회귀 예측 가격을 활용한 양자 거래 전략이다. 전략은 간단한 논리와 유연한 매개 변수를 가지고 있으며 명확한 거래 신호를 생성합니다. 더 나은 거래 성과를 달성하기 위해 스톱 로스 최적화, 매개 변수 선택, 다른 지표 신호 등을 결합하는 데 추가 개선이 가능합니다.


/*backtest
start: 2022-12-13 00:00:00
end: 2023-12-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 19/03/2018
// The Chande Forecast Oscillator developed by Tushar Chande The Forecast 
// Oscillator plots the percentage difference between the closing price and 
// the n-period linear regression forecasted price. The oscillator is above 
// zero when the forecast price is greater than the closing price and less 
// than zero if it is below.
//
// You can change long to short in the Input Settings
// WARNING:
//  - For purpose educate only
//  - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Chande Forecast Oscillator Backtest", shorttitle="CFO")
Length = input(14, minval=1)
Offset = input(0)
reverse = input(false, title="Trade reverse")
hline(0, color=black, linestyle=line)
xLG = linreg(close, Length, Offset)
xCFO = ((close -xLG) * 100) / close
pos = iff(xCFO > 0, 1,
       iff(xCFO < 0, -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(xCFO, color=red, title="CFO")

더 많은