이 전략은 피셔 변환 지표에 기반한 백테스팅 전략이다. 피셔 변환 공식은 가격 극단과 전환점을 식별하기 위해 가격 데이터를 정상 분포로 변환할 수 있다. 이 전략은 피셔 변환 지표를 결합하여 가격 추세를 결정하고 자동화된 거래를 달성한다.
위험 해결 방법:
위의 최적화는 전략의 승률을 더욱 향상시키고, 이익을 잠금하고, 위험을 통제하고, 더 안정적이고 효율적인 거래 결과를 얻을 수 있습니다.
피셔 변환 지표 백테스팅 전략은 피셔 변환 지표를 통합하여 가격 반전점과 트렌드 방향을 결정합니다. 이 전략은 정확한 판단과 높은 수준의 자동화를 가지고 있습니다. 매개 변수 최적화를 통해 안정적이고 효율적인 거래 결과를 얻을 수 있습니다. 그러나 지연 및 거짓 양성과 같은 특정 위험도 있습니다. 전략을 더 유연하고 견고하게 만들기 위해 여러 검증 메커니즘과 동적 조정 방법을 도입하여 추가 최적화가 필요합니다.
/*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")