0% found this document useful (0 votes)
186 views

Fisher Transform Explained As Technical Analysis Indicator

This document describes a Fisher transform signal indicator used to identify trend directions in financial markets. It calculates a value between -1 and 1 based on the high-low price range over a period. This value is transformed using previous periods' values to generate the Fisher signal. Uptrends and downtrends are identified based on the signal crossing above or below thresholds in relation to previous periods. The indicator is designed to help identify trend reversals on technical indicators or as a standalone signal.

Uploaded by

John Townsend
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
186 views

Fisher Transform Explained As Technical Analysis Indicator

This document describes a Fisher transform signal indicator used to identify trend directions in financial markets. It calculates a value between -1 and 1 based on the high-low price range over a period. This value is transformed using previous periods' values to generate the Fisher signal. Uptrends and downtrends are identified based on the signal crossing above or below thresholds in relation to previous periods. The indicator is designed to help identify trend reversals on technical indicators or as a standalone signal.

Uploaded by

John Townsend
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2

//FISHER TRANSFORM SIGNALS BIA! //MY NOTES MAY BE IMPERFECT, SO KEEP A CRITICAL EYE AS YOU'RE INTERPRETING.

//THIS SIGNAL APPEARING JUST AFTER, ON, OR PRIOR TO AN EXHAUSTION SIGNAL (OR EVE N ALL BY ITSELF) ROCKS. input threshold = 1.0; input length = 10; //I think I may like 8 better -- not sure of best length or threshold for use with TE or TD sigs input price = hl2; //price is (high - low) / 2 def maxHigh = Highest(price, length); //find highest HL2 over length periods def minLow = Lowest(price, length); //find lowest HL2 over length periods def range = maxHigh - minLow; //the HL2-range of the 10 period window def value = if IsNaN(price) //if price is not a number then, not a number then Double.NaN else if IsNaN(range) //if range is not a number... then value[1] //then use last value (number or not) else if range == 0 //if range is 0 then 0 then 0 else 0.66 * ((price - minLow) / range - 0.5) + 0.67 * value[1]; //ELSE...TO GET 'VALUE' SUBTRACT PRICE (HL2) FROM LOWEST HL-PRICE IN 10 PERIOD W INDOW, //DIVIDE THAT DIFFERENCE BY ENTIRE HL2-RANGE OF THE LAST LENGTH-PERIODS, //AND MULTIPLY THAT QUOTIENT BY .66; //THEN MULTIPLY THE PRIOR PERIOD'S 'VALUE' BY .67; //AND ADD THE TWO PRODUCTS TOGETHER. //'VALUE' IS THIS SUM def truncValue = if value > 0.99 then 0.999 else if value < -0.99 then -0.999 el se value; //GOTTA TRUNCATE .99 TO 3 DECIES IN TOS ETC def fish = 0.5 * (log((1 + truncValue) / (1 - truncValue)) + fish[1]); //TO GET 'FISH' ADD 1 TO 'VALUE'; SUBTRACT 'VALUE' FROM 1; DIVIDE '1+VALUE' BY ' 1-VALUE'; //TAKE THE LOG OF THAT QUOTIENT; //ADD THE LOG TO THE PRIOR PERIOD'S 'FISH' CALCULATION. def FT = fish; //lazy //DOWN TREND? def trendDown = if FT<FT[1] and FT[1]>FT[2] and FT[1]>= threshold then 1 else 0; //SHOULD BE SIMPLE TO UNDERSTAND BUT... //IF FISH IS LESS THAN PRIOR FISH (ONE PERIOD AGO); //AND PRIOR FISH (ONE PERIOD AGO) IS GREATER THAN THE FISH JUST PRIOR TO IT (FIS H 2 PERIODS PRIOR TO PRESENT); //AND PRIOR FISH (ONE PERIOD AGO) IS >= 1 THEN ITS A DOWNTREND (BOO!) //UP TREND? def trendUp = if FT>FT[1] and FT[1]<FT[2] and FT[1]<= -threshold then 1 else 0; //YOU GET THE IDEA... //IF FISH IS GREATER THAN PRIOR FISH; AND PRIOR FISH LESS THAN FISH JUST PRIOR T

O IT (2 FISHES PRIOR TO PRESENT); AND PRIOR FISH (ONE PERIOD AGO) IS <= -1 THEN UPTREND (YAY!)

You might also like