
이 전략은 피셔 변동 지표에 기반한 피드백 전략이다. 피셔 변동 공식은 가격 데이터를 정형 분포로 변환하여 가격 극점과 전환점을 식별하는 데 사용됩니다. 이 전략은 피셔 변동 지표와 결합하여 가격 추세를 판단하여 자동화된 거래를 구현한다.
위험 해소:
이러한 최적화 전략은 전략의 승률을 더욱 높이고, 수익을 고정시키고, 위험을 통제하여 보다 안정적이고 효율적인 거래 결과를 얻을 수 있다.
피셔 변동 지표 리테크 전략은 가격 전환점과 트렌드 방향을 판단하는 피셔 변동 지표를 통합한다. 이 전략은 정확하고, 자동화 정도가 높으며, 변수 최적화를 통해 안정적이고 효율적인 거래 결과를 얻을 수 있다. 하지만, 일정 차질, 거짓 긍정 등의 위험도 존재하며, 반복 검증 메커니즘과 동적 조정 방식을 도입하여 전략을 더 탄력하고 거칠게 하는 데 추가적인 최적화가 필요하다.
/*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")