Example #1
0
        public override void ApplyMovingAverages()
        {
            var periods = new[] { 7, 10, 30 };

            Console.WriteLine("ApplyMovingAverages()");

            foreach (var period in periods)
            {
                var closePrices       = this.QuoteCandles.Select(x => Convert.ToSingle(x.Close)).ToArray();
                var outMovingAverages = new double[closePrices.Length];

                var resultState = TicTacTec.TA.Library.Core.MovingAverage(
                    0,
                    closePrices.Length - 1,
                    closePrices,
                    period,
                    Core.MAType.Ema,
                    out var outBegIndex,
                    out var outNbElement,
                    outMovingAverages);

                var mvgAvg = new MovingAvgInfo
                {
                    StartIndex     = outBegIndex,
                    EndIndex       = outNbElement,
                    MovingAverages = outMovingAverages.Select(d => Convert.ToDecimal(d)).ToArray(),
                    Period         = period
                };

                MergeMvgAvg(mvgAvg);
            }
        }
Example #2
0
        private void MergeMvgAvg(MovingAvgInfo movingAvgInfo)
        {
            for (int i = 0; i < movingAvgInfo.EndIndex; i++)
            {
                switch (movingAvgInfo.Period)
                {
                case 7:
                    this.Quotes[movingAvgInfo.StartIndex + i].MovingAvg7 = movingAvgInfo.MovingAverages[i];
                    break;

                case 10:
                    this.Quotes[movingAvgInfo.StartIndex + i].MovingAvg10 = movingAvgInfo.MovingAverages[i];
                    break;

                case 30:
                    this.Quotes[movingAvgInfo.StartIndex + i].MovingAvg30 = movingAvgInfo.MovingAverages[i];
                    break;
                }
            }
        }