public CsvCandleDataSource(string csvPath, MarketFeedSettings settings, CsvLastRunDataStore parent, ILogger <CsvCandleDataSource> logger) { _csvPath = csvPath; // TODO: clean this up & use in CsvLastRunDataStore Settings = settings; _parent = parent; _logger = logger; }
public bool HasOverlay(bool hasOverlay, bool appSettingHasOverlayFastUpdate) { var settings = new MarketFeedSettings(ProductType.BatUsdc, CandleGranularity.Hour1); var c = MockCandleMonitorData_ForIsFastUpdate(settings, hasOverlay, appSettingHasOverlayFastUpdate, null); return(c.HasOverlay); }
public bool IsFastUpdate(bool hasOverlay, bool appSettingHasOverlayFastUpdate, DateTime?tradeFromUtc) { var settings = new MarketFeedSettings(ProductType.BatUsdc, CandleGranularity.Hour1); var c = MockCandleMonitorData_ForIsFastUpdate(settings, hasOverlay, appSettingHasOverlayFastUpdate, tradeFromUtc); return(c.IsFastUpdate); }
public void Settings() { var settings = new MarketFeedSettings(ProductType.BatUsdc, CandleGranularity.Hour1); var c = MockCandleMonitorData_ForIsFastUpdate(settings, false, false, null); Assert.That(c.Settings, Is.EqualTo(settings)); }
internal void Save(TimeSeries series, MarketFeedSettings settings) { // Save the csv data CsvTimeSeries.Save(_csvPath, series); // Save the last run json for next restart Set(settings.Granularity, series.LastTick.EndTime.InUtc().ToDateTimeUtc()); File.WriteAllText(_fullPath, JsonConvert.SerializeObject(new CsvLastRunStoreSerializer(this))); }
public ICandleDataSource Load(MarketFeedSettings settings) { if (DataStores.ContainsKey(settings)) { return(DataStores[settings]); } var rc = new SqlServerCandleDataSource(settings, _serviceScopeFactory); DataStores.Add(settings, rc); return(rc); }
public SqlServerCandleDataSource(MarketFeedSettings settings, IServiceScopeFactory serviceScopeFactory) { _scopeFactory = serviceScopeFactory; Settings = settings; using (var scope = _scopeFactory.CreateScope()) { var dbContext = scope.ServiceProvider.GetRequiredService <CryptoDbX>(); _marketDataFeedId = dbContext.MarketDatafeed.Single( df => df.ExchangeId == 1 && df.ProductId == Settings.ProductId && df.Granularity == Settings.Granularity).MarketDatafeedId; _logger = scope.ServiceProvider.GetService <ILogger <SqlServerCandleDataSource> >(); } }
public ICandleDataSource Load(MarketFeedSettings settings) { if (settings == null) { return(null); } if (!_lastRun.ContainsKey(settings.ProductId)) { _lastRun.Add(settings.ProductId, CsvLastRunDataStore.Load(_appSettings.CsvPath, settings.ProductId)); } if (DataStores.ContainsKey(settings)) { return(DataStores[settings]); } var rc = new CsvCandleDataSource(_appSettings.CsvPath, settings, _lastRun[settings.ProductId], _logger); DataStores.Add(settings, rc); return(rc); }
private static CandleMonitorData MockCandleMonitorData_ForIsFastUpdate( MarketFeedSettings settings, bool hasOverlay, bool appSettingHasOverlayFastUpdate, DateTime?tradeFromUtc) { var feed = new CandleMonitorFeeds(settings.ProductId, settings.Granularity, hasOverlay, tradeFromUtc); var mockCandleDataSource = new Mock <ICandleDataSource>(); var mockCandleProvider = new Mock <ICandleProvider>(); mockCandleProvider.Setup(o => o.Load(settings).LastUpdatedUtc).Returns(DateTime.UtcNow); mockCandleProvider.SetupGet(o => o.DataStores[settings]).Returns(mockCandleDataSource.Object); var mockAppSetting = new Mock <IAppSettingCandleMonitor>(); mockAppSetting.SetupProperty(o => o.HasOverlayFastUpdate, appSettingHasOverlayFastUpdate); var c = new CandleMonitorData(feed, mockCandleProvider.Object, mockAppSetting.Object); return(c); }
public CandlesReceivedEventArgs(MarketFeedSettings settings, TimeSeries series, CandleSource candleSource) { MarketFeedSettings = settings; TimeSeries = series; CandleSource = candleSource; }