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(); }
protected void Application_Start() { quoteReceiver = new TcpQuoteReceiver(); AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); }
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 запущена"); }
public MainForm() { Instance = this; if (AppConfig.GetBooleanParam("SingleInstance", true)) { var prc = Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName); if (prc.Length > 1) { MessageBox.Show(Localizer.GetString("MessageTerminalAlreadyRunning"), Localizer.GetString("TitleWarning")); Process.GetCurrentProcess().Kill(); return; } } // показать окно загрузки SplashScreen.ShowSplash(StartupStage.Started); InitializeComponent(); Localizer.LocalizeControl(this); bookmarkStrip.ImgList = lstGlyph32; SetupMenuImages(); try { MakeFormMdi(); Candlechart.Core.PluginManager.Instance.Initialize(); RobotCollection.Initialize(); ScriptManager.Initialize(); ScriptManager.Instance.scriptListIsUpdated += ActualizeScriptMenu; CheckAppFolders(); Logger.Info("Старт терминала (" + ExecutablePath.ExecPath + ")"); InitializeTooltips(); InitializeToolButtons(ChartToolButtonStorage.Instance.selButtons, panelChartTools); InitializeToolButtons(ChartToolButtonStorage.Instance.selSystemButtons, panelCommonTools); InitializeSeriesSettings(); BtnFlipPanelChartToolsClick(btnFlipPanelCommonTools, null); BookmarkStorage.Instance.BookmarkDeleted += InstanceOnBookmarkDeleted; // шаг 1 завершен - обновить статус SplashScreen.UpdateState(StartupStage.MakeInstrumentalPanels); UserSettings.Instance.LoadProperties(); EventSoundPlayer.Instance.LoadSounds(); robotFarm = new RobotFarm(UpdateTickersCacheForRobots); robotFarm.OnStateChanged += RobotFarmStateChanged; quoteReceiver = new TcpQuoteReceiver(); quoteReceiver.OnQuotesReceived += OnQuotesReceived; quoteReceiver.OnNewsReceived += OnNewsReceived; NewsCache.Instance.ActualizationCompleted += newsCount => AddMessageToStatusPanelSafe(DateTime.Now, string.Format("{0} ({1})", Localizer.GetString("MessageNewsRead"), newsCount)); Contract.Util.BL.QuoteStorage.Instance.LoadQuotes(string.Format("{0}\\lastquote.txt", ExecutablePath.ExecPath)); DalSpot.Instance.SetFavoritesList(UserSettings.Instance.FavoriteTickers.ToArray()); navPanelControl.SetupPages(UserSettings.Instance.NavPanelPages); navPanelControl.closePanelClicked += () => MenuitemNavPaneClick(this, EventArgs.Empty); //AccountStatus.Instance.ConnectionStatusIsUpdated += InstanceOnConnectionStatusIsUpdated; AccountStatus.Instance.ServerConnectionStatus = DalSpot.Instance.ConnectionWasEstablished ? ServerConnectionStatus.Connected : ServerConnectionStatus.NotConnected; // шаг 2 завершен - обновить статус SplashScreen.UpdateState(StartupStage.MakeQuoteStream); ResumeConnectionWithServer(); // запуск чата ChatEngine = new ChatControlBackEnd(); ChatEngine.Start(); SetupChat(); // шаг 3 завершен - обновить статус toolTipStatus.SetToolTip(lblConnectStatus, ""); toolTipStatus.SetToolTip(connectionStatusImage, ""); SplashScreen.UpdateState(StartupStage.MakeServerConnection); AccountStatus.Instance.OnAccountInfoUpdated += OnAccountInfoUpdated; AccountStatus.Instance.OnConnectionAborted += ResumeConnectionWithServer; AccountStatus.Instance.OnAuthenticationFailed += AuthenticationFailed; // вывести список открытых/закрытых за последнее время ордеров AccountStatus.Instance.OnAccountDataFirstReceived += ShowLast24HrOrders; autosaveFolder = AppConfig.GetStringParam("AutosaveFolder", "\\autosave"); autosaveFolder = autosaveFolder.TrimEnd('\\'); if (autosaveFolder.StartsWith("\\")) autosaveFolder = ExecutablePath.ExecPath + autosaveFolder; CrossChartDivergenciesSettingsWindow.GetChartsList += GetChartsList; printDocument.PrintPage += PrintDocumentPrintPage; serverProxyTrade.OnConnectionReestablished += ReviveFactory; SetupDragTargets(); } catch (Exception ex) { Logger.Error("TradeSharp - ошибка инициализации ", ex); Close(); return; } // шаг 4 завершен - обновить статус SplashScreen.UpdateState(StartupStage.FillDictionaries); // запуск процесса-планировщика threadSchedule = new Thread(ScheduleThreadRoutine); threadSchedule.Start(); AppMessageFilter.ApplyDiffString(UserSettings.Instance.HotKeyList); }
/// <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(); }