예제 #1
0
        static void Main(string[] args)
        {
            tickDatas = new Dictionary <string, TickData>();
            HuobiMarket market = new HuobiMarket();

            market.OnMessage    += TickUpdate;
            market.OnConnecteed += HBConnected;
            string url = "wss://api.huobipro.com/ws";

            try
            {
                market.Init(url);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            List <string> symbols = new List <string>()
            {
                "btcusdt", "eosbtc", "eosusdt"
            };

            foreach (var item in symbols)
            {
                tickDatas[item] = new TickData();
                string str = "market." + item + ".depth.step0";
                market.Subscribe(str, "33233011");
            }

            //thread = new Thread(new ThreadStart(RecordeDatas));


            Console.ReadLine();
        }
예제 #2
0
        public override HuobiMarketSummary GetMarketSummary(HuobiMarket market)
        {
            Depth            btcusdDepth = BtceApi.GetDepth(BtcePair.btc_usd);
            Ticker           ticker      = BtceApi.GetTicker(BtcePair.btc_usd);
            List <TradeInfo> trades      = BtceApi.GetTrades(BtcePair.btc_usd);

            return(new HuobiMarketSummary
            {
                buys = btcusdDepth.Asks.Select(a => new HuobiDepthItem {
                    amount = a.Amount, price = a.Price
                }).ToArray(),
                sells = btcusdDepth.Bids.Select(a => new HuobiDepthItem {
                    amount = a.Amount, price = a.Price
                }).ToArray(),
                trades = trades.Select(a => new HuobiTransaction
                {
                    amount = a.Amount,
                    price = a.Price,
                    time = a.Date.ToString(),
                    type = a.Type.ToString(),
                }).ToArray(),

                p_low = ticker.Low,
                amount = ticker.Volume,
                p_high = ticker.High,
            });
        }
예제 #3
0
		/// <summary>
		/// 
		/// </summary>
		/// <param name="huobi"></param>
		/// <param name="market"></param>
		/// <param name="renderer"></param>
        public AlgoBase(IMarket huobi, HuobiMarket market, Rendering renderer)
		{
			m_huobi = huobi;
			m_market = market;
			m_lastOpenOrders = m_huobi.GetOpenOrders(m_market);
			m_startInfo = m_huobi.GetAccountInfo();
			m_renderer = renderer;
		}
예제 #4
0
        public override HuobiSimpleResult CancelOrder(HuobiMarket coinType, uint uid)
        {
            CancelOrderAnswer cancelAnswer = _btceApi.CancelOrder((int)uid);

            return(new HuobiSimpleResult {
                result = cancelAnswer.OrderId.ToString()
            });
        }
예제 #5
0
        public override HuobiOrderResult OnBuy(HuobiMarket coinType, decimal price, decimal amountBtc)
        {
            TradeAnswer tradeAnswer = _btceApi.Trade(BtcePair.btc_usd, TradeType.Buy, price, amountBtc);

            return(new HuobiOrderResult {
                id = (uint)tradeAnswer.OrderId, result = tradeAnswer.Received.ToString()
            });
        }
예제 #6
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="huobi"></param>
 /// <param name="market"></param>
 /// <param name="renderer"></param>
 public AlgoBase(IMarket huobi, HuobiMarket market, Rendering renderer)
 {
     m_huobi          = huobi;
     m_market         = market;
     m_lastOpenOrders = m_huobi.GetOpenOrders(m_market);
     m_startInfo      = m_huobi.GetAccountInfo();
     m_renderer       = renderer;
 }
예제 #7
0
        public override HuobiMarketSummary GetMarketSummary(HuobiMarket market)
        {
            var request =
                new SynchronousJsonWebRequest <HuobiMarketSummary>(
                    "http://market.huobi.com/staticmarket/detail_" + market + "_json.js", null, Huobi.kGet, "", 10,
                    Huobi.kRetryCount);

            return(request.Send());
        }
예제 #8
0
        public void AddSubscribeTest()
        {
            var result = HuobiMarket.Init();
            var topic  = string.Format(HuobiMarket.MARKET_KLINE, "etcbtc", "1day");
            var guid   = Guid.NewGuid().ToString();

            HuobiMarket.Subscribe(topic, guid);
            HuobiMarket.OnMessage += (sender, e) =>
            {
                Console.WriteLine("OnMessage:" + e.Message);
            };
            Thread.Sleep(1000 * 15);
            Assert.IsTrue(result);
        }
 public override List<HuobiOrder> GetOpenOrders(HuobiMarket coinType)
 {
     OrderList orderList = _btceApi.GetOrderList();
     if (orderList.List != null)
     {
         return orderList.List.Select(e =>
             new HuobiOrder
             {
                 order_amount = e.Value.Amount,
                 order_price = e.Value.Rate,
                 order_time = e.Value.TimestampCreated,
                 type = e.Value.Type == TradeType.Buy ? HuobiOrderType.buy : HuobiOrderType.sell,
             }).ToList();
     }
     return new List<HuobiOrder>();
 }
예제 #10
0
        public override List <HuobiOrder> GetOpenOrders(HuobiMarket coinType)
        {
            OrderList orderList = _btceApi.GetOrderList();

            if (orderList.List != null)
            {
                return(orderList.List.Select(e =>
                                             new HuobiOrder
                {
                    order_amount = e.Value.Amount,
                    order_price = e.Value.Rate,
                    order_time = e.Value.TimestampCreated,
                    type = e.Value.Type == TradeType.Buy ? HuobiOrderType.buy : HuobiOrderType.sell,
                }).ToList());
            }
            return(new List <HuobiOrder>());
        }
예제 #11
0
        public override HuobiMarketSummary GetMarketSummary(HuobiMarket market)
        {
            Depth btcusdDepth = BtceApi.GetDepth(BtcePair.btc_usd);
            Ticker ticker = BtceApi.GetTicker(BtcePair.btc_usd);
            List<TradeInfo> trades = BtceApi.GetTrades(BtcePair.btc_usd);

            return new HuobiMarketSummary
            {
                buys = btcusdDepth.Asks.Select(a => new HuobiDepthItem { amount = a.Amount, price = a.Price }).ToArray(),
                sells = btcusdDepth.Bids.Select(a => new HuobiDepthItem { amount = a.Amount, price = a.Price }).ToArray(),
                trades = trades.Select(a => new HuobiTransaction
                {
                    amount = a.Amount, 
                    price = a.Price,
                    time = a.Date.ToString(),
                    type = a.Type.ToString(),
                }).ToArray(),
                
                p_low = ticker.Low,
                amount = ticker.Volume,
                p_high = ticker.High,
            };
        }
예제 #12
0
 public override HuobiSimpleResult CancelOrder(HuobiMarket coinType, uint uid)
 {
     CancelOrderAnswer cancelAnswer = _btceApi.CancelOrder((int)uid);
     return new HuobiSimpleResult {result = cancelAnswer.OrderId.ToString()};
 }
예제 #13
0
 public override HuobiSimpleResult CancelOrder(HuobiMarket coinType, uint uid)
 {
     return(Send <HuobiSimpleResult>("cancel_order", "coin_type", (int)coinType, "id", uid));
 }
예제 #14
0
 public abstract HuobiOrderResult OnSell(HuobiMarket coinType, decimal price, decimal amountBtc);
예제 #15
0
 /// <summary>
 /// </summary>
 /// <param name="coinType"></param>
 /// <param name="uid"></param>
 /// <returns></returns>
 public abstract HuobiSimpleResult CancelOrder(HuobiMarket coinType, uint uid);
예제 #16
0
 /// <summary>
 /// </summary>
 /// <param name="market"></param>
 /// <returns></returns>
 public abstract HuobiMarketSummary GetMarketSummary(HuobiMarket market);
예제 #17
0
 /// <summary>
 /// </summary>
 /// <param name="huobi"></param>
 /// <param name="market"></param>
 /// <param name="renderer"></param>
 public NaiveMarketMaker(IMarket huobi, HuobiMarket market, Rendering renderer) : base(huobi, market, renderer)
 {
 }
예제 #18
0
 /// <summary>
 /// </summary>
 /// <param name="coinType"></param>
 /// <returns></returns>
 public abstract List <HuobiOrder> GetOpenOrders(HuobiMarket coinType);
예제 #19
0
 public override HuobiOrderResult OnSell(HuobiMarket coinType, decimal price, decimal amountBtc)
 {
     return(Send <HuobiOrderResult>("sell", "coin_type", (int)coinType, "price", price, "amount", amountBtc));
 }
예제 #20
0
        public override HuobiOrderResult OnBuy(HuobiMarket coinType, decimal price, decimal amountBtc)
        {
            TradeAnswer tradeAnswer = _btceApi.Trade(BtcePair.btc_usd, TradeType.Buy, price, amountBtc);

            return new HuobiOrderResult {id = (uint) tradeAnswer.OrderId, result = tradeAnswer.Received.ToString()};
        }
예제 #21
0
        public void InitTest()
        {
            var result = HuobiMarket.Init();

            Assert.IsTrue(result);
        }
예제 #22
0
 /// <summary>
 /// </summary>
 /// <param name="coinType"></param>
 /// <param name="price"></param>
 /// <param name="amountBtc"></param>
 /// <returns></returns>
 public HuobiOrderResult Buy(HuobiMarket coinType, decimal price, decimal amountBtc)
 {
     ValidatePrice(price);
     ValidateAmount(amountBtc);
     return(OnBuy(coinType, price, amountBtc));
 }
 /// <summary>
 /// </summary>
 /// <param name="huobi"></param>
 /// <param name="market"></param>
 /// <param name="renderer"></param>
 public NaiveMarketMaker(IMarket huobi, HuobiMarket market, Rendering renderer) : base(huobi, market, renderer)
 {
 }
예제 #24
0
 /// <summary>
 /// </summary>
 /// <param name="coinType"></param>
 /// <returns></returns>
 public override List <HuobiOrder> GetOpenOrders(HuobiMarket coinType)
 {
     return(Send <List <HuobiOrder> >("get_orders", "coin_type", (int)coinType));
 }