protected override void OnStart(string[] args)
        {
            try
            {
                RobotCollection.Initialize();
            }
            catch (Exception ex)
            {
                Logger.Error("Ошибка инициализации коллекции роботов", ex);
                throw;
            }

            QuoteStorage.Instance.LoadQuotes(string.Format("{0}\\lastquote.txt", ExecutablePath.ExecPath));
            try
            {
                quoteReceiver = new TcpQuoteReceiver();
            }
            catch (Exception ex)
            {
                Logger.Error("Ошибка получения котировок", ex);
                throw;
            }

            Logger.InfoFormat("Старт сервиса - загрузка настроек");
            BL.RobotFarm.Instance.LoadSettings();
            quoteReceiver.OnQuotesReceived += BL.RobotFarm.Instance.OnQuotesReceived;
            StartWebServer();
        }
Esempio n. 2
0
        /// <summary>
        /// подкачать из БД свечки m1 за указанный период по указанным тикерам
        /// </summary>
        public void Initialize()
        {
            GetTickersToLoad();

            // актуализировать историю свеч m1
            var thread = new Thread(() =>
            {
                AtomCandleStorage.Instance.LoadFromFiles(quoteDir);
                Logger.Info("Старт получения котировок от сервера");
                GetDateRangeOnServer();
                foreach (var ticker in tickersToStore)
                {
                    ActualizeHistoryByTicker(ticker);
                }

                Logger.Info("Старт упаковки котировок в свечи");
                InitCandlePackers();

                Logger.Info("Подписка на получение котировок");
                // подписаться на свежачок
                quoteReceiver = new TcpQuoteReceiver();
                quoteReceiver.OnQuotesReceived += OnQuotesReceived;

                initializationIsCompleted = true;
                Logger.Info("Иницииализация завершена");
            });

            thread.Start();
        }
Esempio n. 3
0
        protected void Application_Start()
        {
            quoteReceiver = new TcpQuoteReceiver();
            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
        }
Esempio n. 4
0
        protected override void OnStart(string[] args)
        {
            // подгрузить метаданные
            DalSpot.Instantiate(DictionaryManager.Instance);
            // инициализация торговой библиотеки
            StartTradeLib();
            // запустить сервера WCF
            StartWcfHosts();
            // подгрузить срез котировок
            QuoteStorage.Instance.LoadQuotes(string.Format("{0}\\lastquote.txt", ExecutablePath.ExecPath));
            // старт монитора ордеров
            AccountCheckStream.Instance.Start();
            // старт сохранения событий по счетам
            UserEventStorage.Instance.Start();

            try
            {
                hostModuleController = new ServiceHost(ModuleStatusController.Instance);
                hostModuleController.Open();
            }
            catch (Exception ex)
            {
                Logger.Error("Ошибка в ModuleController", ex);
            }

            // старт получения живой котиры
            try
            {
                quoteReceiver = new TcpQuoteReceiver();
                quoteReceiver.OnQuotesReceived += OnQuotesReceived;
            }
            catch (Exception ex)
            {
                Logger.Error("Ошибка старта получения живой котировки", ex);
            }
            StartWebServer();
            // стартовать прослушку очереди сообщений от провайдеров
            try
            {
                ProviderQueueReader.Instance.Start();
            }
            catch (Exception ex)
            {
                Logger.Error("Ошибка старта прослушки очереди сообщений от провайдера", ex);
                throw;
            }
            try
            {
                UserEventManager.Instance.Start();
            }
            catch (Exception ex)
            {
                Logger.Error("Ошибка запуска UserEventManager", ex);
            }
            Logger.Info("Сервис запущен");
        }
        protected override void OnStart(string[] args)
        {
            try
            {
                hostServerStatusController = new ServiceHost(ModuleStatusController.Instance);
                hostServerStatusController.Open();
            }
            catch (Exception ex)
            {
                Logger.Error("Ошибка в OnStart для ModuleStatusController", ex);
                throw;
            }

            quoteReceiver = new TcpQuoteReceiver();

            try
            {
                SignalExecutor.Instance.Start();
            }
            catch (Exception ex)
            {
                Logger.Error("Ошибка старта контроллера", ex);
                throw;
            }

            try
            {
                PAMMFeeManager.Instance.Start();
            }
            catch (Exception ex)
            {
                Logger.Error("Ошибка старта PAMM-менеджера", ex);
                throw;
            }

            try
            {
                hostServerStat = new ServiceHost(SignalExecutor.Instance);
                hostServerStat.Open();
            }
            catch (Exception ex)
            {
                Logger.Error("Ошибка старта WCF-хоста", ex);
                throw;
            }
            StartWebServer();
            Logger.Info("Служба TradeSignalExecutor запущена");
        }
Esempio n. 6
0
        public MainForm()
        {
            InitializeComponent();
            SetupDaysOff();

            workerQuote.WorkerSupportsCancellation = true;
            workerQuote.WorkerReportsProgress      = true;
            workerQuote.DoWork          += WorkerQuoteOnDoWork;
            workerQuote.ProgressChanged += (sender, args) =>
            {
                lblWorkerProgress.Text = "прогресс: " + args.ProgressPercentage;
            };
            workerQuote.RunWorkerCompleted += WorkerQuoteOnRunWorkerCompleted;

            receiver = new TcpQuoteReceiver();
            receiver.OnQuotesReceived += (names, quotes) =>
            {
                LiveQuotes.Instance.UpdateQuotes(names, quotes);
            };

            RobotCollection.Initialize();
        }