Example #1
0
        private void Check_Ticker(string ExchangeName)
        {
            ExchangeData Data = ExchangeList.First(data => data.Name.Equals(ExchangeName));

            Data.Status = EnumData.ExchangeStatus.執行中;

            try
            {
                while (this._start)
                {
                    switch (ExchangeName.ToLower())
                    {
                    case "binance":
                        //binance.Socket_Ticker("ETHBTC");
                        break;

                    case "bittrex":
                        Bittrex_Ticker(Data);
                        break;
                    }

                    Thread.Sleep(1000);
                }

                Data.Status = EnumData.ExchangeStatus.停止;
            }
            catch (Exception e)
            {
                Data.Status   = EnumData.ExchangeStatus.異常;
                Data.ErrorMsg = e.InnerException == null ? e.Message : e.InnerException.Message;
            }
        }
Example #2
0
        private void Bittrex_Ticker(ExchangeData Data)
        {
            var Result = bittrex.Ticker("BTC-ETH");

            if (Result.Status)
            {
                Data.Ask        = Convert.ToDouble(Result.Data.Ask);
                Data.Bid        = Convert.ToDouble(Result.Data.Bid);
                Data.UpdateTime = DateTime.UtcNow;
            }
            else
            {
                throw new Exception(Result.Message);
            }
        }
Example #3
0
        private void Binance_Ticker(ExchangeData Data)
        {
            var Result = binance.Ticker("ETHBTC");

            if (Result.Status)
            {
                Data.Ask        = Result.Data.AskPrice;
                Data.Bid        = Result.Data.BidPrice;
                Data.UpdateTime = DateTime.UtcNow;
            }
            else
            {
                throw new Exception(Result.Message);
            }
        }
Example #4
0
        /// <summary>
        /// 交易所交易
        /// </summary>
        /// <param name="highestBid">(賣價)最高</param>
        /// <param name="lowestAsk">(買價)最低</param>
        /// <param name="MinQuantity">交易數量</param>
        /// <returns></returns>
        internal StockExchangeApiData StockExchange(ExchangeData highestBid, ExchangeData lowestAsk, decimal MinQuantity)
        {
            var Stace    = false;
            var AskStace = new ExchangeApiData();
            var BidStace = new ExchangeApiData();

            switch (lowestAsk.Name.ToLower())
            {
            case "binance":
                AskStace = binance.PlaceOrderAsk(lowestAsk, MinQuantity);
                break;

            case "bittrex":
                AskStace = bittrex.PlaceOrderAsk(lowestAsk, MinQuantity);
                break;

            case "hitbtc":
                AskStace = hitbtc.PlaceOrderAsk(lowestAsk, MinQuantity);
                break;

            case "huobi":
                AskStace = huobi.PlaceOrderAsk(lowestAsk, MinQuantity);
                break;

            case "poloniex":
                AskStace = Poloniex.PlaceOrderAsk(lowestAsk, MinQuantity);
                break;

            case "okex":
                AskStace = OKEx.PlaceOrderAsk(lowestAsk, MinQuantity);
                break;
            }
            switch (highestBid.Name.ToLower())
            {
            case "binance":
                BidStace = binance.PlaceOrderBid(highestBid, MinQuantity);
                break;

            case "bittrex":
                BidStace = bittrex.PlaceOrderBid(highestBid, MinQuantity);
                break;

            case "hitbtc":
                BidStace = hitbtc.PlaceOrderBid(highestBid, MinQuantity);
                break;

            case "huobi":
                BidStace = huobi.PlaceOrderBid(highestBid, MinQuantity);
                break;

            case "poloniex":
                BidStace = Poloniex.PlaceOrderBid(highestBid, MinQuantity);
                break;

            case "okex":
                BidStace = OKEx.PlaceOrderBid(highestBid, MinQuantity);
                break;
            }
            if (AskStace.Stace && BidStace.Stace)
            {
                Stace = true;
            }
            AskStace.Name = lowestAsk.Name;
            BidStace.Name = highestBid.Name;
            return(new StockExchangeApiData {
                AskStace = AskStace, BidStace = BidStace, Stace = Stace
            });
        }