コード例 #1
0
 public BinanceStopLossExecuteMarketRule(
     IBinanceClient binanceClient,
     IPushOverNotificationService pushOverNotificationService)
 {
     _binanceClient = binanceClient;
     _pushOverNotificationService = pushOverNotificationService;
 }
コード例 #2
0
 public AbstractBinanceWebSocketClient(IBinanceClient binanceClient, ILog logger = null)
 {
     BinanceClient    = binanceClient;
     ActiveWebSockets = new Dictionary <Guid, BinanceWebSocket>();
     AllSockets       = new List <BinanceWebSocket>();
     Logger           = logger ?? LogManager.GetLogger(typeof(AbstractBinanceWebSocketClient));
 }
コード例 #3
0
 public AbstractBinanceWebSocketClient(IBinanceClient binanceClient, ILog logger = null, ISerializationHandler serializationHandler = null)
 {
     SerializationHandler = serializationHandler ?? new NewtonsoftSerializationHandler();
     BinanceClient        = binanceClient;
     ActiveWebSockets     = new Dictionary <Guid, BinanceWebSocket>();
     AllSockets           = new List <BinanceWebSocket>();
     Logger = logger ?? LogManager.GetLogger(typeof(AbstractBinanceWebSocketClient));
 }
コード例 #4
0
 public BinanceService(
     IBinanceClient binanceClient,
     ILogger log,
     IBinanceRepository binanceRepository)
 {
     this._binanceClient    = binanceClient;
     this._log              = log;
     this.binanceRepository = binanceRepository;
 }
コード例 #5
0
 /// <summary>
 /// Create a new instance
 /// </summary>
 /// <param name="symbol">The symbol of the order book</param>
 /// <param name="options">The options for the order book</param>
 public BinanceFuturesUsdtSymbolOrderBook(string symbol, BinanceOrderBookOptions?options = null) : base(symbol, options ?? new BinanceOrderBookOptions())
 {
     _limit          = options?.Limit;
     _updateInterval = options?.UpdateInterval;
     _restClient     = options?.RestClient ?? new BinanceClient();
     _socketClient   = options?.SocketClient ?? new BinanceSocketClient();
     _restOwner      = options?.RestClient == null;
     _socketOwner    = options?.SocketClient == null;
 }
コード例 #6
0
 public BinanceModeProductionRule(
     IMarketService marketService,
     IPushOverNotificationService pushOverNotificationService,
     IBinanceClient binanceClient)
 {
     _marketService = marketService;
     _pushOverNotificationService = pushOverNotificationService;
     _binanceClient = binanceClient;
 }
コード例 #7
0
 public BinanceApi(string apiKey, string secretKey)
 {
     // Initialise the general client with config
     _client = new BinanceClient(new ClientConfiguration()
     {
         ApiKey    = apiKey,
         SecretKey = secretKey,
     });
 }
コード例 #8
0
 /// <summary>
 /// Create a new instance
 /// </summary>
 /// <param name="symbol">The symbol of the order book</param>
 /// <param name="options">The options for the order book</param>
 public BinanceSpotSymbolOrderBook(string symbol, BinanceOrderBookOptions?options = null) : base(symbol, options ?? new BinanceOrderBookOptions())
 {
     symbol.ValidateBinanceSymbol();
     Levels          = options?.Limit;
     _updateInterval = options?.UpdateInterval;
     _socketClient   = options?.SocketClient ?? new BinanceSocketClient();
     _restClient     = options?.RestClient ?? new BinanceClient();
     _restOwner      = options?.RestClient == null;
     _socketOwner    = options?.SocketClient == null;
 }
コード例 #9
0
 /// <param name="symbol"></param>
 /// <param name="marketStrategy"></param>
 /// <param name="webSocketClient"></param>
 /// <param name="logger"></param>
 /// <param name="binanceRestClient"></param>
 /// <exception cref="ArgumentNullException"><paramref name="symbol"/> cannot be <see langword="null"/></exception>
 /// <exception cref="ArgumentNullException"><paramref name="marketStrategy"/> cannot be <see langword="null"/></exception>
 /// <exception cref="ArgumentNullException"><paramref name="webSocketClient"/> cannot be <see langword="null"/></exception>
 /// <exception cref="ArgumentNullException"><paramref name="binanceRestClient"/> cannot be <see langword="null"/></exception>
 public MarketMakerBot(
     string symbol,
     NaiveMarketMakerStrategy marketStrategy,
     IBinanceClient binanceRestClient,
     IBinanceSocketClient webSocketClient,
     Logger logger) :
     base(symbol, marketStrategy, logger)
 {
     _marketDepth       = new MarketDepth(symbol);
     _binanceRestClient = binanceRestClient ?? throw new ArgumentNullException(nameof(binanceRestClient));
     _webSocketClient   = webSocketClient ?? throw new ArgumentNullException(nameof(webSocketClient));
 }
コード例 #10
0
 public SwitchExchangeForProductionRule(
     IMarketService marketService,
     Exchange exchange,
     IBinanceClient binanceClient,
     IKucoinClient kucoinClient,
     IPushOverNotificationService pushOverNotificationService)
 {
     _marketService = marketService;
     _exchange      = exchange;
     _binanceClient = binanceClient;
     _kucoinClient  = kucoinClient;
     _pushOverNotificationService = pushOverNotificationService;
 }
コード例 #11
0
 public SwitchExchangeForSymbolRule(
     Exchange exchange,
     IBinanceClient binanceClient,
     IKucoinClient kucoinClient,
     IBinanceTickerService binanceTickerService,
     IKucoinTickerService kucoinTickerService)
 {
     _exchange             = exchange;
     _binanceClient        = binanceClient;
     _kucoinClient         = kucoinClient;
     _binanceTickerService = binanceTickerService;
     _kucoinTickerService  = kucoinTickerService;
 }
コード例 #12
0
        public static Task <WebCallResult <BinancePlacedOrder> > PlaceTestOrLiveOrderAsync(
            this IBinanceClient client,
            bool test,
            string symbol,
            OrderSide side,
            OrderType type,
            Decimal?quantity           = null,
            Decimal?quoteOrderQuantity = null,
            string?newClientOrderId    = null,
            Decimal?price                       = null,
            TimeInForce?timeInForce             = null,
            Decimal?stopPrice                   = null,
            Decimal?icebergQty                  = null,
            OrderResponseType?orderResponseType = null,
            int?receiveWindow                   = null,
            CancellationToken ct                = default(CancellationToken))
        {
            var spotOrderClient = client.Spot.Order;

            return(test
                ? spotOrderClient.PlaceTestOrderAsync(
                       symbol,
                       side,
                       type,
                       quantity,
                       quoteOrderQuantity,
                       newClientOrderId,
                       price,
                       timeInForce,
                       stopPrice,
                       icebergQty,
                       orderResponseType,
                       receiveWindow,
                       ct)
                : spotOrderClient.PlaceOrderAsync(
                       symbol,
                       side,
                       type,
                       quantity,
                       quoteOrderQuantity,
                       newClientOrderId,
                       price,
                       timeInForce,
                       stopPrice,
                       icebergQty,
                       orderResponseType,
                       receiveWindow,
                       ct));
        }
コード例 #13
0
 public BuyDeepSellHighJob(
     IBinanceClient binanceClient,
     IStorageService storageService,
     IMarketService marketService,
     IConfigurationService schedulerService,
     IPushOverNotificationService pushOverNotificationService,
     ITickerPriceService tickerPriceService)
 {
     _binanceClient               = binanceClient;
     _storageService              = storageService;
     _marketService               = marketService;
     _schedulerService            = schedulerService;
     _pushOverNotificationService = pushOverNotificationService;
     _tickerPriceService          = tickerPriceService;
 }
コード例 #14
0
 public BuyDeepSellHighJob(
     IBinanceClient binanceClient,
     IKucoinClient kucoinClient,
     IStorageService storageService,
     IMarketService marketService,
     IConfigurationService schedulerService,
     IPushOverNotificationService pushOverNotificationService,
     IBinanceTickerService binanceTickerService,
     IKucoinTickerService kucoinTickerService)
 {
     _binanceClient               = binanceClient;
     _kucoinClient                = kucoinClient;
     _storageService              = storageService;
     _marketService               = marketService;
     _schedulerService            = schedulerService;
     _pushOverNotificationService = pushOverNotificationService;
     _binanceTickerService        = binanceTickerService;
     _kucoinTickerService         = kucoinTickerService;
 }
コード例 #15
0
        public static void SetErrorWithResponse(IBinanceClient client, string responseData, HttpStatusCode code)
        {
            var expectedBytes  = Encoding.UTF8.GetBytes(responseData);
            var responseStream = new MemoryStream();

            responseStream.Write(expectedBytes, 0, expectedBytes.Length);
            responseStream.Seek(0, SeekOrigin.Begin);

            var response = new Mock <IResponse>();

            response.Setup(c => c.IsSuccessStatusCode).Returns(false);
            response.Setup(c => c.GetResponseStream()).Returns(Task.FromResult((Stream)responseStream));

            var request = new Mock <IRequest>();

            request.Setup(c => c.Uri).Returns(new Uri("http://www.test.com"));
            request.Setup(c => c.GetResponse(It.IsAny <CancellationToken>())).Returns(Task.FromResult(response.Object));

            var factory = Mock.Get(client.RequestFactory);

            factory.Setup(c => c.Create(It.IsAny <HttpMethod>(), It.IsAny <string>()))
            .Returns(request.Object);
        }
コード例 #16
0
        public static void SetErrorWithResponse(IBinanceClient client, string responseData, HttpStatusCode code)
        {
            var expectedBytes  = Encoding.UTF8.GetBytes(responseData);
            var responseStream = new MemoryStream();

            responseStream.Write(expectedBytes, 0, expectedBytes.Length);
            responseStream.Seek(0, SeekOrigin.Begin);

            var r = new Mock <HttpWebResponse>();

            r.Setup(x => x.GetResponseStream()).Returns(responseStream);
            var we = new WebException("", null, WebExceptionStatus.Success, r.Object);

            var request = new Mock <IRequest>();

            request.Setup(c => c.Headers).Returns(new WebHeaderCollection());
            request.Setup(c => c.GetResponse()).Throws(we);

            var factory = Mock.Get(client.RequestFactory);

            factory.Setup(c => c.Create(It.IsAny <string>()))
            .Returns(request.Object);
        }
コード例 #17
0
    public async Task <IEnumerable <CandleStick> > Get([FromServices] IBinanceClient binanceClient, string currency,
                                                       int?limit, long?startDate, long?endDate, string tframe)
    {
        KlineInterval interval = tframe switch
        {
            "M1" => KlineInterval.OneMinute,
            "M5" => KlineInterval.FiveMinutes,
            "M15" => KlineInterval.FifteenMinutes,
            "M30" => KlineInterval.ThirtyMinutes,
            "H1" => KlineInterval.OneHour,
            "H4" => KlineInterval.FourHours,
            "D1" => KlineInterval.OneDay,
            "W1" => KlineInterval.OneWeek,
            _ => KlineInterval.OneHour
        };
        var opts = new GetKlinesCandlesticksRequest {
            Interval = interval, Limit = limit, Symbol = currency
        };

        opts.StartTime = (startDate.HasValue) ? DateTimeOffset.FromUnixTimeSeconds(startDate.Value).DateTime.ToLocalTime() : null;
        opts.EndTime   = (endDate.HasValue) ? DateTimeOffset.FromUnixTimeSeconds(endDate.Value).DateTime.ToLocalTime() : null;

        var data = await binanceClient.GetKlinesCandlesticks(opts);

        var result = data.Select(d => new CandleStick()
        {
            Open      = d.Open,
            Close     = d.Close,
            High      = d.High,
            Low       = d.Low,
            Volume    = d.Volume,
            Timestamp = d.OpenTime.ToToUnixTimestamp()
        }).ToList();

        return(result);
    }
}
コード例 #18
0
 public KLineHistoricalData(IBinanceClient binanceClient)
 {
     this.binanceClient = binanceClient;
 }
コード例 #19
0
 public InstanceBinanceWebSocketClient(IBinanceClient binanceClient, ILog logger = null) :
     base(binanceClient, logger)
 {
 }
コード例 #20
0
 public BinanceSpotExchange(IOptions <BinanceUserConfig> binanceUserConfig, ILogger <BinanceSpotExchange> logger)
 {
     _logger            = logger;
     _binanceUserConfig = binanceUserConfig.Value;
     _client            = GetClient();
 }
コード例 #21
0
 public BinanceDataProvider(IBinanceSocketClient socketClient, IBinanceClient binanceClient)
 {
     _socketClient  = socketClient;
     _binanceClient = binanceClient;
     Start().Wait();
 }
コード例 #22
0
 public BinanceService(IBinanceClient binanceClient)
 {
     _binanceClient    = binanceClient;
     _currentPriceList = ListPrices();
 }
コード例 #23
0
ファイル: HomeController.cs プロジェクト: x14Kx/Binance.Net
 public HomeController(ILogger <HomeController> logger, IBinanceClient client, IBinanceDataProvider dataProvider)
 {
     _logger        = logger;
     _binanceClient = client;
     _dataProvider  = dataProvider;
 }
コード例 #24
0
 public BinanceAccountExchangeRule(
     IBinanceClient binanceClient)
 {
     _binanceClient = binanceClient;
 }
コード例 #25
0
 public BinanceTickerService(
     IBinanceClient binanceClient)
 {
     _binanceClient = binanceClient;
 }
コード例 #26
0
 public GetOpenPositionBySymbolHandler(IBinanceClient binance, IMapper mapper)
 {
     _binance = binance ?? throw new ArgumentNullException(nameof(binance));
     _mapper  = mapper ?? throw new ArgumentNullException(nameof(mapper));
 }
コード例 #27
0
 /// <summary>コンストラクタ</summary>
 /// <param name="client">バイナンスクライアント(DI)</param>
 /// <param name="dbc">DBコンテキスト(DI)</param>
 public BinanceManipulator(IBinanceClient client, SQLite dbc)
 {
     Client = client;
     DBC    = dbc;
 }
コード例 #28
0
 public MarketMakerHandler(ILogger <MarketMakerHandler> logger,
                           IBinanceClient binanceClient)
 {
     this.logger        = logger;
     this.binanceClient = binanceClient;
 }
コード例 #29
0
 public BinanceDataProvider(IBinanceClient client, IBinanceSocketClient socketClient)
 {
     _client       = client;
     _socketClient = socketClient;
 }
コード例 #30
0
 public BinanceWebSocketClient(IBinanceClient binanceClient, NLog.Logger logger = null)
 {
     BinanceClient    = binanceClient;
     ActiveWebSockets = new Dictionary <Guid, BinanceWebSocket>();
     Logger           = logger ?? NLog.LogManager.GetLogger("BinanceWebSocketClient");
 }