// BINANCE ARBS #1
        public static void TestBinanceArbs1()
        {
            // Create Prowl messaging client
            var msg1 = new Tools.Messaging.Prowl.ProwlClient(Crypto.ApiKeys["PROWL"].ApiKey, "BINANCE", "MACD");

            var assetInfo = binance.GetAssetInfo();
            //assetInfo.Select(xkv => xkv).OrderBy(xkv => xkv.Key).ToList().ForEach(xai => cout(xai.Value.ToDisplay()));

            // Create a BalanceMinMaxMap that we will pass to ArbZero to set our Min/Max currency balance limits
            var balances = binance.GetAccountBalances();
            var limits   = BalanceMinMaxMap.CreatePercentageUpDown(balances, 50, 50);   // set limits to up or down 50% from current balances

            var args = new List <ArbZeroArgs>();

            args.AddRange(GetArgs("BCC", 0.01M));
            args.AddRange(GetArgs("LTC", 0.1M));
            args.AddRange(GetArgs("NEO", 0.1M));

            Task.Run(() => ArbOne(args, limits, true, 0.14M, 4001));
        }
        public static void TestBinanceTrades()
        {
            // Create Prowl messaging client
            var msg1 = new Tools.Messaging.Prowl.ProwlClient(Crypto.ApiKeys["PROWL"].ApiKey, "BINANCE", "MACD");

            var assetInfo = binance.GetAssetInfo();
            //assetInfo.Select(xkv => xkv).OrderBy(xkv => xkv.Key).ToList().ForEach(xai => cout(xai.Value.ToDisplay()));

            // Dictionary of symbols/intervals to trade
            var li = new string[, ] {
                { "BCCBTC", "15" },
                { "BCCETH", "1" }, { "BCCETH", "5" }, { "BCCETH", "15" },
                { "BCCUSDT", "1" }, { "BCCUSDT", "5" }, { "BCCUSDT", "15" },
                { "BNBUSDT", "5" },
                { "BTCUSDT", "5" },
                { "DASHETH", "1" }, { "DASHETH", "15" },
                { "DGDETH", "1" }, { "DGDETH", "30" },
                { "ETHUSDT", "1" }, { "ETHUSDT", "5" }, { "ETHUSDT", "15" },
                { "LTCETH", "60" },
                { "LTCUSDT", "1" }, { "LTCUSDT", "5" }, { "LTCUSDT", "15" }, { "LTCUSDT", "30" }, { "LTCUSDT", "60" },
                { "NEOETH", "60" },
                { "NEOUSDT", "15" },
                { "XMRETH", "5" }, { "XMRETH", "60" },
                { "ZECETH", "1" }, { "ZECETH", "30" }, { "ZECETH", "60" }
            };

            // Iterate through each symbol/interval and create a new Trade (and start the trade)
            var trd = new Dictionary <string, BinanceTradeMACD>();

            for (int i = 0; i < li.GetLength(0); ++i)
            {
                cout("===============================================================================================");
                string symbol      = li[i, 0];
                int    barInterval = int.Parse(li[i, 1]);
                cout("Initiating BINANCE MACD '{0}' trade, {1} minutes", symbol, barInterval);

                var id = string.Format("{0}:{1}", symbol, barInterval);
                trd[id]       = new BinanceTradeMACD(binance, symbol, msg1);
                trd[id].Debug = true;
                decimal stepSize = assetInfo[symbol].stepSize;
                trd[id].StartTrade(stepSize, barInterval, tradeLive: false, backTestOnly: false);
                cout("===============================================================================================");
            }

            return;

            /*var b60neo = new BinanceTradeMACD(binance, "NEOETH", msg1);
             * b60neo.StartTrade(0.2M, 60, tradeLive: true, backTestOnly: false);
             * var b15xmr = new BinanceTradeMACD(binance, "XMRETH", msg1);
             * b15xmr.StartTrade(0.15M, 15, tradeLive: true, backTestOnly: false);
             * var b60xmr = new BinanceTradeMACD(binance, "XMRETH", msg1);
             * b60xmr.StartTrade(0.15M, 60, tradeLive: true, backTestOnly: false);
             * var b30zec = new BinanceTradeMACD(binance, "ZECETH", msg1);
             * b30zec.StartTrade(0.11M, 30, tradeLive: true, backTestOnly: false);
             * var b60zec = new BinanceTradeMACD(binance, "ZECETH", msg1);
             * b60zec.StartTrade(0.11M, 60, tradeLive: true, backTestOnly: false);
             * var b30ltc = new BinanceTradeMACD(binance, "LTCETH", msg1);
             * b30ltc.StartTrade(0.2M, 30, tradeLive: true, backTestOnly: false);
             * var b60ltc = new BinanceTradeMACD(binance, "LTCETH", msg1);
             * b60ltc.StartTrade(0.2M, 60, tradeLive: true, backTestOnly: false);*/

            /*ApiCredentials creds = m_security.ApiKeys["BINANCE"];
             * var apiClient = new CryptoAPIs.Exchange.Clients.Binance.ApiClient(creds.ApiKey, creds.ApiSecret);
             * var bn = new CryptoAPIs.Exchange.Clients.Binance.BinanceClient(apiClient);
             * var ai = bn.GetAccountInfo().Result;
             * Console.WriteLine("{0} {1} {2} {3}", ai.BuyerCommission, ai.SellerCommission, ai.MakerCommission, ai.TakerCommission);
             *
             * var bookTicker = bn.GetOrderBookTicker().Result;
             * foreach (var obt in bookTicker)
             * {
             *  if (obt.Symbol.Contains("NEO") || obt.Symbol.Contains("XMR"))
             *      Console.WriteLine(obt.Symbol);
             * }
             *
             * var kl = bn.GetCandleSticks("NEOETH", Exchange.Clients.Binance.TimeInterval.Hours_1).Result;
             * foreach (var k in kl)
             * {
             *  Console.WriteLine("{0} {1} {2} {3} {4}", k.CloseTime.ToDateTimeString(), k.Open, k.High, k.Low, k.Close);
             * }
             * //bn.ListenKlineEndpoint("NEOETH", Exchange.BinanceX.TimeInterval.Minutes_1, HandleKline);
             *
             * Thread.Sleep(120000);
             * return;*/
        }