예제 #1
0
 private void StartRoutineCompleted(object sender, RunWorkerCompletedEventArgs e)
 {
     // загрузка роботов завершена - разрешить обработку котировок роботами
     if (onStartupFinished != null)
     {
         onStartupFinished();
     }
     State = RobotFarmState.Started;
     Logger.Info("Портфель роботов: загрузка котировок завершена");
 }
예제 #2
0
 public void Stop()
 {
     State = RobotFarmState.Stopping;
     // ждать завершения processQuoteRoutine
     // ...
     State = RobotFarmState.Stopped;
     foreach (var robot in robots)
     {
         robot.DeInitialize();
     }
     // сохранить настройки роботов, которые, возможно, поменялись
     SaveRobots(robots);
 }
예제 #3
0
        public bool Start(Account accountInfo)
        {
            if (state != RobotFarmState.Stopped)
            {
                return(false);
            }
            if (accountInfo == null)
            {
                return(false);
            }
            robotContext = new TerminalLiveRobotContext(MainForm.serverProxyTrade, accountInfo, () => AccountStatus.Instance.Login,
                                                        () =>
            {
                var chartTickers = MainForm.Instance.GetChartList(false)
                                   .Select(c => new Cortege2 <string, BarSettings>(c.Symbol, c.Timeframe)).Distinct();
                var robotTickers = robots.SelectMany(r => r.Graphics).Distinct();
                return(chartTickers.Union(robotTickers).Distinct().ToList());
            });
            // загрузить роботов
            robots = LoadRobots();
            Logger.InfoFormat("Загружено {0} роботов", robots.Count);
            foreach (var robot in robots)
            {
                robot.Initialize(robotContext, CurrentProtectedContext.Instance);
            }
            if (robots.Count == 0)
            {
                return(false);
            }

            if (MainForm.Instance.ChatEngine != null)
            {
                foreach (Chat.Client.BL.IChatSpamRobot bot in robots.Where(r => r is Chat.Client.BL.IChatSpamRobot))
                {
                    bot.EnterRoom         += MainForm.Instance.ChatEngine.EnterRoom;
                    bot.SendMessageInRoom += MainForm.Instance.ChatEngine.SendMessageInRoom;
                }
            }

            State = RobotFarmState.StartingUp;
            // загрузить историю для роботов
            startRoutine.RunWorkerAsync();
            return(true);
        }
예제 #4
0
        public bool Start(Account accountInfo)
        {
            if (state != RobotFarmState.Stopped)
            {
                return(false);
            }
            if (accountInfo == null)
            {
                return(false);
            }
            robotContext = new TerminalLiveRobotContext(MainForm.serverProxyTrade, accountInfo, () => AccountStatus.Instance.Login);
            // загрузить роботов
            robots = LoadRobots();
            Logger.InfoFormat("Загружено {0} роботов", robots.Count);
            foreach (var robot in robots)
            {
                robot.Initialize(robotContext, CurrentProtectedContext.Instance);
            }
            if (robots.Count == 0)
            {
                return(false);
            }

            if (MainForm.Instance.ChatEngine != null)
            {
                foreach (Chat.Client.BL.IChatSpamRobot bot in robots.Where(r => r is Chat.Client.BL.IChatSpamRobot))
                {
                    bot.EnterRoom         += MainForm.Instance.ChatEngine.EnterRoom;
                    bot.SendMessageInRoom += MainForm.Instance.ChatEngine.SendMessageInRoom;
                }
            }

            State = RobotFarmState.StartingUp;
            // загрузить историю для роботов
            startRoutine.RunWorkerAsync();
            return(true);
        }
예제 #5
0
 private void StartRoutineCompleted(object sender, RunWorkerCompletedEventArgs e)
 {
     // загрузка роботов завершена - разрешить обработку котировок роботами
     if (onStartupFinished != null) onStartupFinished();
     State = RobotFarmState.Started;
     Logger.Info("Портфель роботов: загрузка котировок завершена");
 }
예제 #6
0
 public void Stop()
 {
     State = RobotFarmState.Stopping;
     // ждать завершения processQuoteRoutine
     // ...
     State = RobotFarmState.Stopped;
     foreach (var robot in robots)
         robot.DeInitialize();
     // сохранить настройки роботов, которые, возможно, поменялись
     SaveRobots(robots);
 }
예제 #7
0
        public bool Start(Account accountInfo)
        {
            if (state != RobotFarmState.Stopped) return false;
            if (accountInfo == null) return false;
            robotContext = new TerminalLiveRobotContext(MainForm.serverProxyTrade, accountInfo, () => AccountStatus.Instance.Login);
            // загрузить роботов
            robots = LoadRobots();
            Logger.InfoFormat("Загружено {0} роботов", robots.Count);
            foreach (var robot in robots)
                robot.Initialize(robotContext, CurrentProtectedContext.Instance);
            if (robots.Count == 0) return false;

            if (MainForm.Instance.ChatEngine != null)
                foreach (Chat.Client.BL.IChatSpamRobot bot in robots.Where(r => r is Chat.Client.BL.IChatSpamRobot))
                {
                    bot.EnterRoom += MainForm.Instance.ChatEngine.EnterRoom;
                    bot.SendMessageInRoom += MainForm.Instance.ChatEngine.SendMessageInRoom;
                }

            State = RobotFarmState.StartingUp;
            // загрузить историю для роботов
            startRoutine.RunWorkerAsync();
            return true;
        }