示例#1
0
        private void SendVolumeUpdate(TradedEventArgs e, OrderBook book)
        {
            var volumeUpdate = new IncrementalUpdate(MatchEventIndicator.LastVolume, e.Time);

            volumeUpdate.MDEntries.Add(MarketDataUpdateDataBlock.VolumeNew(e.Security,
                                                                           incrementalSeqNums[e.Security],
                                                                           book.SessionVolume));
            incrementalSeqNums[e.Security]++;
            incrementalServer.Send(volumeUpdate);
        }
示例#2
0
        private void HandleSnapshotTimerInterval(object state)
        {
            return;

            if (snapshotSecurityIterator == 0)
            {
                // take snapshot of all books
                // i.e. generate all kinds of messages
                // x Book Quotes – Bids and Offers
                // x Implied Book Quotes – Bids and Offers
                // Last Trade
                // Opening Prices
                // Session High and Low Trade Prices
                // Session High Bid and Session Low Offer
                // Fixing Price
                // Settlement Price
                // Cleared Trade Volume
                // Open Interest
                // Electronic Volume
                // Threshold Limits

                //SendRangeUpdate(e, book);
                //SendOpenPriceUpdate(e, book);
                //SendClearedVolumeUpdate(e, book);
                //SendOpenInterestUpdate();
                //SendSettlementUpdate(e, book);

                snapshotTime = DateTime.UtcNow;
            }

            var sec = securities[snapshotSecurityIterator];

            var update = new IncrementalUpdate(MatchEventIndicator.LastMessage, snapshotTime);

            update.MDEntries.Add(MarketDataUpdateDataBlock.VolumeNew(sec, incrementalSeqNums[sec], 0));
            incrementalSeqNums[sec]++;
            snapshotServer.Send(update);

            // move iterator on
            snapshotSecurityIterator++;
            if (snapshotSecurityIterator >= securities.Count)
            {
                snapshotSecurityIterator = 0;
            }
        }