Table of Contents

Class FisherTransform

Namespace
FinanceSharp.Indicators
Assembly
FinanceSharp.dll

The Fisher transform is a mathematical process which is used to convert any data set to a modified data set whose Probability Distribution Function is approximately Gaussian. Once the Fisher transform is computed, the transformed data can then be analyzed in terms of it's deviation from the mean.

The equation is y = .5 * ln [ 1 + x / 1 - x ] where x is the input y is the output ln is the natural logarithm

The Fisher transform has much sharper turning points than other indicators such as MACD

For more info, read chapter 1 of Cybernetic Analysis for Stocks and Futures by John F. Ehlers

We are implementing the latest version of this indicator found at Fig. 4 of http://www.mesasoftware.com/papers/UsingTheFisherTransform.pdf

public class FisherTransform : BarIndicator, IIndicator, IUpdatable
Inheritance
FisherTransform
Implements
Inherited Members
Extension Methods

Constructors

FisherTransform(int)

Initializes a new instance of the FisherTransform class with the default name and period

public FisherTransform(int period)

Parameters

period int

The period of the WMA

FisherTransform(string, int)

A Fisher Transform of Prices

public FisherTransform(string name, int period)

Parameters

name string

string - the name of the indicator

period int

The number of periods for the indicator

Properties

IsReady

Gets a flag indicating when this indicator is ready and fully initialized

public override bool IsReady { get; }

Property Value

bool

WarmUpPeriod

Required period, in data points, for the indicator to be ready and fully initialized.

public override int WarmUpPeriod { get; }

Property Value

int

Methods

Forward(long, DoubleArray)

Computes the next value in the transform. value1 is a function used to normalize price withing the last _period day range. value1 is centered on its midpoint and then doubled so that value1 wil swing between -1 and +1. value1 is also smoothed with an exponential moving average whose alpha is 0.33.

Since the smoothing may allow value1 to exceed the _period day price range, limits are introduced to preclude the transform from blowing up by having an input larger than unity.

protected override DoubleArray Forward(long time, DoubleArray input)

Parameters

time long
input DoubleArray

DoubleArray - the time and value of the next price

Returns

DoubleArray

Reset()

Resets this indicator to its initial state

public override void Reset()