Esempio n. 1
0
        public StatusUpdate(StatusUpdateType type, Security security, SecurityTradingStatus status, StatusChangeReason reason, SecurityTradingEvent ev)
            : base(MessageType.SecurityStatus)
        {
            MatchEventIndicator = MatchEventIndicator.LastMessage;

            TransactTime = DateTime.UtcNow;
            TradeDate    = DateTime.Today;

            if (type == StatusUpdateType.Security)
            {
                Id = security.Id;
            }
            else if (type == StatusUpdateType.Product)
            {
                Product = security.Product;
            }
            else
            {
                Group = security.Group;
            }

            Status             = status;
            StatusChangeReason = reason;
            Event = ev;
        }
Esempio n. 2
0
 private void HandleSessionChanged(object sender, SecurityTradingStatus e)
 {
     foreach (var book in books)
     {
         book.Value.SetStatus(e);
     }
 }
Esempio n. 3
0
        public void Update(SecurityTradingStatus status)
        {
            // only fire event if we've changed state
            if (status == Current)
            {
                return;
            }

            Current = status;

            Changed?.Invoke(this, Current);
        }
Esempio n. 4
0
        public SnapshotUpdate(Security security, SecurityTradingStatus status)
            : base(MessageType.MarketDataSnapshotFullRefresh)
        {
            LastMsgSeqNumProcessed = 0;
            TotNumReports          = 1;

            SecurityId = security.Id;
            RptSeq     = 0;

            TransactTime = DateTime.UtcNow;
            TradeDate    = DateTime.Today;

            TradingStatus = status;
        }
Esempio n. 5
0
        public void SetStatus(SecurityTradingStatus status)
        {
            if (status == SecurityTradingStatus.Close)
            {
                ExpireAllOrders();
            }
            else if (status == SecurityTradingStatus.Open && Status == SecurityTradingStatus.NewPriceIndication)
            {
                MatchOnOpen();
            }

            Status = status;

            Match();
        }
Esempio n. 6
0
 public void Start()
 {
     Current = SecurityTradingStatus.UnknownInvalid;
     SetNextEvent();
 }
Esempio n. 7
0
 public void Add(DateTime time, SecurityTradingStatus status)
 {
     Events.Add(new TradingSessionEvent(time, status));
 }
Esempio n. 8
0
 public TradingSessionEvent(DateTime time, SecurityTradingStatus status)
 {
     Time   = time;
     Status = status;
 }