// ***************************************************************** // **** Event Handlers **** // ***************************************************************** // // // *********************************************************** // **** Filled() **** // *********************************************************** // public void Filled(UV.Lib.Fills.FillEventArgs fillEventArgs) { UVFill fill = fillEventArgs.Fill; if (UpdateAndCheckTotalFillCounts(fill) | PnLCheck()) { // Take the fill and update our counts and PnL, checking both. FlagRiskEvents(); } }
} // SimulateFills() // // // ************************************************* // **** Fill These Orders() **** // ************************************************* private void FillTheseOrders(ref List <Order> ordersToFill) { foreach (Order order in ordersToFill) { if (order.OrderStateConfirmed != OrderState.Submitted) { continue; } // Create the fill UV.Lib.Fills.Fill aFill = new Fill(); aFill.ExchangeTime = m_Market.LocalTime; aFill.LocalTime = aFill.ExchangeTime; aFill.Price = order.PriceConfirmed; aFill.Qty = order.WorkingQtyConfirmed; Log.NewEntry(LogLevel.Major, "OrderFilled: Fill={1} Order={0}.", order, aFill); // Create the fill event UV.Lib.Fills.FillEventArgs fillEvent = new UV.Lib.Fills.FillEventArgs(aFill, order.Id, order.Instrument, true); m_ExecContainer.m_OrderInstruments[order.Instrument].TryProcessFill(fillEvent); } }//FillTheseOrders()