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; } }
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); } }
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); } }
/// <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 }); }