protected override Decimal Calculate(int index) { var highestHigh = new HighestValueIndicator(_maxPriceIndicator, _timeFrame); var lowestMin = new LowestValueIndicator(_minPriceIndicator, _timeFrame); var highestHighPrice = highestHigh.GetValue(index); var lowestLowPrice = lowestMin.GetValue(index); return(((highestHighPrice.Minus(_indicator.GetValue(index))).DividedBy(highestHighPrice.Minus(lowestLowPrice))).MultipliedBy(Multiplier)); }
/// <summary> /// Constructor. /// </summary> /// <param name="price"> the price indicator (usually <seealso cref="MedianPriceIndicator"/>) </param> /// <param name="timeFrame"> the time frame (usually 10) </param> /// <param name="alphaD"> the alpha (usually 0.33) </param> /// <param name="betaD"> the beta (usually 0.67) </param> /// <param name="gammaD">gammaD the gamma (usually 0.25 or 0.5)</param> /// <param name="deltaD">deltaD the delta (usually 0.5)</param> /// <param name="densityFactorD">densityFactorD the density factor (usually 1.0)</param> /// <param name="isPriceIndicator">isPriceIndicator use true, if "price" is a price indicator</param> internal FisherIndicator(IIndicator <Decimal> price, int timeFrame, double alphaD, double betaD, double gammaD, double deltaD, double densityFactorD, bool isPriceIndicator) : base(price) { _price = price; _gamma = Decimal.ValueOf(gammaD); _delta = Decimal.ValueOf(deltaD); _densityFactor = Decimal.ValueOf(densityFactorD); var alpha = Decimal.ValueOf(alphaD); var beta = Decimal.ValueOf(betaD); IIndicator <Decimal> periodHigh = new HighestValueIndicator(isPriceIndicator ? new MaxPriceIndicator(price.TimeSeries) : price, timeFrame); IIndicator <Decimal> periodLow = new LowestValueIndicator(isPriceIndicator ? new MinPriceIndicator(price.TimeSeries) : price, timeFrame); _intermediateValue = new RecursiveCachedIndicatorAnonymousInnerClass(this, alpha, beta, periodHigh, periodLow); }
public ParabolicSarIndicator(TimeSeries series, int timeFrame) : base(series) { _series = series; _lowestValueIndicator = new LowestValueIndicator(new MinPriceIndicator(series), timeFrame); _highestValueIndicator = new HighestValueIndicator(new MaxPriceIndicator(series), timeFrame); }
/// <summary> /// Constructor. </summary> /// <param name="series"> the time series </param> /// <param name="timeFrame"> the time frame (usually 22) </param> /// <param name="k"> the K multiplier for ATR (usually 3.0) </param> public ChandelierExitShortIndicator(TimeSeries series, int timeFrame, Decimal k) : base(series) { _low = new LowestValueIndicator(new MinPriceIndicator(series), timeFrame); _atr = new AverageTrueRangeIndicator(series, timeFrame); _k = k; }