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; }
private void HandleSessionChanged(object sender, SecurityTradingStatus e) { foreach (var book in books) { book.Value.SetStatus(e); } }
public void Update(SecurityTradingStatus status) { // only fire event if we've changed state if (status == Current) { return; } Current = status; Changed?.Invoke(this, Current); }
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; }
public void SetStatus(SecurityTradingStatus status) { if (status == SecurityTradingStatus.Close) { ExpireAllOrders(); } else if (status == SecurityTradingStatus.Open && Status == SecurityTradingStatus.NewPriceIndication) { MatchOnOpen(); } Status = status; Match(); }
public void Start() { Current = SecurityTradingStatus.UnknownInvalid; SetNextEvent(); }
public void Add(DateTime time, SecurityTradingStatus status) { Events.Add(new TradingSessionEvent(time, status)); }
public TradingSessionEvent(DateTime time, SecurityTradingStatus status) { Time = time; Status = status; }