Example #1
0
        private static async Task RunKraken(IKrakenApiClient client)
        {
            client.HeartbeatReceived         += (sender, e) => Console.WriteLine("Heartbeat received");
            client.SystemStatusChanged       += (sender, e) => Console.WriteLine($"System status changed: status={e.Message.Status}");
            client.SubscriptionStatusChanged += (sender, e) => Console.WriteLine($"Subscription status changed: status={e.Message.Status}, pair={e.Message.Pair}, channelId={e.Message.ChannelId}, error={e.Message.ErrorMessage}, subscription.name={e.Message.Subscription.Name}");;
            client.TickerReceived            += (sender, e) => Console.WriteLine($"Ticker received");
            client.OhlcReceived         += (sender, e) => Console.WriteLine($"Ohlc received");
            client.TradeReceived        += (sender, e) => Console.WriteLine($"Trade received");
            client.SpreadReceived       += (sender, e) => Console.WriteLine($"Spread received");
            client.BookSnapshotReceived += (sender, e) => Console.WriteLine($"BookSnapshot received");
            client.BookUpdateReceived   += (sender, e) => Console.WriteLine($"BookUpdate received");

            await client.ConnectAsync();

            client.SubscriptionStatusChanged += async(sender, e) =>
            {
                if (e.Message.Status == SubscriptionStatusNames.Subscribe && e.Message.ChannelId.HasValue)
                {
                    await Task.Delay(50000);

                    await client.UnsubscribeAsync(e.Message.ChannelId.Value);
                }
            };

            await client.SubscribeAsync(new Subscribe(new[] { Pair.XBT_EUR }, new SubscribeOptions(SubscribeOptionNames.All)));
        }
Example #2
0
        private static async Task RunKraken(IKrakenApiClient client, AuthToken token)
        {
            client.HeartbeatReceived         += (sender, e) => Console.WriteLine("Heartbeat received");
            client.SystemStatusChanged       += (sender, e) => Console.WriteLine($"System status changed: status={e.Message.Status}");
            client.SubscriptionStatusChanged += (sender, e) => Console.WriteLine($"Subscription status changed: status={e.Message.Status}, pair={e.Message.Pair}, channelId={e.Message.ChannelId}, error={e.Message.ErrorMessage}, subscription.name={e.Message.Subscription.Name}");
            client.TickerReceived            += (sender, e) => Console.WriteLine($"Ticker received");
            client.OhlcReceived         += (sender, e) => Console.WriteLine($"Ohlc received");
            client.TradeReceived        += (sender, e) => Console.WriteLine($"Trade received");
            client.SpreadReceived       += (sender, e) => Console.WriteLine($"Spread received");
            client.BookSnapshotReceived += (sender, e) => Console.WriteLine($"BookSnapshot received");
            client.BookUpdateReceived   += (sender, e) => Console.WriteLine($"BookUpdate received");
            client.OwnTradesReceived    += (sender, e) => Console.WriteLine($"OwnTrades received");
            client.OpenOrdersReceived   += (sender, e) => Console.WriteLine($"OpenOrders received");

            await client.ConnectAsync();

            client.SubscriptionStatusChanged += async(sender, e) =>
            {
                if (e.Message.Status == SubscriptionStatusNames.Subscribe && e.Message.ChannelId.HasValue)
                {
                    await Task.Delay(50000);

                    await client.UnsubscribeAsync(e.Message.ChannelId.Value);
                }
            };

            await client.SubscribeAsync(new Subscribe(new[] { Pair.XBT_EUR }, new SubscribeOptions(SubscribeOptionNames.All)));

            await client.SubscribeAsync(new Subscribe(null, new SubscribeOptions(SubscribeOptionNames.OwnTrades, token.Token)));

            await client.SubscribeAsync(new Subscribe(null, new SubscribeOptions(SubscribeOptionNames.OpenOrders, token.Token)));

            await client.AddOrder(new AddOrderCommand(token.Token, OrderType.Market, Side.Sell, "XBT/USD", 1)
            {
                TradingAgreement = "agree"
            });
        }