Fisher Transform 지표 백테스팅 전략


생성 날짜: 2024-01-25 14:22:36 마지막으로 수정됨: 2024-01-25 14:22:36
복사: 0 클릭수: 772
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

Fisher Transform 지표 백테스팅 전략

개요

이 전략은 피셔 변동 지표에 기반한 피드백 전략이다. 피셔 변동 공식은 가격 데이터를 정형 분포로 변환하여 가격 극점과 전환점을 식별하는 데 사용됩니다. 이 전략은 피셔 변동 지표와 결합하여 가격 추세를 판단하여 자동화된 거래를 구현한다.

전략 원칙

  1. HL2 지표 계산
  2. 가장 최근의 Length 기간 동안 HL2의 최대 xMaxH와 최소 xMinL을 계산한다.
  3. 피셔 변환 지수를 계산합니다.
    • nValue1은 0.33 × ((HL2 표준화) + 0.67 × nValue1의 이전 주기 값
    • nValue2 제한 nValue1은 -0.99에서 0.99 사이
    • nFish를 nValue2의 대수 함수로 변환
  4. nFish의 위치 방향을 결정하기 위해 nFish의 위치 방향을 결정하기 위해 nFish의 위치 방향을 결정합니다.
  5. 포지션 신호 possig, 역거래를 설정하면 포지션이 역거래
  6. 입시: possig=1 더하기, possig=-1 공백

전략적 강점 분석

  1. 피셔 변환 지표는 가격의 극한점과 전환점을 식별하여 트렌드를 정확하게 판단할 수 있습니다.
  2. HL2 지표 필터 흔들림과 결합하여 승률을 높인다.
  3. 다양한 시장 환경에 적응할 수 있는 역거래 설정
  4. 자동화 거래, 인적 판단 없이 거래 비용 절감

위험 분석

  1. 피셔 변동 지표가 지연되어 단선 가격 변화를 놓칠 수 있습니다.
  2. 지진 추세가 중단될 위험이 크다
  3. 역거래 설정이 부적절하면 체계적으로 잘못된 거래가 발생할 수 있습니다.
  4. 시간주기 검증이 고려되지 않은 경우, 부정확성 위험이 있습니다.

위험 해소:

  1. 지연을 줄이기 위해 매개 변수를 적절하게 조정합니다.
  2. 단편적 손실을 통제하기 위해
  3. 역거래를 최적화하여 다른 지표와 결합하여 필터링
  4. 트렌드, 가격 등급, 파급 등 다중 검증

전략 최적화 방향

  1. 트렌드 지표 필터링과 결합하여 큰 트렌드 일관성을 보장합니다.
  2. 가격 전환의 정확성을 높이기 위해 파급 지표를 추가합니다.
  3. 여러 시간 주기의 검증으로, 거짓 양성 반응을 피합니다.
  4. 동적으로 조정된 중지량
  5. 최적화 매개 변수, 최대 승률 및 수익 요인

이러한 최적화 전략은 전략의 승률을 더욱 높이고, 수익을 고정시키고, 위험을 통제하여 보다 안정적이고 효율적인 거래 결과를 얻을 수 있다.

요약하다

피셔 변동 지표 리테크 전략은 가격 전환점과 트렌드 방향을 판단하는 피셔 변동 지표를 통합한다. 이 전략은 정확하고, 자동화 정도가 높으며, 변수 최적화를 통해 안정적이고 효율적인 거래 결과를 얻을 수 있다. 하지만, 일정 차질, 거짓 긍정 등의 위험도 존재하며, 반복 검증 메커니즘과 동적 조정 방식을 도입하여 전략을 더 탄력하고 거칠게 하는 데 추가적인 최적화가 필요하다.

전략 소스 코드
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version = 2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v2.0 22/12/2016
// 	Market prices do not have a Gaussian probability density function
// 	as many traders think. Their probability curve is not bell-shaped.
// 	But trader can create a nearly Gaussian PDF for prices by normalizing
// 	them or creating a normalized indicator such as the relative strength
// 	index and applying the Fisher transform. Such a transformed output 
// 	creates the peak swings as relatively rare events.
// 	Fisher transform formula is: y = 0.5 * ln ((1+x)/(1-x))
// 	The sharp turning points of these peak swings clearly and unambiguously
// 	identify price reversals in a timely manner. 
//
//  For signal used zero. 
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Fisher Transform Indicator by Ehlers Backtest", shorttitle="Fisher Transform Indicator by Ehlers")
Length = input(10, minval=1)
reverse = input(false, title="Trade reverse")
hline(1, color=white)
xHL2 = hl2
xMaxH = highest(xHL2, Length)
xMinL = lowest(xHL2,Length)
nValue1 = 0.33 * 2 * ((xHL2 - xMinL) / (xMaxH - xMinL) - 0.5) + 0.67 * nz(nValue1[1])
nValue2 =   iff(nValue1 > .99,  .999,
	         iff(nValue1 < -.99, -.999, nValue1))
nFish = 0.5 * log((1 + nValue2) / (1 - nValue2)) + 0.5 * nz(nFish[1])
pos = iff(nFish > 0, 1,
	   iff(nFish < 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(nFish, color=green, title="Fisher")
plot(nz(nFish[1]), color=red, title="Trigger")