Exemplo n.º 1
0
 public BinanceSubscriberService(BinanceConfig config,
                                 IServiceProvider serviceProvider,
                                 ILogger <BinanceSubscriberService> log)
 {
     _config          = config;
     _serviceProvider = serviceProvider;
     _log             = log;
 }
Exemplo n.º 2
0
 public BinanceDepositWithdrawalHandler(
     BinanceService binanceService,
     BinanceConfig config,
     GeneralConfig generalConfig,
     IMicroBus bus)
 {
     _binanceService = binanceService;
     _config         = config;
     _generalConfig  = generalConfig;
     _bus            = bus;
 }
Exemplo n.º 3
0
 public BinanceWebsocketService(BinanceConfig config,
                                IBinanceApi binanceApi,
                                IBinanceCacheService cache,
                                IBinanceSubscriberService subscriber)
 {
     _config     = config;
     _binanceApi = binanceApi;
     _cache      = cache;
     _subscriber = subscriber;
     _semaphore  = new Semaphore(1, 1);
 }
Exemplo n.º 4
0
 public BinanceService(BinanceConfig config, DatabaseService databaseService,
                       PriceService priceService,
                       GeneralConfig generalConfig,
                       ILogger <BinanceService> log)
 {
     _config          = config;
     _databaseService = databaseService;
     _priceService    = priceService;
     _generalConfig   = generalConfig;
     _log             = log;
 }
 public BinanceWebsocketService(BinanceConfig config,
                                IBinanceApi binanceApi,
                                IBinanceCacheService cache,
                                IServiceProvider serviceProvider,
                                ILogger <IBinanceWebsocketService> log)
 {
     _config     = config;
     _binanceApi = binanceApi;
     _cache      = cache;
     _subscriber = serviceProvider.GetService <IBinanceSubscriberService>();
     _log        = log;
 }
        public BinanceSubscriberService(BinanceConfig config,
                                        IServiceProvider serviceProvider,
                                        ILogger <BinanceSubscriberService> log)
        {
            _config          = config;
            _serviceProvider = serviceProvider;
            _log             = log;

            _symbolsStatisticSemaphore = new SemaphoreSlim(1, 1);
            _userDataSemaphore         = new SemaphoreSlim(1, 1);
            _candlestickSemaphore      = new SemaphoreSlim(1, 1);
        }
 public BinanceBagAndDustHandler(
     IMicroBus bus,
     BinanceConfig config,
     BinanceService binanceService,
     DatabaseService databaseService,
     GeneralConfig generalConfig)
 {
     _bus             = bus;
     _config          = config;
     _binanceService  = binanceService;
     _databaseService = databaseService;
     _generalConfig   = generalConfig;
 }
Exemplo n.º 8
0
        public BinanceService(BinanceConfig config,
                              DatabaseService databaseService,
                              GeneralConfig generalConfig,
                              IBinanceApi binanceApi,
                              ILogger <BinanceService> log)
        {
            _config          = config;
            _databaseService = databaseService;
            _generalConfig   = generalConfig;
            _log             = log;

            _client = binanceApi;
            _client.HttpClient.RateLimiter.Configure(TimeSpan.FromMinutes(1), 200);
        }
 public HelpMessageHandler(
     ILogger <HelpMessageHandler> log,
     BittrexConfig bittrexConfig,
     PoloniexConfig poloniexConfig,
     CoinigyConfig coinigyConfig,
     BinanceConfig binanceConfig,
     IMicroBus bus)
 {
     _log            = log;
     _bittrexConfig  = bittrexConfig;
     _poloniexConfig = poloniexConfig;
     _coinigyConfig  = coinigyConfig;
     _binanceConfig  = binanceConfig;
     _bus            = bus;
 }
        /// <summary>
        /// Ordered by ASC
        /// </summary>
        public async Task <HttpCandlestickDataResponseDto> GetCandlestickDataAsync(
            string symbol,
            string candlestickInterval,
            DateTime?from = null,
            DateTime?to   = null,
            int limit     = 500
            )
        {
            limit = Math.Max(limit, 1000);

            // split from-to on intervals according to limit and candlestickInterval
            // as Binance allows max 1000 items to request, but date range could be huge (e.g. 1 year of 1h intervals)
            if (from.Value != null && to.Value != null)
            {
                var      candlestickIntervalConfig       = BinanceConfig.GetBarChartInterval(candlestickInterval);
                TimeSpan requestedRange                  = to.Value.Subtract(from.Value);
                int      candlestickIntervalsInDateRange = Convert.ToInt32(Math.Round(requestedRange.TotalMilliseconds / candlestickIntervalConfig.TimeSpan.TotalMilliseconds, 0));

                if (candlestickIntervalsInDateRange > limit)
                {
                    int      requestCount     = Convert.ToInt32(Math.Ceiling((double)candlestickIntervalsInDateRange / (double)limit));
                    TimeSpan requestTimeSpan  = limit * candlestickIntervalConfig.TimeSpan; // E.g. 4h * 1000 = 4000 hours
                    var      aggregatedResult = new HttpCandlestickDataResponseDto();
                    DateTime localFrom        = from.Value;
                    DateTime localTo          = from.Value;
                    for (int i = 0; i < requestCount; i++)
                    {
                        localFrom = localTo;
                        localTo   = localFrom.Add(requestTimeSpan);
                        localTo   = localTo <= DateTime.UtcNow ? localTo : DateTime.UtcNow;

                        var intermediateResult = await _GetCandlestickDataAsync(symbol, candlestickInterval, localFrom, localTo, limit);

                        aggregatedResult.Candles.AddRange(intermediateResult.Candles);
                    }

                    // order asc
                    aggregatedResult.Candles = aggregatedResult.Candles.OrderBy(x => x.OpenTime).ToList();

                    return(aggregatedResult);
                }
            }

            return(await _GetCandlestickDataAsync(symbol, candlestickInterval, from, to, limit));
        }
Exemplo n.º 11
0
 public StartupCheckingService(
     IMicroBus bus,
     TelegramConfig telegramConfig,
     TelegramBot bot,
     CoinigyConfig coinigyConfig,
     PoloniexConfig poloniexConfig,
     BittrexConfig bittrexConfig,
     BinanceConfig binanceConfig
     )
 {
     _bus            = bus;
     _telegramConfig = telegramConfig;
     _bot            = bot;
     _coinigyConfig  = coinigyConfig;
     _poloniexConfig = poloniexConfig;
     _bittrexConfig  = bittrexConfig;
     _binanceConfig  = binanceConfig;
 }
Exemplo n.º 12
0
        public BinanceService(BinanceConfig config,
                              DatabaseService databaseService,
                              CryptoCompareApiService cryptoCompareService,
                              IServiceProvider serviceProvider,
                              GeneralConfig generalConfig,
                              IBinanceApi binanceApi,
                              ILogger <BinanceService> log)
        {
            _config                  = config;
            _databaseService         = databaseService;
            _cryptoCompareService    = cryptoCompareService;
            _binanceWebsocketService = serviceProvider.GetService <IBinanceWebsocketService>();
            _generalConfig           = generalConfig;
            _log = log;

            _client = binanceApi;
            _client.HttpClient.RateLimiter.Configure(TimeSpan.FromMinutes(1), 200);
        }
Exemplo n.º 13
0
 public BinanceNewOrderCheckHandler(BinanceService exchangeService, ILogger <BinanceService> log, IMicroBus bus, BinanceConfig config)
 {
     _exchangeService = exchangeService;
     _log             = log;
     _bus             = bus;
     _config          = config;
 }
Exemplo n.º 14
0
 public BinanceBalanceCheckHandler(BinanceService exchangeService, BinanceConfig config, IMicroBus bus)
 {
     _exchangeService = exchangeService;
     _config          = config;
     _bus             = bus;
 }