Ejemplo n.º 1
0
        /// <summary>
        /// установить соединение
        /// </summary>
        public void Connect(string publicKey, string privateKey)
        {
            if (_isConnected)
            {
                SendLogMessage("Запрошен повторный запуск клиента Kraken со статусом Connect", LogMessageType.Error);
                return;
            }
            try
            {
                _kraken = new KrakenApi(publicKey, privateKey);

                if (_proxies != null)
                {
                    _kraken.InsertProxies(_proxies);
                }

                if (_kraken.GetServerTime() == null)
                {
                    SendLogMessage("Подключение не удалось. Сервер не отвечает", LogMessageType.Error);
                    return;
                }

                _isConnected = true;

                if (ConnectionSucsess != null)
                {
                    ConnectionSucsess();
                }
            }
            catch (Exception error)
            {
                SendLogMessage(error.ToString(), LogMessageType.Error);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// connect
        /// установить соединение
        /// </summary>
        public void Connect(string publicKey, string privateKey)
        {
            if (_isConnected)
            {
                return;
            }
            try
            {
                _kraken = new KrakenApi(publicKey, privateKey);

                if (_proxies != null)
                {
                    _kraken.InsertProxies(_proxies);
                }

                if (_kraken.GetServerTime() == null)
                {
                    SendLogMessage(OsLocalization.Market.Label56, LogMessageType.Error);
                    return;
                }

                _isConnected = true;

                if (ConnectionSucsess != null)
                {
                    ConnectionSucsess();
                }
            }
            catch (Exception error)
            {
                SendLogMessage(error.ToString(), LogMessageType.Error);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// connect to API
        /// подсоединиться к апи
        /// </summary>
        public async void Connect()
        {
            if (_clientRest == null)
            {
                _clientRest = new KrakenClient(
                    ((ServerParameterString)ServerParameters[0]).Value,
                    ((ServerParameterPassword)ServerParameters[1]).Value);
                _clientRest.Connected         += _client_Connected;
                _clientRest.UpdatePairs       += _client_UpdatePairs;
                _clientRest.Disconnected      += _client_Disconnected;
                _clientRest.NewPortfolioEvent += _client_NewPortfolioSpot;

                _clientRest.UpdateMarketDepth += _client_UpdateMarketDepth;
                _clientRest.NewTradesEvent    += _client_NewTradesEvent;
                _clientRest.MyTradeEvent      += _client_MyTradeEvent;
                _clientRest.MyOrderEvent      += _client_MyOrderEvent;
                _clientRest.LogMessageEvent   += SendLogMessage;
            }

            KrakenApi.LogMessageEvent        += SendLogMessage;
            KrakenApi.TradeUpdateEvent       += KrakenApi_TradeUpdateEvent;
            KrakenApi.MarketDepthUpdateEvent += KrakenApi_MarketDepthUpdateEvent;
            KrakenApi.MyTradeUpdateEvent     += KrakenApi_MyTradeUpdateEvent;
            KrakenApi.OrdersUpdateEvent      += KrakenApi_OrdersUpdateEvent;

            _clientRest.Connect();

            _clientSocketPublicData = new KrakenApi();

            _clientSocketPublicData.ConfigureAuthentication(
                "https://api.kraken.com",
                ((ServerParameterString)ServerParameters[0]).Value,
                ((ServerParameterPassword)ServerParameters[1]).Value);

            //_clientSocket.ConfigureWebsocket(("wss://ws-auth.kraken.com"));
            _clientSocketPublicData.ConfigureWebsocket(("wss://ws.kraken.com"));

            AuthToken token = await _clientSocketPublicData.AuthenticationClient.GetWebsocketToken();

            var client = _clientSocketPublicData.BuildClient();

            await Task.Run(() => KrakenApi.RunKraken(client, token));

            _clientSocketPrivateData = new KrakenApi();
            _clientSocketPrivateData.ConfigureAuthentication(
                "https://api.kraken.com",
                ((ServerParameterString)ServerParameters[0]).Value,
                ((ServerParameterPassword)ServerParameters[1]).Value);

            _clientSocketPrivateData.ConfigureWebsocket(("wss://ws-auth.kraken.com"));

            token = await _clientSocketPrivateData.AuthenticationClient.GetWebsocketToken();

            client = _clientSocketPrivateData.BuildClient();

            await Task.Run(() => KrakenApi.RunKraken(client, token));
        }
Ejemplo n.º 4
0
        /// <summary>
        /// disconnect
        /// отключиться
        /// </summary>
        public void Disconnect()
        {
            _isConnected = false;

            if (_kraken != null)
            {
                lock (_lockerListen)
                {
                    _kraken.Dispose();

                    _kraken = null;
                }
            }

            if (ConnectionFail != null)
            {
                ConnectionFail();
            }
        }
Ejemplo n.º 5
0
        static async Task Main(string[] args)
        {
            var configuration = new ConfigurationBuilder()
                                .SetBasePath(Directory.GetCurrentDirectory())
                                .AddJsonFile("appsettings.json", true, true)
                                .AddEnvironmentVariables()
                                .Build();

            var logger = new LoggerConfiguration()
                         .MinimumLevel.Verbose()
                         .WriteTo.RollingFile("logs/kraken-websockets.log")
                         .WriteTo.Console(restrictedToMinimumLevel: Serilog.Events.LogEventLevel.Information)
                         .CreateLogger();

            _ = new LoggerFactory()
                .AddKrakenWebSockets()
                .AddSerilog(logger);

            var krakenApi = new KrakenApi()
                            .ConfigureAuthentication(
                configuration.GetValue <string>("API_URL"),
                configuration.GetValue <string>("API_KEY"),
                configuration.GetValue <string>("API_SECRET"))
                            .ConfigureWebsocket(configuration.GetValue <string>("WS_ENDPOINT"));

            token = await krakenApi.AuthenticationClient.GetWebsocketToken();

            using (var client = krakenApi.BuildClient())
            {
                await Task.Run(() => RunKraken(client, token));

                do
                {
                    Console.WriteLine("Press [ESC] to exit.");
                }while (Console.ReadKey().Key != ConsoleKey.Escape);
            }
        }
Ejemplo n.º 6
0
 /// <summary>
 /// cancel order
 /// отозвать ордер
 /// </summary>
 public void CancelOrder(Order order)
 {
     KrakenApi.CancelOrder(order);
 }
Ejemplo n.º 7
0
 /// <summary>
 /// send order
 /// исполнить ордер
 /// </summary>
 public void SendOrder(Order order)
 {
     KrakenApi.AddOrder(order);
 }