コード例 #1
0
        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);
        }
コード例 #2
0
        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));
            }
        }
コード例 #3
0
 public void OnHedgeMessage(L2PackageDto l2Book)
 {
     OnBookMessage(l2Book, BookType.HEDGE);
 }
コード例 #4
0
 public void OnTargetMessage(L2PackageDto l2Book)
 {
     OnBookMessage(l2Book, BookType.TARGET);
 }
コード例 #5
0
 public void OnSourceMessage(L2PackageDto l2Book)
 {
     OnBookMessage(l2Book, BookType.SOURCE);
 }
コード例 #6
0
 public void OnQuoteMessage(L2PackageDto l2Book)
 {
     OnBookMessage(l2Book, BookType.QUOTE);
 }
コード例 #7
0
 public static void PrintSpread(L2PackageDto l2Book)
 {
     Console.WriteLine("spread = {0}", AlgorithmInfo.CalculateSpread(l2Book.Entries));
 }