Exemple #1
0
        public void handleHBEmail(AppTimeEvent timeEvent)
        {
            if (lastHBEmailTime.Equals(AppConstant.INVALID_TIME) || lastHBEmailTime.AddMinutes(AppConstant.HB_EMAIL_ELPASED_TIME) <= timeEvent.eventTime)
            {
                UserPref pref        = stgManager.ParentUI.getUserPref();
                Boolean  isSendEmail = pref.sendEmail;
                Boolean  isPlaySound = pref.playSound;
                if (!isSendEmail)
                {
                    return;
                }
                lastHBEmailTime = Utils.convertToNearestTime(timeEvent.eventTime, lastHBEmailTime, AppConstant.HB_EMAIL_ELPASED_TIME);
                ISendMailManager manager = SendMailManager.getManager();

                List <String[]> summary   = stgManager.getPositionSummary();
                String          emailBody = "";
                foreach (String[] row in summary)
                {
                    String template = "Name:[0], Position=[1], Unrealized PnL=[2], Total PnL=[3]\n";
                    emailBody += template.Replace("[0]", row[0]).Replace("[1]", row[1]).Replace("[2]", row[2]).Replace("[3]", row[3]);
                }

                if (emailBody.Equals(""))
                {
                    emailBody = "[No Content]";
                }

                manager.SendEmail("<AlgoEdge Alert> [HeartBeat] : from " + System.Environment.MachineName + " " + lastHBEmailTime, emailBody);
            }
        }
Exemple #2
0
        public void handleDailyReset(AppTimeEvent timeEvent)
        {
            ConcurrentDictionary <String, String> stgNamesMap = stgManager.getActiveStgNamesMap();

            stgNamesMap.Keys.ToArray();
            IAppEventManager eventManager = stgManager.getAppEventManager();

            foreach (String name in stgNamesMap.Keys)
            {
                eventManager.storeEventQueue[name].Add(new AppDailyResetEvent());
            }
            stgManager.dailyReset();
        }
Exemple #3
0
        public void handleResetRTBRequest(AppTimeEvent timeEvent)
        {
            //Contract contract = stgManager.CurrentContract;
            Contract contract = stgManager.ParentUI.GetMDContract();
            IRealTimeBarsManagerBridge RTBManager = stgManager.ParentUI.getRealTimeBarsManager();

            if (contract == null)
            {
                return;
            }
            if (RTBManager == null)
            {
                return;
            }

            TickerInfo tickerInfo     = stgManager.ParentUI.getTickerInfo();
            String     strStartTime   = String.Format("{0:yyyyMMdd}", timeEvent.eventTime) + "  " + tickerInfo.startTime;
            DateTime   startTime      = DateTime.ParseExact(strStartTime, "yyyyMMdd  HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal);
            DateTime   startTime_from = startTime.AddMinutes(-3);
            DateTime   startTime_to   = startTime.AddMinutes(-2);

            if (timeEvent.eventTime > startTime_from && timeEvent.eventTime < startTime_to && !morningTimeRTBReset)
            {
                log.Info("Morning Reset RTBar Start.");
                resetRTBRequest(RTBManager);
                morningTimeRTBReset = true;
                log.Info("Morning Reset RTBar End.");
                return;
            }

            String   strLunchTime   = String.Format("{0:yyyyMMdd}", timeEvent.eventTime) + "  " + tickerInfo.lunchEndTime;
            DateTime lunchTime      = DateTime.ParseExact(strLunchTime, "yyyyMMdd  HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal);
            DateTime lunchTime_from = lunchTime.AddMinutes(-3);
            DateTime lunchTime_to   = lunchTime.AddMinutes(-2);

            if (timeEvent.eventTime > lunchTime_from && timeEvent.eventTime < lunchTime_to && !lunchTimeRTBReset)
            {
                log.Info("Lunch Reset RTBar Start.");
                resetRTBRequest(RTBManager);
                lunchTimeRTBReset = true;
                log.Info("Lunch Reset RTBar End.");
                return;
            }
        }
Exemple #4
0
        public void putTimeEvents(DateTime time)
        {
            ConcurrentDictionary <String, String> stgNamesMap = stgManager.getActiveStgNamesMap();
            AppTimeEvent timeEvent = new AppTimeEvent();

            timeEvent.eventTime = time;
            stgNamesMap.Keys.ToArray();
            foreach (String name in stgNamesMap.Keys)
            {
                storeEventQueue[name].Add(timeEvent);
            }

            IAppMainteanceManager maintenanceManager = stgManager.getAppMainteanceManager();

            if (maintenanceManager != null)
            {
                maintenanceManager.storeEventQueue.Add(timeEvent);
            }
        }
Exemple #5
0
        public void handleDailyDayEndExport(AppTimeEvent timeEvent)
        {
            TickerInfo tickerInfo = stgManager.ParentUI.getTickerInfo();
            String     strEndTime = String.Format("{0:yyyyMMdd}", timeEvent.eventTime) + "  " + tickerInfo.endTime;
            //String strEndTime = String.Format("{0:yyyyMMdd}", timeEvent.eventTime) + "  " + "16:15:00";
            DateTime endTime      = DateTime.ParseExact(strEndTime, "yyyyMMdd  HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal);
            DateTime endTime_from = endTime.AddMinutes(+2);
            DateTime endTime_to   = endTime.AddMinutes(+3);

            if (timeEvent.eventTime > endTime_from && timeEvent.eventTime < endTime_to && !dailyDayEndExport)
            {
                log.Info("Daily Dayend Export Report Start.");
                //
                stgManager.dailyDayEndExport();
                dailyDayEndExport = true;
                log.Info("Daily Dayend Export Report End.");
                return;
            }
        }
Exemple #6
0
 public void run(Object argObj)
 {
     while (true)
     {
         AppEvent appEvent = storeEventQueue.Take();
         if (appEvent.Type.Equals(AppEventType.TimeEvent))
         {
             AppTimeEvent timeEvent = (AppTimeEvent)appEvent;
             handleDailyAllFlagsReset(timeEvent);
             handleResetRTBRequest(timeEvent);
             handleDailyDayEndExport(timeEvent);
             handleHBEmail(timeEvent);
         }
         if (appEvent.Type.Equals(AppEventType.OrderExecuted))
         {
             AppOrderExecutedEvent exeEvent = (AppOrderExecutedEvent)appEvent;
             handOrderExeEvent(exeEvent);
         }
     }
 }
Exemple #7
0
        public void handleDailyAllFlagsReset(AppTimeEvent timeEvent)
        {
            //DateTime _date = new DateTime(timeEvent.eventTime.Day, timeEvent.eventTime.Month, timeEvent.eventTime.Day, 0, 20,0, DateTimeKind.Local);
            DateTime _date = getResetTime(timeEvent.eventTime);

            if (!dailyAllFlagsInit)
            {
                log.Info("Init Maintenance Flags Daily Reset.");
                resetDailyAllFlag(timeEvent.eventTime);
                log.Info("[handleDailyAllFlagsReset]: Test 1");
                return;
            }
            else if (!CompleteDailyReset.ContainsKey(_date))
            {
                log.Info("Maintenance Flags Daily Reset.");
                resetDailyAllFlag(timeEvent.eventTime);
                handleDailyReset(timeEvent);
                return;
            }
        }