public static DirectionalIndicatorPlus Create(int periods)
        {
            AverageDirectionalMovementPlus admPlus = AverageDirectionalMovementPlus.Create(periods);
            AverageTrueRange atr = AverageTrueRange.Create(periods);

            double Function(CandleTimeSeries series, DateTime instant)
            {
                return(admPlus[series, instant].DivideBy(atr[series, instant]));
            }

            DirectionalIndicatorPlus result = new DirectionalIndicatorPlus(Function);

            return(result);
        }
Ejemplo n.º 2
0
        public static DirectionalMovementIndex Create(int periods)
        {
            DirectionalIndicatorPlus  diPlus  = DirectionalIndicatorPlus.Create(periods);
            DirectionalIndicatorMinus diMinus = DirectionalIndicatorMinus.Create(periods);

            double Function(CandleTimeSeries series, DateTime instant)
            {
                double diDiff = Math.Abs(diPlus[series, instant] - diMinus[series, instant]);
                double diSum  = diPlus[series, instant] + diMinus[series, instant];
                double dx     = diDiff.DivideBy(diSum);

                return(dx);
            }

            DirectionalMovementIndex index = new DirectionalMovementIndex(Function);

            return(index);
        }