public void OnBookMessage(L2PackageDto l2Book, BookType bookType) { if (l2Book.Type != L2PackageType.SNAPSHOT_FULL_REFRESH) { return; } AlgoDictionary[bookType] = l2Book; OnMessageHandler bookHandler = bookType == BookType.QUOTE ? QuoteMessageHandler : bookType == BookType.SOURCE ? SourceMessageHandler : bookType == BookType.TARGET ? TargetMessageHandler : HedgeMessageHandler; bookHandler?.Invoke(this); }
public void CompareBooks(L2PackageDto sourceBook, L2PackageDto targetBook) { Debug.WriteLine("Number Source: {0}, Target: {1}", sourceBook.SequenceNumber, targetBook.SequenceNumber); Debug.WriteLine("Count of levels. Source {0}, Target: {1}", sourceBook.Entries.Count, targetBook.Entries.Count); CompareTestValues(sourceBook.Entries.Count, targetBook.Entries.Count, String.Format("Count of levels is not equal. Source {0}, Quotes: {1}", sourceBook.Entries.Count, targetBook.Entries.Count)); foreach (var level in sourceBook.Entries) { var targetLevel = targetBook.Entries.FirstOrDefault(l => l.Side == level.Side && l.Level == level.Level); CompareTestValues(true, targetLevel != null, String.Format("Level {0} doesn't exist for {1}", level.Level, level.Side)); Debug.WriteLine("Side {3} Level {0}. Source {1}; Target: {2}", level.Level, level.Quantity, targetLevel.Quantity, targetLevel.Side); CompareTestValues(true, Util.CompareDouble(targetLevel.Quantity, level.Quantity), String.Format("Qty is not the same at level {0} for {1}. Source {2}; Target: {3}", level.Level, level.Side, level.Quantity, targetLevel.Quantity)); } }
public void OnHedgeMessage(L2PackageDto l2Book) { OnBookMessage(l2Book, BookType.HEDGE); }
public void OnTargetMessage(L2PackageDto l2Book) { OnBookMessage(l2Book, BookType.TARGET); }
public void OnSourceMessage(L2PackageDto l2Book) { OnBookMessage(l2Book, BookType.SOURCE); }
public void OnQuoteMessage(L2PackageDto l2Book) { OnBookMessage(l2Book, BookType.QUOTE); }
public static void PrintSpread(L2PackageDto l2Book) { Console.WriteLine("spread = {0}", AlgorithmInfo.CalculateSpread(l2Book.Entries)); }