Пример #1
0
        public List <MACD> MACD(int fastPeriod = 12, int slowPeriod = 26, int signalPeriod = 9)
        {
            int startIndex, count;

            double[]    macd          = new double[Candles.Count];
            double[]    macdSignal    = new double[Candles.Count];
            double[]    macdHistogram = new double[Candles.Count];
            List <MACD> macdData      = new List <MACD>();

            TA.Core.Macd(0, Candles.Count - 1, Candles.Select(quote => (double)quote.Close).ToArray(), fastPeriod, slowPeriod, signalPeriod, out startIndex, out count, macd, macdSignal, macdHistogram);

            for (int index = 0; index < macd.Length; ++index)
            {
                macdData.Add(new MACD()
                {
                    Value     = (decimal)macd[index],
                    Signal    = (decimal)macdSignal[index],
                    Histogram = (decimal)macdHistogram[index],
                });
            }
            macdData = macdData.Take(count).ToList();
            if (macdData.Count > 0)
            {
            }
            return(macdData);
        }
Пример #2
0
        public List <decimal> WilliamR(int period)
        {
            int startIndex, count;

            double[] willR = new double[Candles.Count];

            TA.Core.WillR(0, Candles.Count - 1, Candles.Select(quote => (double)quote.High).ToArray(), Candles.Select(quote => (double)quote.Low).ToArray(), Candles.Select(quote => (double)quote.Close).ToArray(), period, out startIndex, out count, willR);

            return(willR.Select(x => (decimal)x).ToList());
        }
Пример #3
0
        public decimal RSI(int period = 14)
        {
            int startIndex, count;

            double[] rsi = new double[Candles.Count];

            TA.Core.Rsi(0, Candles.Count - 1, Candles.Select(quote => (double)quote.Close).ToArray(), period, out startIndex, out count, rsi);

            return(rsi.Select(x => (decimal)x).Where(x => x != 0).LastOrDefault());
        }
Пример #4
0
        public List <decimal> EMA(int period)
        {
            int startIndex, count;

            double[] ema = new double[Candles.Count];

            TA.Core.Ema(0, Candles.Count - 1, Candles.Select(quote => (float)quote.Close).ToArray(), period, out startIndex, out count, ema);

            return(ema.Select(x => (decimal)x).Take(ema.Count() - period + 1).ToList());
        }
Пример #5
0
        public List <decimal> SMA(int period)
        {
            int startIndex, count;

            double[] sma = new double[Candles.Count];

            TA.Core.Sma(0, Candles.Count - 1, Candles.Select(quote => quote.Close).Cast <float>().ToArray(), period, out startIndex, out count, sma);

            return(sma.Select(x => (decimal)x).ToList());
        }
Пример #6
0
        public CryptoTraderStats StartFromFile(string market)
        {
            _market = market;
            var prices = Candles.Select(c => CreateTicker(_market, c.Low, c.High, c.Timestamp)).ToList();

            _trades.Add(CreateTrade(_market, prices[0], Strategy.Settings.TradingBudget));
            foreach (var ticker in prices)
            {
                UpdateTicker(ticker);
            }
            GetStats();
            return(_stats);
        }
Пример #7
0
        public List <Stochastic> Stochastic(int periodK = 14, int periodD = 3, int periodDN = 3)
        {
            List <Stochastic> stochastic = new List <Stochastic>();

            //var Candles = GetData().ToList();
            int start, count;

            double[] slowK = new double[Candles.Count];
            double[] slowD = new double[Candles.Count];
            TA.Core.Stoch(0, Candles.Count - 1, Candles.Select(x => (double)x.High).ToArray(), Candles.Select(x => (double)x.Low).ToArray(), Candles.Select(x => (double)x.Close).ToArray(), periodK, periodD, TA.Core.MAType.Sma, periodDN, TA.Core.MAType.Sma, out start, out count, slowK, slowD);
            for (int i = 0; i < count; ++i)
            {
                stochastic.Add(new Stochastic()
                {
                    Value = (decimal)slowD[i], Signal = (decimal)slowK[i]
                });
            }

            return(stochastic.ToList());
        }
Пример #8
0
 public List <decimal> AveragePrice()
 {
     return(Candles.Select(candle => (candle.Open + candle.High + candle.Low + candle.Close) / 4).ToList());
 }