public void SendEvent(Receiver receiver, SymbolInfo symbol, int eventType, object eventDetail) { switch ((EventType)eventType) { case EventType.Connect: Start(receiver); break; case EventType.Disconnect: Stop(receiver); break; case EventType.StartSymbol: StartSymbol(receiver, symbol, eventDetail); break; case EventType.StopSymbol: StopSymbol(receiver, (SymbolInfo)eventDetail); break; case EventType.PositionChange: PositionChangeDetail positionChange = (PositionChangeDetail)eventDetail; PositionChange(receiver, symbol, positionChange.Position, positionChange.Orders); break; case EventType.Terminate: Dispose(); break; default: throw new ApplicationException("Unexpected event type: " + (EventType)eventType); } }
public override void PositionChange(PositionChangeDetail positionChange) { var symbol = positionChange.Symbol; if (debug) { log.Debug("PositionChange " + positionChange); } var algorithm = GetAlgorithm(symbol.BinaryIdentifier); if (algorithm.OrderAlgorithm.PositionChange(positionChange, IsRecovered)) { if (algorithm.OrderAlgorithm.RejectRepeatCounter == 0) { TrySendStartBroker(symbol, "position change sync"); } } }
public bool PositionChange(PositionChangeDetail change, bool isRecovered) { return(false); }