public void PositionChange(Receiver receiver, SymbolInfo symbol, double signal, IList <LogicalOrder> orders) { int orderCount = orders == null?0:orders.Count; log.Info("Received PositionChange for " + symbol + " at position " + signal + " and " + orderCount + " orders."); if (orders != null) { foreach (var order in orders) { log.Info("Logical Order: " + order); } } LogicalOrderHandler handler = symbolHandlers[symbol.BinaryIdentifier].LogicalOrderHandler; handler.SetDesiredPosition(signal); handler.SetLogicalOrders(orders); client.RequestOpenOrders(); }
private void client_OpenOrderEnd(object sender, EventArgs e) { if (trace) { log.Trace("Open Order End "); } foreach (var kvp in symbolHandlers) { LogicalOrderHandler handler = kvp.Value.LogicalOrderHandler; handler.ClearPhysicalOrders(); } foreach (var kvp in openOrders) { HandleOpenOrder(kvp.Value); } foreach (var kvp in symbolHandlers) { ulong symbolBinaryId = kvp.Key; SymbolHandler symbolHandler = kvp.Value; LogicalOrderHandler orderHandler = symbolHandler.LogicalOrderHandler; orderHandler.SetActualPosition(symbolHandler.Position); orderHandler.PerformCompare(); } }