Example #1
0
        public async Task <List <Fondo> > ScaricaFondi()
        {
            _fondi = new List <Fondo>();
            //L'implementazione delle API utilizzata non è asincrona quindi la rendo asincrona inserendola in un Task
            await Task.Run(() =>
            {
                try
                {
                    var risArray = _apiClient.GetBalances().ToArray();

                    for (int i = 0; i < risArray.Length; i++)
                    {
                        if (risArray[i].Amount != 0)
                        {
                            decimal quantità = Convert.ToDecimal(risArray[i].Amount);
                            Valuta valuta    = _factory.OttieniValuta(risArray[i].Currency);
                            Fondo fondo      = new Fondo(valuta, quantità);
                            _fondi.Add(fondo);
                        }
                    }
                }
                catch (Exception e)
                {
                    throw new EccezioneApi("BitfinexExchange(ScaricaFondi()): Errore durante il collegamento: " + e.Message);
                }
            });

            return(_fondi);
        }
Example #2
0
        public static void Test()
        {
            using (var wsApi = new BitfinexSocketApi())
            {
                BitfinexSocketApi.SetLogVerbosity(Bitfinex.Logging.LogVerbosity.Info);

                Console.WriteLine("Bitfinex: Socket starting...");
                wsApi.Connect();

                Task.Delay(3000).Wait();

/*
 *              var subcribtion1 = wsApi.SubscribeToTradingPairTicker("tETHBTC", summary =>
 *              {
 *                  Console.WriteLine($"{DateTime.Now} BTC-ETH: {summary.LastPrice}");
 *              });
 *              Console.WriteLine($"Subcribtion1: {subcribtion1}");
 */

                var subcribtion2 = wsApi.SubscribeToOrderBooks("tETHBTC", OnOrderBooks, frequency: Frequency.F0, length: 1);
                Console.WriteLine($"Subcribtion2: {subcribtion2}");

                Console.ReadLine();
            }

/*
 *                      var ticker = BitfinexApi.GetPublicTicker(BtcInfo.PairTypeEnum.btcusd, BtcInfo.BitfinexUnauthenicatedCallsEnum.pubticker);
 *                      Console.WriteLine(ticker.LastPrice);
 *
 *                      var trades = BitfinexApi.GetPairTrades(BtcInfo.PairTypeEnum.btcusd, BtcInfo.BitfinexUnauthenicatedCallsEnum.trades);
 *                      Console.WriteLine("trades.Count=" + trades.Count);
 *
 *                      var orderBook = BitfinexApi.GetOrderBook(BtcInfo.PairTypeEnum.btcusd);
 *                      Console.WriteLine("orderBook.Asks.Length={0}, orderBook.Bids.Length={1}", orderBook.Asks.Length, orderBook.Bids.Length);
 */
            var api = new BitfinexApi(ApiKey, ApiSecret);

            var balances = api.GetBalances();
            var usd      = balances.FirstOrDefault(x => x.Type == "exchange" && x.Currency == "usd");
            var btc      = balances.FirstOrDefault(x => x.Type == "exchange" && x.Currency == "btc");

            Console.WriteLine("usd: " + usd);
            Console.WriteLine("btc: " + btc);

            foreach (var balance in balances)
            {
                Console.WriteLine("balance: " + balance);
            }

            var info = api.GetAccountInformation();

            Console.WriteLine("Account info: {0}", info);

            var openOrders = api.GetActiveOrders();

            Console.WriteLine("Open orders: {0}", openOrders.Count());

/*
 *                      var cancelResult = api.CancelOrder(12345);
 *                      Console.WriteLine("CancelOrder: {0}", cancelResult);
 *
 *                      var sellAnswer = api.Sell(12456.3M, 2);
 *                      Console.WriteLine("Sell: {0}", sellAnswer);
 *
 *                      var buyAnswer = api.Buy(12.3M, 1);
 *                      Console.WriteLine("Buy: {0}", buyAnswer);
 */
        }
        public async Task ShouldGetBalances()
        {
            var result = await _api.GetBalances();

            Assert.NotNull(result);
        }