
이 전략은 기술 분석의 대가인 존 엘러스가 설계한 피셔 전환 지표에 기반하여, 가격 트렌드 반전 지점을 자동으로 식별하여, 장단 포지션을 자동으로 거래합니다. 그것의 가장 큰 장점은 가격 반전의 정확성과 적시에 있습니다.
이 전략은 피세 변환 공식을 사용하여 가격 표준화를 하고 가시 분포와 유사한 가격 순서를 생성한다. 피세 변환 공식은: y = 0.5 * ln((1+x) /(1-x)) 이다. 이 변환을 통해 가격 극한값을 상대적으로 더 드문 사건으로 변환할 수 있다. 최신 피세 변환 값이 이전 기간보다 높거나 낮을 때 가격 역전이 발생할 수 있음을 나타낸다. 이 전략은 지표의 전환점에 따라 거래 신호를 발산한다.
특히, 전략적 단계는 다음과 같습니다.
이 전략의 가장 큰 장점은 거래 신호의 정확성과 적시에 있습니다. 피셔 전환으로 생성 된 가격 순서가 가우스 분포에 거의 일치하기 때문에, 가격 반전이 발생하면 피셔 전환 지표가 빠르게 식별하고 그에 따라 반응 할 수 있습니다. 이것은 적시에 반전 기회를 잡을 수 있도록합니다. 또한, Ehlers 피셔 전환 지표 자체는 오랜 기간 동안 검증되었으며 반전 신호의 정확성은 매우 신뢰할 수 있습니다.
이 전략의 가장 큰 위험은 피셔 변환 후의 가격 순서가 반드시 합리론적 고스 분포와 완전히 일치하지 않는다는 것이다. 시장이 불규칙한 변동이 있을 때, 예를 들어 파열, 폭파 등이 있을 때, 피셔 변환 지표가 잘못된 신호를 발산하는 원인이 될 수 있다. 이 때 기계적으로 거래하면 더 큰 손실이 발생할 수 있다.
이 위험을 줄이기 위해, 다른 지표와 함께 거래 신호 필터를 고려하여 시장의 이상 상태에서 거래하는 것을 피할 수 있습니다. 또는 거래 주파수 및 단일 손실 규모를 줄이기 위해 매개 변수를 적절하게 조정할 수 있습니다.
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
이 전략은 Ehlers가 설계한 피시 전환 지표에 기반하여 가격 반전 지점을 신속하게 정확하게 식별하여 거래 기회를 제때 포착할 수 있습니다. 그것의 가장 큰 장점은 거래 신호의 정확성과 시점에 있습니다. 또한 약간의 위험이 있으며, 매개 변수 및 거래 규칙을 최적화하여 위험을 줄여야합니다.
/*backtest
start: 2023-12-08 00:00:00
end: 2024-01-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version = 2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 15/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.
//
// 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")
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 > nz(nFish[1]), 1,
iff(nFish < nz(nFish[1]), -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")