Exemplo n.º 1
0
        public ITaLibOutput <double[]> ParabolicSar(Frequency unitType, int historiesLength, int acceleration = 0, int maximum = 0)
        {
            var inputs = new IndicatorsInputs(database, historiesLength);

            database.FillMarketHistory(unitType, inputs.OutputArrayLength);

            double[] highs = database.CurrentHistory
                             .Select(bar => bar.PriceHigh)
                             .ToArray();

            double[] lows = database.CurrentHistory
                            .Select(bar => bar.PriceLow)
                            .ToArray();

            var output = new TaLibOutput <double[]> {
                Series           = new double[inputs.OutputArrayLength],
                HistoryWasCustom = database.HistoryIsCustom
            };
            int outBeginningIndex = 0;
            int outNBElement      = 0;

            output.Outcome = Core.Sar(startIdx: inputs.StartingIndex,
                                      endIdx: inputs.EndIndex,
                                      inHigh: highs,
                                      inLow: lows,
                                      optInAcceleration: acceleration,
                                      optInMaximum: maximum,
                                      outBegIdx: out outBeginningIndex,
                                      outNBElement: out outNBElement,
                                      outReal: output.Series);
            output.AlgorithmsBeginningIndex = outBeginningIndex;
            output.NBElement = outNBElement;
            return(output);
        }
Exemplo n.º 2
0
        public ITaLibOutput <double[]> MidPointPriceOverPeriod(Frequency unitType, int historiesLength, int timePeriod = 14)
        {
            var inputs = new IndicatorsInputs(database, historiesLength);

            database.FillMarketHistory(unitType, inputs.OutputArrayLength);

            double[] highs = database.CurrentHistory
                             .Select(bar => bar.PriceHigh)
                             .ToArray();

            double[] lows = database.CurrentHistory
                            .Select(bar => bar.PriceLow)
                            .ToArray();

            var output = new TaLibOutput <double[]> {
                Series           = new double[inputs.OutputArrayLength],
                HistoryWasCustom = database.HistoryIsCustom
            };
            int outBeginningIndex = 0;
            int outNBElement      = 0;

            output.Outcome = Core.MidPrice(startIdx: inputs.StartingIndex,
                                           endIdx: inputs.EndIndex,
                                           inHigh: highs,
                                           inLow: lows,
                                           optInTimePeriod: timePeriod,
                                           outBegIdx: out outBeginningIndex,
                                           outNBElement: out outNBElement,
                                           outReal: output.Series);
            output.AlgorithmsBeginningIndex = outBeginningIndex;
            output.NBElement = outNBElement;
            return(output);
        }
Exemplo n.º 3
0
        public ITaLibOutput <double[]> MovingAverageWithVariablePeriod(Frequency unitType, double[] periodsPerPrices, int historiesLength, Core.MAType movingAverageType = Core.MAType.Sma, int minPeriod = 2, int maxPeriod = 30)
        {
            var inputs = new IndicatorsInputs(database, historiesLength);

            database.FillMarketHistory(unitType, inputs.OutputArrayLength);

            double[] closingHistory = database.CurrentHistory
                                      .Select(bar => bar.ClosingPrice)
                                      .ToArray();

            var output = new TaLibOutput <double[]> {
                Series           = new double[inputs.OutputArrayLength],
                HistoryWasCustom = database.HistoryIsCustom
            };
            int outBeginningIndex = 0;
            int outNBElement      = 0;

            output.Outcome = Core.MovingAverageVariablePeriod(startIdx: inputs.StartingIndex,
                                                              endIdx: inputs.EndIndex,
                                                              inReal: closingHistory,
                                                              inPeriods: periodsPerPrices,
                                                              optInMinPeriod: minPeriod,
                                                              optInMaxPeriod: maxPeriod,
                                                              optInMAType: movingAverageType,
                                                              outBegIdx: out outBeginningIndex,
                                                              outNBElement: out outNBElement,
                                                              outReal: output.Series);
            output.AlgorithmsBeginningIndex = outBeginningIndex;
            output.NBElement = outNBElement;
            return(output);
        }
Exemplo n.º 4
0
        public ITaLibOutput <double[]> HilbertTransformInstantaneousTrendline(Frequency unitType, int historiesLength)
        {
            var inputs = new IndicatorsInputs(database, historiesLength);

            database.FillMarketHistory(unitType, inputs.OutputArrayLength);

            double[] closingHistory = database.CurrentHistory
                                      .Select(bar => bar.ClosingPrice)
                                      .ToArray();

            var output = new TaLibOutput <double[]> {
                Series           = new double[inputs.OutputArrayLength],
                HistoryWasCustom = database.HistoryIsCustom
            };
            int outBeginningIndex = 0;
            int outNBElement      = 0;

            output.Outcome = Core.HtTrendline(startIdx: inputs.StartingIndex,
                                              endIdx: inputs.EndIndex,
                                              inReal: closingHistory,
                                              outBegIdx: out outBeginningIndex,
                                              outNBElement: out outNBElement,
                                              outReal: output.Series);
            output.AlgorithmsBeginningIndex = outBeginningIndex;
            output.NBElement = outNBElement;
            return(output);
        }
Exemplo n.º 5
0
        public ITaLibOutput <double[]> KaufmanAdaptiveMovingAverage(Frequency unitType, int historiesLength, int timePeriod = 30)
        {
            var inputs = new IndicatorsInputs(database, historiesLength);

            database.FillMarketHistory(unitType, inputs.OutputArrayLength);

            double[] closingHistory = database.CurrentHistory
                                      .Select(bar => bar.ClosingPrice)
                                      .ToArray();

            var output = new TaLibOutput <double[]> {
                Series           = new double[inputs.OutputArrayLength],
                HistoryWasCustom = database.HistoryIsCustom
            };
            int outBeginningIndex = 0;
            int outNBElement      = 0;

            output.Outcome = Core.Kama(startIdx: inputs.StartingIndex,
                                       endIdx: inputs.EndIndex,
                                       inReal: closingHistory,
                                       optInTimePeriod: timePeriod,
                                       outBegIdx: out outBeginningIndex,
                                       outNBElement: out outNBElement,
                                       outReal: output.Series);
            output.AlgorithmsBeginningIndex = outBeginningIndex;
            output.NBElement = outNBElement;
            return(output);
        }
Exemplo n.º 6
0
        public ITaLibOutput <double[]> PercentagePriceOscillator(Frequency unitType, int historiesLength, Core.MAType MovingAverageType = Core.MAType.Sma, int fastPeriod = 12, int slowPeriod = 26)
        {
            var inputs = new IndicatorsInputs(database, historiesLength);

            database.FillMarketHistory(unitType, inputs.OutputArrayLength);

            double[] closingHistory = database.CurrentHistory
                                      .Select(bar => bar.ClosingPrice)
                                      .ToArray();

            var output = new TaLibOutput <double[]> {
                Series           = new double[inputs.OutputArrayLength],
                HistoryWasCustom = database.HistoryIsCustom
            };
            int outBeginningIndex = 0;
            int outNBElement      = 0;

            output.Outcome = Core.Ppo(startIdx: inputs.StartingIndex,
                                      endIdx: inputs.EndIndex,
                                      inReal: closingHistory,
                                      optInFastPeriod: fastPeriod,
                                      optInSlowPeriod: slowPeriod,
                                      optInMAType: MovingAverageType,
                                      outBegIdx: out outBeginningIndex,
                                      outNBElement: out outNBElement,
                                      outReal: output.Series);
            output.AlgorithmsBeginningIndex = outBeginningIndex;
            output.NBElement = outNBElement;
            return(output);
        }
Exemplo n.º 7
0
        public ITaLibOutput <double[]> ChaikinADOscillator(Frequency unitType, int historiesLength, int fastPeriod = 3, int slowPeriod = 10)
        {
            var inputs = new IndicatorsInputs(database, historiesLength);

            database.FillMarketHistory(unitType, inputs.OutputArrayLength);

            double[] highs = database.CurrentHistory
                             .Select(bar => bar.PriceHigh)
                             .ToArray();

            double[] lows = database.CurrentHistory
                            .Select(bar => bar.PriceLow)
                            .ToArray();

            double[] closes = database.CurrentHistory
                              .Select(bar => bar.ClosingPrice)
                              .ToArray();

            double[] volumes = database.CurrentHistory
                               .Select(bar => bar.Volume)
                               .ToArray();

            var output = new TaLibOutput <double[]> {
                Series           = new double[inputs.OutputArrayLength],
                HistoryWasCustom = database.HistoryIsCustom
            };
            int outBeginningIndex = 0;
            int outNBElement      = 0;

            output.Outcome = Core.AdOsc(startIdx: inputs.StartingIndex,
                                        endIdx: inputs.EndIndex,
                                        inHigh: highs,
                                        inLow: lows,
                                        inClose: closes,
                                        inVolume: volumes,
                                        optInFastPeriod: fastPeriod,
                                        optInSlowPeriod: slowPeriod,
                                        outBegIdx: out outBeginningIndex,
                                        outNBElement: out outNBElement,
                                        outReal: output.Series);
            output.AlgorithmsBeginningIndex = outBeginningIndex;
            output.NBElement = outNBElement;
            return(output);
        }
Exemplo n.º 8
0
        public ITaLibOutput <double[]> MoneyFlowIndex(Frequency unitType, int historiesLength, int timePeriod = 14)
        {
            var inputs = new IndicatorsInputs(database, historiesLength);

            database.FillMarketHistory(unitType, inputs.OutputArrayLength);

            double[] closingHistory = database.CurrentHistory
                                      .Select(bar => bar.ClosingPrice)
                                      .ToArray();

            double[] inHigh = database.CurrentHistory
                              .Select(bar => bar.PriceHigh)
                              .ToArray();

            double[] inClose = database.CurrentHistory
                               .Select(bar => bar.ClosingPrice)
                               .ToArray();

            double[] volumes = database.CurrentHistory
                               .Select(bar => bar.ClosingPrice)
                               .ToArray();

            var output = new TaLibOutput <double[]> {
                Series           = new double[inputs.OutputArrayLength],
                HistoryWasCustom = database.HistoryIsCustom
            };
            int outBeginningIndex = 0;
            int outNBElement      = 0;

            output.Outcome = Core.Mfi(startIdx: inputs.StartingIndex,
                                      endIdx: inputs.EndIndex,
                                      inHigh: inHigh,
                                      inLow: inClose,
                                      inClose: inClose,
                                      inVolume: volumes,
                                      optInTimePeriod: timePeriod,
                                      outBegIdx: out outBeginningIndex,
                                      outNBElement: out outNBElement,
                                      outReal: output.Series);
            output.AlgorithmsBeginningIndex = outBeginningIndex;
            output.NBElement = outNBElement;
            return(output);
        }
        public ITaLibOutput <double[]> AveragePrice(Frequency unitType, int historiesLength)
        {
            var inputs = new IndicatorsInputs(database, historiesLength);

            database.FillMarketHistory(unitType, inputs.OutputArrayLength);

            double[] opens = database.CurrentHistory
                             .Select(bar => bar.OpeningPrice)
                             .ToArray();

            double[] highs = database.CurrentHistory
                             .Select(bar => bar.PriceHigh)
                             .ToArray();

            double[] lows = database.CurrentHistory
                            .Select(bar => bar.PriceLow)
                            .ToArray();

            double[] closes = database.CurrentHistory
                              .Select(bar => bar.ClosingPrice)
                              .ToArray();

            var output = new TaLibOutput <double[]> {
                Series           = new double[inputs.OutputArrayLength],
                HistoryWasCustom = database.HistoryIsCustom
            };
            int outBeginningIndex = 0;
            int outNBElement      = 0;

            output.Outcome = Core.AvgPrice(startIdx: inputs.StartingIndex,
                                           endIdx: inputs.EndIndex,
                                           inOpen: opens,
                                           inHigh: highs,
                                           inLow: lows,
                                           inClose: closes,
                                           outBegIdx: out outBeginningIndex,
                                           outNBElement: out outNBElement,
                                           outReal: output.Series);
            output.AlgorithmsBeginningIndex = outBeginningIndex;
            output.NBElement = outNBElement;
            return(output);
        }
Exemplo n.º 10
0
        public ITaLibOutput <double[]> ParabolicSarExtended(Frequency unitType, int historiesLength, int startvalue = 0, int offsetonreverse = 0, int accelerationinitlong = 0, int accelerationlong = 0, int accelerationmaxlong = 0, int accelerationinitshort = 0, int accelerationshort = 0, int accelerationmaxshort = 0)
        {
            var inputs = new IndicatorsInputs(database, historiesLength);

            database.FillMarketHistory(unitType, inputs.OutputArrayLength);

            double[] highs = database.CurrentHistory
                             .Select(bar => bar.PriceHigh)
                             .ToArray();

            double[] lows = database.CurrentHistory
                            .Select(bar => bar.PriceLow)
                            .ToArray();

            var output = new TaLibOutput <double[]> {
                Series           = new double[inputs.OutputArrayLength],
                HistoryWasCustom = database.HistoryIsCustom
            };
            int outBeginningIndex = 0;
            int outNBElement      = 0;

            output.Outcome = Core.SarExt(startIdx: inputs.StartingIndex,
                                         endIdx: inputs.EndIndex,
                                         inHigh: highs,
                                         inLow: lows,
                                         optInStartValue: startvalue,
                                         optInOffsetOnReverse: offsetonreverse,
                                         optInAccelerationInitLong: accelerationinitlong,
                                         optInAccelerationInitShort: accelerationinitshort,
                                         optInAccelerationLong: accelerationlong,
                                         optInAccelerationMaxLong: accelerationmaxlong,
                                         optInAccelerationMaxShort: accelerationmaxshort,
                                         optInAccelerationShort: accelerationshort,
                                         outBegIdx: out outBeginningIndex,
                                         outNBElement: out outNBElement,
                                         outReal: output.Series);
            output.AlgorithmsBeginningIndex = outBeginningIndex;
            output.NBElement = outNBElement;
            return(output);
        }
Exemplo n.º 11
0
        public ITaLibOutput <double[]> UltimateOscillator(Frequency unitType, int historiesLength, int timePeriod1 = 7, int timePeriod2 = 14, int timePeriod3 = 28)
        {
            var inputs = new IndicatorsInputs(database, historiesLength);

            database.FillMarketHistory(unitType, inputs.OutputArrayLength);

            double[] closingHistory = database.CurrentHistory
                                      .Select(bar => bar.ClosingPrice)
                                      .ToArray();

            double[] highs = database.CurrentHistory
                             .Select(bar => bar.PriceHigh)
                             .ToArray();

            double[] lows = database.CurrentHistory
                            .Select(bar => bar.PriceLow)
                            .ToArray();

            var output = new TaLibOutput <double[]> {
                Series           = new double[inputs.OutputArrayLength],
                HistoryWasCustom = database.HistoryIsCustom
            };
            int outBeginningIndex = 0;
            int outNBElement      = 0;

            output.Outcome = Core.UltOsc(startIdx: inputs.StartingIndex,
                                         endIdx: inputs.EndIndex,
                                         inHigh: highs,
                                         inLow: lows,
                                         inClose: closingHistory,
                                         optInTimePeriod1: timePeriod1,
                                         optInTimePeriod2: timePeriod2,
                                         optInTimePeriod3: timePeriod3,
                                         outBegIdx: out outBeginningIndex,
                                         outNBElement: out outNBElement,
                                         outReal: output.Series);
            output.AlgorithmsBeginningIndex = outBeginningIndex;
            output.NBElement = outNBElement;
            return(output);
        }