HPotter

Fisher Transform Indicator by Ehlers - Strategy

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.
Remove from Favorite Scripts Add to Favorite Scripts
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 01/07/2014
// 	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. 
////////////////////////////////////////////////////////////
study(title="Fisher Transform Indicator by Ehlers Strategy", shorttitle="Fisher Transform Indicator by Ehlers")
Length = input(10, minval=1)
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))) 
barcolor(pos == -1 ? red: pos == 1 ? green : blue )
plot(nFish, color=green, title="Fisher")
plot(nz(nFish[1]), color=red, title="Trigger")

Comments

Mr. Potter, what if the Fisher line is just crossing above the Trigger line and both are trending upward, however the candle is red instead of green that day. Is it still a buy signal? Thanks!
+7 Reply
Can you explain " + 0.5 * nz(nFish)" ? Thanks.
+1 Reply
Mr Potter, you are a coding genius! I been trying out several of your indicators, very cool indeed. I look forward to trying this one out.
+1 Reply
HPotter HermanBrummer
Thank you.
Reply
HermanBrummer HermanBrummer
Wow, this works great. Exactly, what I needed.

Reply
HPotter HermanBrummer
Very cool!
Reply
@HPotter,
Hi can you plz send me the amibroker afl for the above Elher fisher code as the mention above ( mentioned code is not working in amibroker)
Reply
HPotter kanwarshikher
@kanwarshikher, I not have this.
Reply
n3g4t1v3 kanwarshikher
@kanwarshikher, Did you try to use his pine code in amibroker?
Reply
HPotter n3g4t1v3
@n3g4t1v3, No.
Reply
Home Stock Screener Forex Screener Crypto Screener Economic Calendar How It Works Chart Features Pricing Refer a friend House Rules Help Center Website & Broker Solutions Widgets Charting Solutions Lightweight Charting Library Blog & News Twitter
Profile Profile Settings Account and Billing Referred friends Coins My Support Tickets Help Center Ideas Published Followers Following Private Messages Chat Sign Out