Exemplo n.º 1
0
        public async Task  AllTogether()
        {
            var configRepo = new ConfigRepository(new List <IExchangeConfig> {
                new KrakenConfig()
            }.ToArray());

            var config = await configRepo.Get();

            config[AltName].GroupMinutes            = 15;
            config[AltName].GroupForLongMacdMinutes = 60;
            _dt = DateTime.Now.AddHours(-26);
            var trades  = (await _tradeRepository.LoadTrades(AltName, _dt)).ToList();
            var grouped = trades.GroupAll(config[AltName].GroupMinutes, GroupBy.Minute).ToList();
            var macd    = grouped.Macd(config[AltName].MacdSlow, config[AltName].MacdFast, config[AltName].MacdSignal).ToList();
            var rsi     = grouped.RelativeStrengthIndex(config[AltName].RsiEmaPeriods);

            var grouped2 = trades.GroupAll(config[AltName].GroupForLongMacdMinutes, GroupBy.Minute).ToList();
            var macd2    = grouped2.Macd(config[AltName].MacdSlow, config[AltName].MacdFast, config[AltName].MacdSignal).ToList();

            var lines = (from m in macd
                         join r in rsi on m.DateTime equals r.DateTime
                         join g in grouped on m.DateTime equals g.DateTime
                         join m2 in macd2 on m.DateTime equals m2.DateTime into gm2
                         from m2 in gm2.DefaultIfEmpty()
                         select $"{m.DateTime},{r.Price},{m.Macd},{m.Signal},{g.Volume},{g.Price},{g.PriceMin},{g.PriceMax},{m2?.Macd},{m2?.Signal}").ToList();

            lines.Insert(0, "Date,RSI,MACD,Signal,Volume,PriceAvg,PriceMin,PriceMax,MACD2,Signal2");

            Write("macd_rsi", lines);
        }
Exemplo n.º 2
0
        public async Task LoadTradesTask()
        {
            var repo   = new TradeRepository();
            var result = await repo.LoadTrades("XBTUSD", new DateTime(2017, 11, 02, 11, 40, 00),
                                               new DateTime(2017, 11, 03, 11, 40, 00));

            Assert.That(result.Any(), Is.True);
        }
Exemplo n.º 3
0
        private async Task <decimal> SetupTradeService(string pair, DateTime start, DateTime end)
        {
            var real   = new TradeRepository();
            var config = _container.Resolve <Config>();

            trades = (await real.LoadTrades(pair, start.AddHours(-config.Pairs[pair].LoadHours), end)).ToList();

            var repo = _container.Resolve <ITradeRepository>();

            repo.LoadTrades(Arg.Any <string>(), Arg.Any <DateTime>(), Arg.Any <DateTime>())
            .Returns(args =>
            {
                var startDate = Convert.ToDateTime((object)args[1]).AddHours(-config.Pairs[pair].LoadHours);
                var endDate   = Convert.ToDateTime((object)args[2]);
                return(trades.Where(x => x.DateTime > startDate && x.DateTime < endDate));
            });


            return(trades.Last().Price);
        }