예제 #1
0
 public OrderInfo CheckOrder(String symbol, int orderId)
 {
     lock (_lock)
     {
         return(BinanceService.CheckOrderStatus(symbol, orderId));
     }
 }
예제 #2
0
 public bool CancelOrder(String symbol, int orderId)
 {
     lock (_lock)
     {
         return(BinanceService.CancelOrder(symbol, orderId));
     }
 }
예제 #3
0
 public OrderInfo PlaceSellOrder(String symbol, double amount, double price)
 {
     lock (_lock)
     {
         return(BinanceService.PlaceSellOrder(symbol, amount, price, "LIMIT"));
     }
 }
예제 #4
0
 public AccountInfo GetAccountInfo()
 {
     lock (_lock)
     {
         return(BinanceService.GetAccountInfo());;
     }
 }
예제 #5
0
 public List <TradeInfo> GetTradeHistory(String symbol)
 {
     lock (_lock)
     {
         return(BinanceService.GetTrades(symbol));
     }
 }
예제 #6
0
        private void Refresh()
        {
            if (Monitor.TryEnter(_lock))
            {
                try
                {
                    List <Prices> latestPrices = BinanceService.ListPrices();
                    OnExchangeRateReady?.Invoke(latestPrices);

                    lock (_tradeDataCallbacks)
                    {
                        foreach (KeyValuePair <String, Action <List <TradeInfo> > > entry in _tradeDataCallbacks)
                        {
                            if (entry.Value != null)
                            {
                                List <TradeInfo> tradeInfo = BinanceService.GetTrades(entry.Key);
                                entry.Value.Invoke(tradeInfo);
                            }
                        }
                    }
                }
                finally
                {
                    Monitor.Exit(_lock);
                }
            }
        }
예제 #7
0
 /// <summary>コンストラクタ</summary>
 /// <param name="config">設定(DI)</param>
 /// <param name="binance">バイナンスサービス(DI)</param>
 /// <param name="csv">CSV(DI)</param>
 public MarketFunction(Settings config, BinanceService binance, ICSVManipulator csv, IExchengerates exchengerates)
 {
     Config         = config;
     Binance        = binance;
     CSV            = csv;
     Excheangerates = exchengerates;
 }
예제 #8
0
 public BinanceNewOrderCheckHandler(BinanceService exchangeService, ILogger <BinanceService> log, IMicroBus bus, BinanceConfig config)
 {
     _exchangeService = exchangeService;
     _log             = log;
     _bus             = bus;
     _config          = config;
 }
예제 #9
0
        public void ReportTest()
        {
            var binance = new Mock <IBinanceManipulator>();
            var discord = new Mock <IDiscordManipulator>();
            var assert  = new List <IEnumerable <Summary> >();

            discord.Setup(x => x.PostTable(It.IsAny <IEnumerable <Summary> >())).Callback <IEnumerable <Summary> >(x => assert.Add(x));
            var target = new BinanceService(binance.Object, new SQLite(new Settings()
            {
                SQLiteConnectionString = "Data Source=..\\..\\..\\TestData\\Report.sqlite"
            }), discord.Object);
            var symbol = new[] { "BTCUSDT" };

            target.Report(symbol, 100);

            $"{string.Join(",", symbol)}の情報を取得すること"
            .x(() =>
            {
                binance.Verify(d => d.GetMarket(symbol), Times.Once);
            });

            "Discordへポストすること"
            .x(() =>
            {
                discord.Verify(d => d.PostTable(It.IsAny <IEnumerable <Summary> >()), Times.Exactly(2));
            });

            "ポストするデータのチェック"
            .x(() =>
            {
                assert.Should().HaveCount(2);
                assert[0].Should().HaveCount(1);
                assert[1].Should().HaveCount(0);
            });
        }
예제 #10
0
        public void Test1()
        {
            var binanceClient = new BinanceClient(Configuration);

            var bs      = new BinanceService(binanceClient, Log, repo);
            var accInfo = bs.GetSymbolValuesForAccount();

            Assert.Pass();
        }
예제 #11
0
 public BinanceDepositWithdrawalHandler(
     BinanceService binanceService,
     BinanceConfig config,
     GeneralConfig generalConfig,
     IMicroBus bus)
 {
     _binanceService = binanceService;
     _config         = config;
     _generalConfig  = generalConfig;
     _bus            = bus;
 }
 public BinanceBagAndDustHandler(
     IMicroBus bus,
     BinanceConfig config,
     BinanceService binanceService,
     DatabaseService databaseService,
     GeneralConfig generalConfig)
 {
     _bus             = bus;
     _config          = config;
     _binanceService  = binanceService;
     _databaseService = databaseService;
     _generalConfig   = generalConfig;
 }
예제 #13
0
        public async Task <IActionResult> UzzoBinance(SearchPrice obj_SearchPrice)
        {
            BinanceService objBinanceService = new BinanceService(_configuration, db_UzzoBinance);
            await objBinanceService.SearchPrice();

            //Instanciando serviço que será utilizado
            UzzoPayService obj_ListSymbolPrice = new UzzoPayService(db_UzzoBinance);

            //Retornando para viewModel o resultado do select
            List <SymbolPrice> obj_ViewModel = obj_ListSymbolPrice.SelectLastPrices();

            //Retornando para view os últimos preços salvos
            return(View(obj_ViewModel));
        }
예제 #14
0
        public DiscordClient(GuidService guidService,
                             CoursesService coursesService,
                             BalanceService balanceService,
                             AccountService accountService,
                             BinanceService binanceService,
                             HostConfig config)
        {
            this.guidService    = guidService;
            this.coursesService = coursesService;
            this.balanceService = balanceService;
            this.accountService = accountService;
            this.binanceService = binanceService;
            this.config         = config;

            client = new DiscordSocketClient();

            client.Log             += LogAsync;
            client.Ready           += ReadyAsync;
            client.MessageReceived += MessageReceivedAsync;
        }
예제 #15
0
        static void Main(string[] args)
        {
            if (args.Count() != 2)
            {
                Console.WriteLine("Error. Usage BinanceExecute.exe [binance key] [binance secret]");
                Console.WriteLine("Press enter to exit");
                Console.ReadLine();
                Environment.Exit(0);
            }

            TimeSpan maxTradeData = TimeSpan.FromHours(12);
            TimeSpan refreshData  = TimeSpan.FromSeconds(1);

            string key    = args[0];
            string secret = args[1];

            var binanceClient  = new BinanceClient.BinanceClient(key, secret);
            var binanceService = new BinanceService(binanceClient);

            IBinanceDataPool binanceDataPool = new BinanceDataPool(binanceService);

            binanceDataPool.Start(refreshData);

            List <ICurrency>     allCurrencies    = Currency.AllCurrencies.Where(curr => curr != Currency.UsDollar).ToList();
            List <IExchangeRate> allExchangeRates = allCurrencies.Select(curr => (IExchangeRate) new ExchangeRate(curr, Currency.UsDollar,
                                                                                                                  binanceDataPool, maxTradeData)).ToList();

            IExchangeRate liteCoinExchangeRate = allExchangeRates.FirstOrDefault(exc => exc.ReferenceCurrency == Currency.UsDollar && exc.MainCurrency == Currency.LiteCoin);

            Account account = new Account(binanceDataPool, allCurrencies, allExchangeRates, maxTradeData);

            DoWork(account, refreshData, binanceDataPool, false);

            /* List<ITrade> trades = allCurrencies.Select(currency => allCurrencies.
             *       Select(referenceCurrency => new KeyValuePair<ICurrency, ICurrency>(currency, referenceCurrency)).
             *       Where(keyPairVal => keyPairVal.Key != keyPairVal.Value)).
             *   SelectMany(keyPairVals => keyPairVals).Select(keyPairVal =>
             *   new Trade(binanceDataPool, keyPairVal.Key, keyPairVal.Value, allExchangeRates) as ITrade).ToList();
             *
             */


            /*IExchangeRate exchangeRate = new  ExchangeRate(Currency.Ethereum, Currency.Bitcoin, binanceService, exchangeRatePool, maxTradeData);
             *          Order order = new Order(exchangeRate, 0.0056, binanceService);
             *          order.PlaceBuyOrder();
             */



            /*
             *          var getAccount = binanceService.GetAccountAsync();
             *          Task.WaitAll(getAccount);
             *          dynamic account = getAccount.Result;
             *          Console.WriteLine(account);*/

            //GET TICKER DEPTH

            /*var getDepth = binanceService.GetDepthAsync("BTCUSDT");
             * Task.WaitAll(getDepth);
             * dynamic depth = getDepth.Result;
             * Console.WriteLine(depth);*/

            /*IExchangeRatePool exchangeRatePool = new BinanceDataPool(binanceService);
             * exchangeRatePool.Start(TimeSpan.FromSeconds(0.5));
             *
             * IExchangeRate bitCoinExchangeRate = new ExchangeRate(Currency.Bitcoin, Currency.UsDollar, binanceService, exchangeRatePool, maxTradeData);
             * IExchangeRate binanceCoinExchangeRate = new ExchangeRate(Currency.BinanceCoin, Currency.UsDollar, binanceService, exchangeRatePool, maxTradeData);
             * IExchangeRate ethereumExchangeRate = new ExchangeRate(Currency.Ethereum, Currency.UsDollar, binanceService, exchangeRatePool, maxTradeData);
             * IExchangeRate liteCoinExchangeRate = new ExchangeRate(Currency.LiteCoin, Currency.UsDollar, binanceService, exchangeRatePool, maxTradeData);
             *
             *
             * Thread.Sleep(500000);*/


            /*
             * //GET ACCOUNT INFORMATION
             * var getAccount = binanceService.GetAccountAsync();
             * Task.WaitAll(getAccount);
             * dynamic account = getAccount.Result;
             * Console.WriteLine(account);
             *
             * //GET ORDERS FOR SYMBOL
             * var getOrders = binanceService.GetOrdersAsync("BNBBTC", 100);
             * Task.WaitAll(getOrders);
             * dynamic orders = getOrders.Result;
             * Console.WriteLine(orders);
             *
             * //GET MY TRADES
             * var getMyTrades = binanceService.GetTradesAsync("WTCBTC");
             * Task.WaitAll(getAccount);
             * dynamic trades = getMyTrades.Result;
             * Console.WriteLine(trades);
             *
             * //GET ALL PRICES
             * List<Prices> prices = new List<Prices>();
             * prices = binanceService.ListPrices();
             * Console.WriteLine(prices);*/

            //GET PRICE OF SYMBOL

            /*double symbol = binanceService.GetPriceOfSymbol("BTCUSDT");
             * Console.WriteLine("Price of BNB: " + symbol);*/

            /*//PLACE BUY ORDER
             * var placeBuyOrder = binanceService.PlaceBuyOrderAsync("NEOBTC", 1.00, 00.008851);
             * Task.WaitAll(placeBuyOrder);
             * dynamic buyOrderResult = placeBuyOrder.Result;
             * Console.WriteLine(buyOrderResult);
             *
             * //PLACE SELL ORDER
             * var placeSellOrder = binanceService.PlaceSellOrderAsync("NEOBTC", 1.00, 00.008851);
             * Task.WaitAll(placeSellOrder);
             * dynamic sellOrderResult = placeSellOrder.Result;
             * Console.WriteLine(sellOrderResult);
             *
             * //TEST ORDER---------------------------------------------------------------------------
             * var placeOrderTest = binanceService.PlaceTestOrderAsync("NEOBTC", "SELL", 1.00, 00.006151);
             * Task.WaitAll(placeOrderTest);
             * dynamic testOrderResult = placeOrderTest.Result;
             * Console.WriteLine(testOrderResult);
             * //-------------------------------------------------------------------------------------
             *
             * //CHECK ORDER STATUS BY ID
             * var checkOrder = binanceService.CheckOrderStatusAsync("NEOBTC", 5436663);
             * Task.WaitAll(checkOrder);
             * dynamic checkOrderResult = checkOrder.Result;
             * Console.WriteLine(checkOrderResult);
             *
             * //DELETE ORDER BY ID
             * var deleteOrder = binanceService.CancelOrderAsync("NEOBTC", 5436663);
             * Task.WaitAll(deleteOrder);
             * dynamic deleteOrderResult = deleteOrder.Result;
             * Console.WriteLine(deleteOrderResult);*/

            Console.ReadLine();
        }
예제 #16
0
        static void Main(string[] args)
        {
            var binanceClient  = new BinanceAPI.BinanceClient();
            var binanceService = new BinanceService(binanceClient);

            //GET TICKER DEPTH
            var getDepth = binanceService.GetDepthAsync("BNBBTC");

            Task.WaitAll(getDepth);
            dynamic depth = getDepth.Result;

            Console.WriteLine(depth);

            //GET ACCOUNT INFORMATION
            var getAccount = binanceService.GetAccountAsync();

            Task.WaitAll(getAccount);
            dynamic account = getAccount.Result;

            Console.WriteLine(account);

            //GET ORDERS FOR SYMBOL
            var getOrders = binanceService.GetOrdersAsync("BNBBTC", 100);

            Task.WaitAll(getOrders);
            dynamic orders = getOrders.Result;

            Console.WriteLine(orders);

            //GET MY TRADES
            var getMyTrades = binanceService.GetTradesAsync("WTCBTC");

            Task.WaitAll(getAccount);
            dynamic trades = getMyTrades.Result;

            Console.WriteLine(trades);

            //GET ALL PRICES
            List <Prices> prices = new List <Prices>();

            prices = binanceService.ListPrices();
            Console.WriteLine(prices);

            //GET PRICE OF SYMBOL
            double symbol = binanceService.GetPriceOfSymbol("BNBBTC");

            Console.WriteLine("Price of BNB: " + symbol);

            //PLACE BUY ORDER
            var placeBuyOrder = binanceService.PlaceBuyOrderAsync("NEOBTC", 1.00, 00.008851);

            Task.WaitAll(placeBuyOrder);
            dynamic buyOrderResult = placeBuyOrder.Result;

            Console.WriteLine(buyOrderResult);

            //PLACE SELL ORDER
            var placeSellOrder = binanceService.PlaceSellOrderAsync("NEOBTC", 1.00, 00.008851);

            Task.WaitAll(placeSellOrder);
            dynamic sellOrderResult = placeSellOrder.Result;

            Console.WriteLine(sellOrderResult);

            //TEST ORDER---------------------------------------------------------------------------
            var placeOrderTest = binanceService.PlaceTestOrderAsync("NEOBTC", "SELL", 1.00, 00.006151);

            Task.WaitAll(placeOrderTest);
            dynamic testOrderResult = placeOrderTest.Result;

            Console.WriteLine(testOrderResult);
            //-------------------------------------------------------------------------------------

            //CHECK ORDER STATUS BY ID
            var checkOrder = binanceService.CheckOrderStatusAsync("NEOBTC", 5436663);

            Task.WaitAll(checkOrder);
            dynamic checkOrderResult = checkOrder.Result;

            Console.WriteLine(checkOrderResult);

            //DELETE ORDER BY ID
            var deleteOrder = binanceService.CancelOrderAsync("NEOBTC", 5436663);

            Task.WaitAll(deleteOrder);
            dynamic deleteOrderResult = deleteOrder.Result;

            Console.WriteLine(deleteOrderResult);
        }
예제 #17
0
 public BinanceBalanceCheckHandler(BinanceService exchangeService, BinanceConfig config, IMicroBus bus)
 {
     _exchangeService = exchangeService;
     _config          = config;
     _bus             = bus;
 }
예제 #18
0
 public PriceService(BittrexService bittrexService, PoloniexService poloniexService, BinanceService binanceService)
 {
     _bittrexService  = bittrexService;
     _poloniexService = poloniexService;
     _binanceService  = binanceService;
 }
 public BinanceSymbolGenerateHandler(BinanceService binanceService)
 {
     _binanceService = binanceService;
 }
예제 #20
0
 public TelegramMessageUpdateController(MainService mainService, BinanceService binanceService)
 {
     this.mainService    = mainService;
     this.binanceService = binanceService;
 }