Ejemplo n.º 1
0
        private void AddTimeEventTask(ETradingTimeEventType eventType, int startTimeDelaySec = 0)
        {
            var tradingTimeEvent = new TradingTimeEvent(eventType);

            switch (eventType)
            {
            case ETradingTimeEventType.StartTrading:
                tradingTimeEvent.EventTime = startTimeDelaySec == 0 ? StartTradingTimeLocal : DateTime.Now.AddSeconds(startTimeDelaySec);

                break;

            case ETradingTimeEventType.EndTradingIn60Seconds:
                tradingTimeEvent.EventTime = EndTradingTimeLocal.AddSeconds(-60);
                break;

            case ETradingTimeEventType.EndTradingIn30Seconds:
                tradingTimeEvent.EventTime = EndTradingTimeLocal.AddSeconds(-30);
                break;

            case ETradingTimeEventType.EndTrading:
                tradingTimeEvent.EventTime = EndTradingTimeLocal;
                break;

            default:
                return;
            }
            //Verify task time is logical
            if (DateTime.Now >= tradingTimeEvent.EventTime)
            {
                return;
            }

            AddTradingTimeEvent(tradingTimeEvent);
            Logger.InfoFormat("{0}: Event Registration: ***** {1} ", Symbol, tradingTimeEvent);
        }
Ejemplo n.º 2
0
 private void TradingManager_SendTradingTimeEvent(TradingTimeEvent tradingTimeEvent)
 {
     OnSendTradingTimeEvent(tradingTimeEvent);
     if (tradingTimeEvent.TradingTimeEventType != ETradingTimeEventType.EndTrading)
     {
         return;
     }
 }
Ejemplo n.º 3
0
        private void AddTradingTimeEvent(TradingTimeEvent tradingTimeEvent)
        {
            lock (TradingTimeEventDic)
            {
                if (TradingTimeEventDic.ContainsKey(tradingTimeEvent.TradingTimeEventType))
                {
                    RemoveScheduledTask(tradingTimeEvent.TaskUniqueIdentifier);
                    Logger.InfoFormat("{0}: RemoveScheduledTask: ----- {1}", Symbol,
                                      TradingTimeEventDic[tradingTimeEvent.TradingTimeEventType]);
                }


                tradingTimeEvent.TaskUniqueIdentifier =
                    AddScheduledTask(tradingTimeEvent.EventTime.Subtract(DateTime.Now), () =>
                {
                    Logger.InfoFormat("{0}: Event invocation: !!!!! {1}", Symbol, tradingTimeEvent);
                    SendMessageToAllComponents(tradingTimeEvent);
                });
                TradingTimeEventDic[tradingTimeEvent.TradingTimeEventType] = tradingTimeEvent;
            }
        }
Ejemplo n.º 4
0
        private void TradingManager_SendTradingTimeEvent(TradingTimeEvent tradingTimeEvent)
        {
            var eventType = tradingTimeEvent.TradingTimeEventType;

            switch (eventType)
            {
            case ETradingTimeEventType.StartTrading:
                break;

            case ETradingTimeEventType.EndTradingIn30Seconds:
                break;

            case ETradingTimeEventType.EndTradingIn60Seconds:
                break;

            case ETradingTimeEventType.EndTrading:
                //Don't save if it's not an operational account:
                if (AccountManager.MainAccount == Configurations.Application.MainAccount)
                {
                    DoWorkAfterTradingEnding();
                }
                break;
            }
        }
Ejemplo n.º 5
0
        public virtual void OnSendTradingTimeEvent(TradingTimeEvent tradingTimeEvent)
        {
            Action <TradingTimeEvent> handler = SendTradingTimeEvent;

            handler?.Invoke(tradingTimeEvent);
        }