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));
        }
Beispiel #2
0
        /// <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;
 }