public static SynthOrderBook FromOrderBooks(OrderBook first, OrderBook second, OrderBook third, AssetPair target)
        {
            Debug.Assert(first != null);
            Debug.Assert(first.AssetPair != null);
            Debug.Assert(second != null);
            Debug.Assert(second.AssetPair != null);
            Debug.Assert(third != null);
            Debug.Assert(third.AssetPair != null);
            Debug.Assert(target != null);

            var result = new SynthOrderBook(target, GetOrdered(new List <OrderBook> {
                first, second, third
            }, target));

            return(result);
        }
 public static IReadOnlyList <SynthOrderBook> GetSynthsFromAll(AssetPair target, OrderBook source,
                                                               IReadOnlyList <OrderBook> allOrderBooks)
 {
     return(GetSynthsFromAll(target, new List <OrderBook> {
         source
     }, allOrderBooks));
 }