public t[] GetNewData(Model.DataRepositoryBase <t> repository)
        {
            if (repository.Items.Any())
            {
                var maxtime = repository.Items.Max(x => x.UnixTime);
                //var mintime = repository.Items.Min(x => x.UnixTime);
                _LastTimeStamp = maxtime;
            }
            else
            {
                _LastTimeStamp = 0;
            }

            List <t> latestdata;

            try
            {
                latestdata = GetData(_LastTimeStamp);
                if (latestdata.Any())
                {
                    repository.AddItems(latestdata.ToArray());
                    return(latestdata.ToArray());
                }
            }
            catch
            { }

            return(new t[] { });
        }
Пример #2
0
 public DataServiceBase(Interfaces.IHasGetNewData <t> controller, Model.DataRepositoryBase <t> repository, int timerinterval)
 {
     _Controller     = controller;
     _Repository     = repository;
     _Timer.Interval = timerinterval;
     _Timer.Tick    += TimerTick;
 }
Пример #3
0
        public MainViewModel()
        {
            CryptoCompareOHCLMinuteRepository             = new Model.DataRepositoryBase <Model.OHCLData>();
            _CryptoCompareOHCLMinuteDataController        = new Data.DataControllers.CryptoCompareOHCLDataController(Enumerables.DataIntervalTypeEnum.Minute, "BTC", BaseCurrency, 1);
            _CryptoCompareOHCLMinuteRepositoryDataService = new Services.DataServiceBase <Model.OHCLData>(_CryptoCompareOHCLMinuteDataController, CryptoCompareOHCLMinuteRepository, 10000);

            CryptoCompareOHCLHourRepository             = new Model.DataRepositoryBase <Model.OHCLData>();
            _CryptoCompareOHCLHourDataController        = new Data.DataControllers.CryptoCompareOHCLDataController(Enumerables.DataIntervalTypeEnum.Hour, "BTC", BaseCurrency, 5);
            _CryptoCompareOHCLHourRepositoryDataService = new Services.DataServiceBase <Model.OHCLData>(_CryptoCompareOHCLHourDataController, CryptoCompareOHCLHourRepository, 100000);

            CryptoCompareOHCLDayRepository             = new Model.DataRepositoryBase <Model.OHCLData>();
            _CryptoCompareOHCLDayDataController        = new Data.DataControllers.CryptoCompareOHCLDataController(Enumerables.DataIntervalTypeEnum.Day, "BTC", BaseCurrency, 1);
            _CryptoCompareOHCLDayRepositoryDataService = new Services.DataServiceBase <Model.OHCLData>(_CryptoCompareOHCLDayDataController, CryptoCompareOHCLDayRepository, 1000000);

            CryptoCompareSocialStatsRepository      = new Model.DataRepositoryBase <Model.Main.SocialStatsData>();
            _CryptoCompareSocialStatsDataController = new Data.DataControllers.CryptoCompareSocialStatsDataController(Enumerables.DataIntervalTypeEnum.Day);
            _CryptoCompareSocialStatsDataService    = new Services.DataServiceBase <Model.Main.SocialStatsData>(_CryptoCompareSocialStatsDataController, CryptoCompareSocialStatsRepository, 100000);

            CryptoCompareNewsRepository             = new Model.DataRepositoryBase <Model.NewsItemData>();
            _CryptoCompareNewsDataController        = new Data.DataControllers.CryptoCompareNewsDataController();
            _CryptoCompareNewsDataService           = new Services.DataServiceBase <Model.NewsItemData>(_CryptoCompareNewsDataController, CryptoCompareNewsRepository, 300000);
            CryptoCompareNewsRepository.ReplaceOnly = true;

            CryptoCompareTickerRepository             = new Model.DataRepositoryBase <Model.Main.TickerData>();
            _CryptoCompareTickerDataController        = new Data.DataControllers.CryptoCompareTickerDataController(new string[] { "BTC,ETH,XRP,LTC,MIOTA,ADA,BNB,EOS,TRX,XLM" }, new string[] { BaseCurrency });
            _CryptoCompareTickerDataService           = new Services.DataServiceBase <Model.Main.TickerData>(_CryptoCompareTickerDataController, CryptoCompareTickerRepository, 10000);
            CryptoCompareTickerRepository.ReplaceOnly = true;

            CryptoCompareTickerRepository.DataChanged      += NewTickerDataAdded;
            CryptoCompareNewsRepository.DataChanged        += NewNewsDataAdded;
            CryptoCompareOHCLHourRepository.DataChanged    += NewOHCLHourDataAdded;
            CryptoCompareOHCLMinuteRepository.DataChanged  += NewOHCLMinuteDataAdded;
            CryptoCompareOHCLDayRepository.DataChanged     += NewOHCLDayDataAdded;
            CryptoCompareSocialStatsRepository.DataChanged += NewSocialStatsDataAdded;


            //PercentageChangeIndicatorViewModel = new PercentagChangeIndicatorViewModel(new NeuroNetworks.PrecentageChangeNetwork(20, 1));
            PercentageChangeIndicatorViewModel = new PercentagChangeIndicatorViewModel(new NeuroNetworks.LSTMPercentageChangeNetwork(DeviceDescriptor.CPUDevice, 3, 16));
            PercentageChangeIndicatorViewModel.EpochTrained += OnEpochTrained;

            TrainingEpochs = 10000;

            InputSize = 200;
        }