Пример #1
0
        static void CoinbaseRest()
        {
            var keys = new ExchangeApi.Coinbase.Keys()
            {
                Key        = "MY_KEY",
                Secret     = "MY_SECRET",
                Passphrase = "MY_PASSPHRASE",
            };

            using (var client = new ExchangeApi.Coinbase.REST.RestClient(ExchangeApi.Coinbase.Instance.Prod.REST, keys))
            {
                client.SendRequest(new ExchangeApi.Coinbase.REST.CancelAllRequest()).Wait();
                string orderId = client.SendRequest(new ExchangeApi.Coinbase.REST.NewOrderRequest()
                {
                    ClientOrderId = Guid.NewGuid().ToString(),
                    Side          = ExchangeApi.Coinbase.Side.Sell,
                    ProductId     = "BTC-EUR",
                    Price         = 1000m,
                    Size          = 0.01m,
                    TimeInForce   = ExchangeApi.Coinbase.REST.TimeInForce.GTT,
                    CancelAfter   = ExchangeApi.Coinbase.REST.CancelAfter.Min,
                    PostOnly      = true,
                }).Result.OrderId;
                client.SendRequest(new ExchangeApi.Coinbase.REST.CancelOrderRequest()
                {
                    OrderId = orderId,
                }).Wait();
                client.SendRequest(new ExchangeApi.Coinbase.REST.CancelOrderRequest()
                {
                    OrderId = orderId,
                }).Wait();
            }
        }
Пример #2
0
        static void CoinbaseClient()
        {
            var keys = new ExchangeApi.Coinbase.Keys()
            {
                Key        = "MY_KEY",
                Secret     = "MY_SECRET",
                Passphrase = "MY_PASSPHRASE",
            };
            var cfg = new ExchangeApi.Coinbase.Config()
            {
                Endpoint = ExchangeApi.Coinbase.Instance.Prod,
                Products = new List <string>()
                {
                    "BTC-USD"
                },
                Keys = keys,
            };

            using (var client = new ExchangeApi.Coinbase.Client(cfg))
            {
                client.OnOrderBook += (string product, TimestampedMsg <ExchangeApi.Coinbase.OrderBookDelta> msg) =>
                {
                    if (msg.Value.Bids.Count + msg.Value.Asks.Count > 10)
                    {
                        _log.Info("OnOrderBook({0}, IsLast={1}): {2} bid(s), {3} ask(s)",
                                  product, !client.Scheduler.HasReady(), msg.Value.Bids.Count, msg.Value.Asks.Count);
                    }
                    else
                    {
                        _log.Info("OnOrderBook({0}, IsLast={1}): {2}", product, !client.Scheduler.HasReady(), msg.Value);
                    }
                };
                client.OnTrade += (string product, TimestampedMsg <ExchangeApi.Coinbase.Trade> msg) =>
                {
                    _log.Info("OnTrade({0}, IsLast={1}): {2}", product, !client.Scheduler.HasReady(), msg.Value);
                };
                Action <TimestampedMsg <ExchangeApi.Coinbase.OrderUpdate> > OnOrder = msg =>
                {
                    _log.Error("OnOrder(IsLast={0}): {1}", !client.Scheduler.HasReady(), msg);
                };
                client.Connect();
                Thread.Sleep(5000);
                client.Send(new ExchangeApi.Coinbase.NewOrder()
                {
                    Price     = 584.33m,
                    Size      = 0.01m,
                    ProductId = "BTC-USD",
                    Side      = ExchangeApi.Coinbase.Side.Sell,
                },
                            OnOrder);
                while (true)
                {
                    Thread.Sleep(1000);
                }
            }
            Thread.Sleep(2000);
        }