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);
            }
        }
Exemple #2
0
        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");
                }
            }
        }
Exemple #3
0
 public bool PositionChange(PositionChangeDetail change, bool isRecovered)
 {
     return(false);
 }