コード例 #1
0
ファイル: SrvOrdersExecutor.cs プロジェクト: amigin/Lykee
 public static OrderWrapper Create(LimitOrder order)
 {
     return new OrderWrapper
     {
         Order = order
     };
 }
コード例 #2
0
        public async Task RegisterLinkedLimitOrders(LimitOrder order1, LimitOrder order2)
        {
            await HandleCommonStuff(order1);
            await HandleCommonStuff(order2);

            order2.LinkedLimitOrder = order1.Id;
            order1.LinkedLimitOrder = order2.Id;

            await _ordersRepository.RegisterOrderAsync(order1);
            await _ordersRepository.RegisterOrderAsync(order2);
            await _orderExecuter.Execute();

        }
コード例 #3
0
        private static LimitOrderBookModel ConvertOrderBook(string asset, LimitOrder[] orders)
        {
            var bid = orders.Where(o => o.Action == OrderAction.Buy)
                        .GroupBy(o => o.Price)
                        .Select(
                            o =>
                                new LimitOrderBookItem
                                {
                                    Rate = o.Key,
                                    Volume = o.Sum(i => i.Volume),
                                    Type = BookOrderType.Bid
                                })
                        .ToArray();


            var ask = orders.Where(o => o.Action == OrderAction.Sell)
                .GroupBy(o => o.Price)
                .Select(
                    o =>
                        new LimitOrderBookItem
                        {
                            Rate = o.Key,
                            Volume = o.Sum(i => i.Volume),
                            Type = BookOrderType.Ask
                        })
                .ToArray();

            var items = new List<LimitOrderBookItem>(bid.Length + ask.Length + 1);

            items.AddRange(bid);
            items.AddRange(ask);

            return new LimitOrderBookModel
            {
                Asset = asset,
                Items = items.OrderByDescending(itm => itm.Rate).ToArray()
            };

        }