public TesterHandyUi() { InitializeComponent(); ServerMaster.SetHostTable(HostPositionOnBoard, HostOrdersOnBoard); ServerMaster.CreateServer(ServerType.Tester, false); ServerMaster.GetServers(); _strategyKeeper = new OsTraderMaster(GridChart, ChartHostPanel, HostGlass, HostOpenPosition, HostClosePosition, HostAllPosition, HostBotLog, HostBotLogPrime, RectChart, HostAllert, TabControlBotsName, TabControlBotTab, TextBoxPrice, GridChartControlPanel, StartProgram.IsTester); LocationChanged += TesterHandyUi_LocationChanged; LabelOsa.Content = "V_" + System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; cbItems = new ObservableCollection <ComboBoxItem>(); cbItems2 = new ObservableCollection <ComboBoxItem>(); cbItems3 = new ObservableCollection <ComboBoxItem>(); SetComboBoxItemByTab(0); TabControlBotsName.SelectionChanged += TabControlBotsName_SelectionChanged; TabControlBotsName.SizeChanged += TabControlBotsName_SizeChanged; Closing += TesterHandyUi_Closing; Local(); TabControlMd.SelectedIndex = 2; _gridClOrder = DataGridFactory.GetDataGridOrder(); HostOrdersClosed.Child = _gridClOrder; _gridClOrder.Click += _gridClOrder_Click; }
/// <summary> /// перерисовать таблицу источников /// </summary> private void RePaintSourceGrid() { if (_gridSources.InvokeRequired) { _gridSources.Invoke(new Action(RePaintSourceGrid)); return; } _gridSources.Rows.Clear(); List <ServerType> servers = ServerMaster.ServersTypes; List <IServer> serversCreate = ServerMaster.GetServers(); if (serversCreate == null) { serversCreate = new List <IServer>(); } for (int i = 0; i < servers.Count; i++) { DataGridViewRow row1 = new DataGridViewRow(); row1.Cells.Add(new DataGridViewTextBoxCell()); row1.Cells[0].Value = servers[i]; row1.Cells.Add(new DataGridViewTextBoxCell()); IServer server = serversCreate.Find(s => s.ServerType == servers[i]); if (server == null) { row1.Cells[1].Value = "Disabled"; } else if (server != null && server.ServerStatus == ServerConnectStatus.Connect) { row1.Cells[1].Value = "Connect"; DataGridViewCellStyle style = new DataGridViewCellStyle(); style.BackColor = Color.MediumSeaGreen; style.SelectionBackColor = Color.Green; style.ForeColor = Color.Black; style.SelectionForeColor = Color.Black; row1.Cells[1].Style = style; row1.Cells[0].Style = style; } else { row1.Cells[1].Value = "Disconnect"; DataGridViewCellStyle style = new DataGridViewCellStyle(); style.BackColor = Color.Coral; style.SelectionBackColor = Color.Chocolate; style.ForeColor = Color.Black; style.SelectionForeColor = Color.Black; row1.Cells[1].Style = style; row1.Cells[0].Style = style; } _gridSources.Rows.Add(row1); } _gridSources[1, 0].Selected = true; // Выбрать невидимую строку, чтобы убрать выделение по умолчанию с грида. _gridSources.ClearSelection(); }
/// <summary> /// событие двойного клика на таблицу источников /// </summary> void _gridSources_DoubleClick(object sender, EventArgs e) { if (_gridSources.CurrentCell.RowIndex <= -1) { return; } ServerType type; Enum.TryParse(_gridSources.Rows[_gridSources.CurrentCell.RowIndex].Cells[0].Value.ToString(), out type); if (ServerMaster.GetServers() == null) { ServerMaster.CreateServer(type, false); } IServer server = ServerMaster.GetServers().Find(s => s.ServerType == type); if (server == null) { ServerMaster.CreateServer(type, false); server = ServerMaster.GetServers().Find(s => s.ServerType == type); } server.ShowDialog(); }
// Disable/Enable Interface / Отключение/включение интерфейса /// <summary> /// stop drawing the interface /// остановить прорисовку интерфейса /// </summary> public void StopPaint() { try { if (!_tabBotNames.Dispatcher.CheckAccess()) { _tabBotNames.Dispatcher.Invoke(StrategyKeeper_TestingFastEvent); return; } if (_activPanel != null) { _activPanel.StopPaint(); } _fastRegimeOn = true; ServerMaster.StopPaint(); _globalController.StopPaint(); _tabBotNames.IsEnabled = false; _log.StopPaint(); } catch (Exception error) { SendNewLogMessage(error.ToString(), LogMessageType.Error); } }
/// <summary> /// enable interface drawing /// включить прорисовку интерфейса /// </summary> public void StartPaint() { try { if (!_tabBotNames.Dispatcher.CheckAccess()) { _tabBotNames.Dispatcher.Invoke(StrategyKeeper_TestingEndEvent); return; } _tabBotNames.IsEnabled = true; if (_fastRegimeOn) { _globalController.StartPaint(); if (_activPanel != null) { _activPanel.StartPaint(_hostChart, _hostGlass, _hostOpenDeals, _hostCloseDeals, _hostboxLog, _rectangleAroundChart, _hostAlerts, _tabBotTab, _textBoxLimitPrice, _gridChartControlPanel); } _fastRegimeOn = false; ServerMaster.StartPaint(); _log.StartPaint(_hostLogPrime); } } catch (Exception error) { SendNewLogMessage(error.ToString(), LogMessageType.Error); } }
/// <summary> /// user changed server type to connect /// пользователь изменил тип сервера для подключения /// </summary> void ComboBoxTypeServer_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) { try { List <IServer> serversAll = ServerMaster.GetServers(); IServer server = serversAll.Find(server1 => server1.ServerType == _selectedType); if (server != null) { server.SecuritiesChangeEvent -= server_SecuritiesCharngeEvent; server.PortfoliosChangeEvent -= server_PortfoliosChangeEvent; } Enum.TryParse(ComboBoxTypeServer.SelectedItem.ToString(), true, out _selectedType); IServer server2 = serversAll.Find(server1 => server1.ServerType == _selectedType); if (server2 != null) { server2.SecuritiesChangeEvent += server_SecuritiesCharngeEvent; server2.PortfoliosChangeEvent += server_PortfoliosChangeEvent; } LoadPortfolioOnBox(); LoadClassOnBox(); LoadSecurityOnBox(); } catch (Exception error) { SendNewLogMessage(error.ToString(), LogMessageType.Error); } }
/// <summary> /// from the tester came the signal that everything should be cleaned /// из тестера пришёл сигнал что надо всё зачистить /// </summary> void StrategyKeeper_TestingStartEvent() { try { if (_activPanel != null) { _activPanel.StartPaint(_hostChart, _hostGlass, _hostOpenDeals, _hostCloseDeals, _hostboxLog, _rectangleAroundChart, _hostAlerts, _tabBotTab, _textBoxLimitPrice, _gridChartControlPanel); } ReloadRiskJournals(); _fastRegimeOn = false; if (_panelsArray != null) { for (int i = 0; i < _panelsArray.Count; i++) { _panelsArray[i].Clear(); } } if (_panelsArray != null) { ((TesterServer)ServerMaster.GetServers()[0]).SynhSecurities(_panelsArray.ToList()); } } catch (Exception error) { SendNewLogMessage(error.ToString(), LogMessageType.Error); } }
/// <summary> /// перерисовать таблицу источников /// </summary> private void RePaintSourceGrid() { if (_gridSources.InvokeRequired) { _gridSources.Invoke(new Action(RePaintSourceGrid)); return; } _gridSources.Rows.Clear(); List <ServerType> servers = new ServerType[] { ServerType.Finam, ServerType.QuikDde, ServerType.QuikLua, ServerType.SmartCom, ServerType.Plaza, ServerType.Oanda, ServerType.BitMex, ServerType.Kraken, ServerType.Binance, ServerType.BitStamp, ServerType.NinjaTrader }.ToList(); List <IServer> serversCreate = ServerMaster.GetServers(); if (serversCreate == null) { serversCreate = new List <IServer>(); } for (int i = 0; i < servers.Count; i++) { DataGridViewRow row1 = new DataGridViewRow(); row1.Cells.Add(new DataGridViewTextBoxCell()); row1.Cells[0].Value = servers[i]; row1.Cells.Add(new DataGridViewTextBoxCell()); IServer server = serversCreate.Find(s => s.ServerType == servers[i]); if (server == null) { row1.Cells[1].Value = "Disabled"; } else if (server != null && server.ServerStatus == ServerConnectStatus.Connect) { row1.Cells[1].Value = "Connect"; DataGridViewCellStyle style = new DataGridViewCellStyle(); style.BackColor = Color.DarkSeaGreen; style.SelectionBackColor = Color.SeaGreen; row1.Cells[1].Style = style; row1.Cells[0].Style = style; } else { row1.Cells[1].Value = "Disconnect"; DataGridViewCellStyle style = new DataGridViewCellStyle(); style.BackColor = Color.FloralWhite; style.SelectionBackColor = Color.DarkSalmon; row1.Cells[1].Style = style; row1.Cells[0].Style = style; } _gridSources.Rows.Add(row1); } _gridSources[1, 0].Selected = true; // Выбрать невидимую строку, чтобы убрать выделение по умолчанию с грида. _gridSources.ClearSelection(); }
/// <summary> /// перерисовать таблицу источников /// </summary> private void RePaintSourceGrid() { if (_gridSources.InvokeRequired) { _gridSources.Invoke(new Action(RePaintSourceGrid)); return; } _gridSources.Rows.Clear(); List <IServer> servers = ServerMaster.GetServers(); for (int i = 0; i < servers.Count; i++) { DataGridViewRow row1 = new DataGridViewRow(); row1.Cells.Add(new DataGridViewTextBoxCell()); row1.Cells[0].Value = servers[i].ServerType; row1.Cells.Add(new DataGridViewTextBoxCell()); row1.Cells[1].Value = servers[i].ServerStatus; if (servers[i].ServerStatus == ServerConnectStatus.Connect) { DataGridViewCellStyle style = new DataGridViewCellStyle(); style.BackColor = Color.DarkSeaGreen; style.SelectionBackColor = Color.SeaGreen; row1.Cells[1].Style = style; row1.Cells[0].Style = style; } _gridSources.Rows.Add(row1); } _gridSources[1, 0].Selected = true; // Выбрать невидимую строку, чтобы убрать выделение по умолчанию с грида. _gridSources.ClearSelection(); }
public RobotUiLight() { InitializeComponent(); ServerMaster.SetHostTable(HostPositionOnBoard, HostOrdersOnBoard); ServerMaster.GetServers(); _strategyKeeper = new OsTraderMaster(null, null, null, null, null, HostAllPosition, null, HostBotLogPrime, null, null, null, null, null, null, StartProgram.IsOsTrader); LabelOsa.Content = "V_" + System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; Closing += TesterUi_Closing; Local(); BotTabsPainter painter = new BotTabsPainter(_strategyKeeper, BotsHost); ServerMasterPainter painterServer = new ServerMasterPainter(HostServers, HostServerLog, CheckBoxServerAutoOpen); Closing += delegate(object sender, CancelEventArgs args) { painterServer.Dispose(); painter = null; }; }
/// <summary> /// upload data from storage to form /// выгрузить данные из хранилища на форму /// </summary> private void LoadSecurityOnBox() { try { List <IServer> serversAll = ServerMaster.GetServers(); IServer server = serversAll.Find(server1 => server1.ServerType == _selectedType); if (server == null) { return; } // clear all // стираем всё ComboBoxSecurities.Items.Clear(); // download available instruments // грузим инструменты доступные для скачивания var securities = server.Securities; if (securities != null) { for (int i = 0; i < securities.Count; i++) { if (securities[i] == null) { continue; } string classSec = securities[i].NameClass; if (ComboBoxClass.SelectedItem != null && ComboBoxClass.SelectedItem.Equals(classSec)) { ComboBoxSecurities.Items.Add(securities[i].Name); ComboBoxSecurities.SelectedItem = securities[i].Name; } } } // download already running instruments // грузим уже запущенные инструменты string paper = _connectorBot.NamePaper; if (paper != null) { ComboBoxSecurities.Text = paper; ComboBoxSecurities.SelectedItem = paper; if (ComboBoxSecurities.Text == null) { ComboBoxSecurities.Items.Add(_connectorBot.NamePaper); ComboBoxSecurities.Text = _connectorBot.NamePaper; } } } catch (Exception error) { SendNewLogMessage(error.ToString(), LogMessageType.Error); } }
/// <summary> /// событие двойного клика на таблицу источников /// </summary> void _gridSources_DoubleClick(object sender, EventArgs e) { if (_gridSources.CurrentCell.RowIndex <= -1) { return; } ServerMaster.GetServers()[_gridSources.CurrentCell.RowIndex].ShowDialog(); }
/// <summary> /// создать менеджера роботов /// </summary> /// <param name="hostChart">область для чарта</param> /// <param name="hostGlass">область для стакана</param> /// <param name="hostOpenDeals">область для таблицы открытых сделок</param> /// <param name="hostCloseDeals">область для таблицы закрытых сделок</param> /// <param name="hostAllDeals">область всех сделок</param> /// <param name="hostLogBot">область для бот лога</param> /// <param name="hostLogPrime">область для прайм лога</param> /// <param name="rectangleAroundChart">квадрат за чартом</param> /// <param name="hostAlerts">область для алертов</param> /// <param name="tabPanel">панель с роботами</param> /// <param name="tabBotTab">панель робота с вкладками инструментов</param> /// <param name="textBoxLimitPrice">текстБокс с ценой лимитника при вводе заявки</param> /// <param name="gridChartControlPanel">грид для панели управления чартом</param> public OsTraderMaster(WindowsFormsHost hostChart, WindowsFormsHost hostGlass, WindowsFormsHost hostOpenDeals, WindowsFormsHost hostCloseDeals, WindowsFormsHost hostAllDeals, WindowsFormsHost hostLogBot, WindowsFormsHost hostLogPrime, Rectangle rectangleAroundChart, WindowsFormsHost hostAlerts, TabControl tabPanel, TabControl tabBotTab, TextBox textBoxLimitPrice, Grid gridChartControlPanel) { NumberGen.GetNumberOrder(); if (ServerMaster.StartProgram == ServerStartProgramm.IsTester) { _typeWorkKeeper = ConnectorWorkType.Tester; ((TesterServer)ServerMaster.GetServers()[0]).TestingStartEvent += StrategyKeeper_TestingStartEvent; ((TesterServer)ServerMaster.GetServers()[0]).TestingFastEvent += StrategyKeeper_TestingFastEvent; ((TesterServer)ServerMaster.GetServers()[0]).TestingEndEvent += StrategyKeeper_TestingEndEvent; } if (ServerMaster.StartProgram != ServerStartProgramm.IsTester) { ServerMaster.Activate(); } ServerMaster.LogMessageEvent += SendNewLogMessage; _tabBotTab = tabBotTab; if (_tabBotTab.Items != null) { _tabBotTab.Items.Clear(); } _textBoxLimitPrice = textBoxLimitPrice; _hostChart = hostChart; _hostGlass = hostGlass; _hostOpenDeals = hostOpenDeals; _hostCloseDeals = hostCloseDeals; _hostAllDeals = hostAllDeals; _hostboxLog = hostLogBot; _rectangleAroundChart = rectangleAroundChart; _hostAlerts = hostAlerts; _gridChartControlPanel = gridChartControlPanel; _tabBotNames = tabPanel; _tabBotNames.Items.Clear(); _riskManager = new RiskManager.RiskManager("GlobalRiskManager"); _riskManager.RiskManagerAlarmEvent += _riskManager_RiskManagerAlarmEvent; _riskManager.LogMessageEvent += SendNewLogMessage; _globalController = new GlobalPosition(_hostAllDeals); _globalController.LogMessageEvent += SendNewLogMessage; _log = new Log("Prime"); _log.StartPaint(hostLogPrime); _log.Listen(this); _hostLogPrime = hostLogPrime; SendNewLogMessage("Запуск OsTraderMaster. Включение программы.", LogMessageType.User); Load(); _tabBotNames.SelectionChanged += _tabBotControl_SelectionChanged; ReloadRiskJournals(); _globalController.StartPaint(); }
private void TabControlPrime_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) { int index = TabControlPrime.SelectedIndex; if (index == 4) { ServerMaster.ShowDialog(true); TabControlPrime.SelectedIndex = 0; } }
public MainWindow() { Process ps = Process.GetCurrentProcess(); ps.PriorityClass = ProcessPriorityClass.RealTime; Thread.CurrentThread.CurrentCulture = new CultureInfo("ru-RU"); InitializeComponent(); AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; try { int winVersion = Environment.OSVersion.Version.Major; if (winVersion < 6) { MessageBox.Show(OsLocalization.MainWindow.Message1); Close(); } if (!CheckDotNetVersion()) { Close(); } if (!CheckWorkWithDirectory()) { MessageBox.Show(OsLocalization.MainWindow.Message2); Close(); } } catch (Exception) { MessageBox.Show(OsLocalization.MainWindow.Message3); Close(); } // передаём в менеджер сообщений объект центарльного потока AlertMessageManager.TextBoxFromStaThread = new TextBox(); ProccesIsWorked = true; _window = this; ServerMaster.ActivateLogging(); Thread worker = new Thread(ThreadAreaGreeting); worker.Name = "MainWindowGreetingThread"; worker.IsBackground = true; worker.Start(); ChangeText(); OsLocalization.LocalizationTypeChangeEvent += ChangeText; }
void RobotHandyUi_Closing(object sender, System.ComponentModel.CancelEventArgs e) { AcceptDialogUi ui = new AcceptDialogUi(OsLocalization.Trader.Label48); ui.ShowDialog(); if (ui.UserAcceptActioin == false) { e.Cancel = true; } ServerMaster.AbortAll(); }
private void GetTimeFramesInTester() { TesterServer server = (TesterServer)ServerMaster.GetServers()[0]; if (server.TypeTesterData != TesterDataType.Candle) { return; } string lastTf = null; if (ComboBoxTimeFrame.SelectedItem != null) { lastTf = ComboBoxTimeFrame.SelectedItem.ToString(); } ComboBoxTimeFrame.Items.Clear(); List <SecurityTester> securities = server.SecuritiesTester; if (securities == null) { return; } List <string> frames = new List <string>(); for (int i = 0; i < securities.Count; i++) { if (frames.Find(f => f == securities[i].TimeFrame.ToString()) == null) { frames.Add(securities[i].TimeFrame.ToString()); } } for (int i = 0; i < frames.Count; i++) { ComboBoxTimeFrame.Items.Add(frames[i]); } if (lastTf == null) { ComboBoxTimeFrame.SelectedItem = securities[0].TimeFrame.ToString(); } else { TimeFrame oldFrame; Enum.TryParse(lastTf, out oldFrame); ComboBoxTimeFrame.SelectedItem = oldFrame; } }
public MainWindow() { Process ps = Process.GetCurrentProcess(); ps.PriorityClass = ProcessPriorityClass.RealTime; InitializeComponent(); AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; try { int winVersion = Environment.OSVersion.Version.Major; if (winVersion < 6) { MessageBox.Show(OsLocalization.MainWindow.Message1); Close(); } if (!CheckDotNetVersion()) { Close(); } if (!CheckWorkWithDirectory()) { MessageBox.Show(OsLocalization.MainWindow.Message2); Close(); } } catch (Exception) { MessageBox.Show(OsLocalization.MainWindow.Message3); Close(); } AlertMessageManager.TextBoxFromStaThread = new TextBox(); ProccesIsWorked = true; _window = this; ServerMaster.ActivateLogging(); Task task = new Task(ThreadAreaGreeting); task.Start(); ChangeText(); OsLocalization.LocalizationTypeChangeEvent += ChangeText; CommandLineInterfaceProcess(); Task.Run(ClearOptimizerWorkResults); }
void RobotUi_Closing(object sender, System.ComponentModel.CancelEventArgs e) { AcceptDialogUi ui = new AcceptDialogUi("Вы собираетесь закрыть программу. Вы уверены?"); ui.ShowDialog(); if (ui.UserAcceptActioin == false) { e.Cancel = true; return; } ServerMaster.AbortAll(); }
void ServerMaster_ServerCreateEvent() { List <IServer> servers = ServerMaster.GetServers(); for (int i = 0; i < servers.Count; i++) { servers[i].ConnectStatusChangeEvent -= ServerStatusChangeEvent; servers[i].LogMessageEvent -= OsDataMaster_LogMessageEvent; servers[i].ConnectStatusChangeEvent += ServerStatusChangeEvent; servers[i].LogMessageEvent += OsDataMaster_LogMessageEvent; } RePaintSourceGrid(); }
private void SendServers() { var servers = ServerMaster.GetServers(); if (servers == null) { return; } foreach (var server in servers) { string msg = "serverState_" + $"{{\"Server\":\"{server.ServerType.ToString()}\", \"State\":\"{server.ServerStatus}\"}}"; _apiServer.Send(msg); } }
/// <summary> /// place classes in the window /// поместить классы в окно /// </summary> private void LoadClassOnBox() { try { if (!ComboBoxClass.Dispatcher.CheckAccess()) { ComboBoxClass.Dispatcher.Invoke(LoadClassOnBox); return; } List <IServer> serversAll = ServerMaster.GetServers(); IServer server = serversAll.Find(server1 => server1.ServerType == _selectedType); if (server == null) { return; } var securities = server.Securities; ComboBoxClass.Items.Clear(); if (securities == null) { return; } for (int i1 = 0; i1 < securities.Count; i1++) { if (securities[i1] == null) { continue; } string clas = securities[i1].NameClass; if (ComboBoxClass.Items.IndexOf(clas) == -1) { ComboBoxClass.Items.Add(clas); } } if (_connectorBot.Security != null) { ComboBoxClass.SelectedItem = _connectorBot.Security.NameClass; } } catch (Exception error) { SendNewLogMessage(error.ToString(), LogMessageType.Error); } }
/// <summary> /// конструктор /// </summary> /// <param name="hostChart">хост для чарта</param> /// <param name="hostLog">хост для лога</param> /// <param name="hostSource">хост для источников</param> /// <param name="hostSets">хост для сетов</param> /// <param name="comboBoxSecurity">меню выбора бумаг</param> /// <param name="comboBoxTimeFrame">меню выбора таймфрейма</param> /// <param name="rectangle">квадрат для подложки</param> public OsDataMaster(WindowsFormsHost hostChart, WindowsFormsHost hostLog, WindowsFormsHost hostSource, WindowsFormsHost hostSets, System.Windows.Controls.ComboBox comboBoxSecurity, System.Windows.Controls.ComboBox comboBoxTimeFrame, System.Windows.Shapes.Rectangle rectangle) { _hostChart = hostChart; _hostSource = hostSource; _hostSets = hostSets; _comboBoxSecurity = comboBoxSecurity; _comboBoxTimeFrame = comboBoxTimeFrame; _rectangle = rectangle; _log = new Log("OsDataMaster"); _log.StartPaint(hostLog); _log.Listen(this); Load(); CreateSetGrid(); RePaintSetGrid(); try { ServerMaster.CreateServer(ServerType.Finam, false); ServerMaster.CreateServer(ServerType.Quik, false); ServerMaster.CreateServer(ServerType.Plaza, false); ServerMaster.CreateServer(ServerType.SmartCom, false); ServerMaster.CreateServer(ServerType.InteractivBrokers, false); List <IServer> servers = ServerMaster.GetServers(); for (int i = 0; i < servers.Count; i++) { servers[i].ConnectStatusChangeEvent += ServerStatusChangeEvent; servers[i].LogMessageEvent += OsDataMaster_LogMessageEvent; } SendNewLogMessage("Сервера успешно развёрнуты", LogMessageType.System); } catch (Exception) { SendNewLogMessage("Ошибка при создании серверов", LogMessageType.Error); } CreateSourceGrid(); RePaintSourceGrid(); ChangeActivSet(0); }
public RobotUi() { InitializeComponent(); _strategyKeeper = new OsTraderMaster(ChartHostPanel, HostGlass, HostOpenPosition, HostClosePosition, HostAllPosition, HostBotLog, HostBotLogPrime, RectChart, HostAllert, TabControlBotsName, TabControlBotTab, TextBoxPrice, GridChartControlPanel); Closing += RobotUi_Closing; ServerMaster.SetHostTable(HostPositionOnBoard, HostOrdersOnBoard); LocationChanged += RobotUi_LocationChanged; CheckBoxPaintOnOff.IsChecked = true; CheckBoxPaintOnOff.Click += CheckBoxPaintOnOff_Click; LabelOsa.Content = "V_" + System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; TabControlBotsName.SizeChanged += TabControlBotsName_SizeChanged; }
public OsTraderMaster(StartProgram startProgram, WindowsFormsHost hostLogPrime) { NumberGen.GetNumberOrder(startProgram); _startProgram = startProgram; if (_startProgram == StartProgram.IsTester) { _typeWorkKeeper = ConnectorWorkType.Tester; ((TesterServer)ServerMaster.GetServers()[0]).TestingStartEvent += StrategyKeeper_TestingStartEvent; ((TesterServer)ServerMaster.GetServers()[0]).TestingFastEvent += StrategyKeeper_TestingFastEvent; ((TesterServer)ServerMaster.GetServers()[0]).TestingEndEvent += StrategyKeeper_TestingEndEvent; } if (_startProgram != StartProgram.IsTester) { ServerMaster.ActivateAutoConnection(); } ServerMaster.LogMessageEvent += SendNewLogMessage; _riskManager = new RiskManager.RiskManager("GlobalRiskManager", _startProgram); _riskManager.RiskManagerAlarmEvent += _riskManager_RiskManagerAlarmEvent; _riskManager.LogMessageEvent += SendNewLogMessage; _globalController = new GlobalPosition(_hostAllDeals, _startProgram); _globalController.LogMessageEvent += SendNewLogMessage; _log = new Log("Prime", _startProgram); _log.StartPaint(hostLogPrime); _log.Listen(this); _hostLogPrime = hostLogPrime; SendNewLogMessage(OsLocalization.Trader.Label1, LogMessageType.User); Load(); _tabBotNames.SelectionChanged += _tabBotControl_SelectionChanged; ReloadRiskJournals(); _globalController.StartPaint(); Master = this; if (_startProgram == StartProgram.IsOsTrader && PrimeSettingsMaster.AutoStartApi) { ApiMaster = new AdminApiMaster(Master); } }
public TesterUi() { InitializeComponent(); ServerMaster.IsTester = true; ServerMaster.SetHostTable(HostPositionOnBoard, HostOrdersOnBoard); ServerMaster.CreateServer(ServerType.Tester, false); ServerMaster.GetServers(); _strategyKeeper = new OsTraderMaster( ChartHostPanel, HostGlass, HostOpenPosition, HostClosePosition, HostAllPosition, HostBotLog, HostBotLogPrime, RectChart, HostAllert, TabControlBotsName, TabControlBotTab, TextBoxPrice); LocationChanged += TesterUi_LocationChanged; LabelOsa.Content = "V_" + System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; TabControlBotsName.SizeChanged += TabControlBotsName_SizeChanged; }
private void UpdateServerCombobox() { if (ComboBoxServer.Dispatcher.CheckAccess() == false) { ComboBoxServer.Dispatcher.Invoke(UpdateServerCombobox); return; } ComboBoxServer.Items.Clear(); List <IServer> allServers = ServerMaster.GetServers(); for (int i = 0; allServers != null && i < allServers.Count; i++) { ComboBoxServer.Items.Add(allServers[i].ServerType.ToString()); } UpdateBoxes(); }
public TesterUiLight() { InitializeComponent(); ServerMaster.SetHostTable(HostPositionOnBoard, HostOrdersOnBoard); ServerMaster.CreateServer(ServerType.Tester, false); ServerMaster.GetServers(); _strategyKeeper = new OsTraderMaster(null, null, null, null, null, HostAllPosition, null, HostBotLogPrime, null, null, null, null, null, null, StartProgram.IsTester); LabelOsa.Content = "V_" + System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; Closing += TesterUi_Closing; Local(); BotTabsPainter painter = new BotTabsPainter(_strategyKeeper, BotsHost); }
void ServerMaster_ServerCreateEvent(IServer server) { List <IServer> servers = ServerMaster.GetServers(); for (int i = 0; i < servers.Count; i++) { if (servers[i].ServerType == ServerType.Optimizer) { continue; } servers[i].ConnectStatusChangeEvent -= ServerStatusChangeEvent; servers[i].LogMessageEvent -= OsDataMaster_LogMessageEvent; servers[i].ConnectStatusChangeEvent += ServerStatusChangeEvent; servers[i].LogMessageEvent += OsDataMaster_LogMessageEvent; } RePaintSourceGrid(); }
private OptimizerServer CreateNewServer(OptimazerFazeReport report) { // 1. Create a new server for optimization. And one thread respectively // 1. создаём новый сервер для оптимизации. И один поток соответственно OptimizerServer server = ServerMaster.CreateNextOptimizerServer(_master.Storage, _serverNum, _master.StartDepozit); _serverNum++; _servers.Add(server); server.TestingEndEvent += server_TestingEndEvent; server.TypeTesterData = _master.Storage.TypeTesterData; server.TestintProgressChangeEvent += server_TestintProgressChangeEvent; for (int i = 0; _master.TabsSimpleNamesAndTimeFrames != null && i < _master.TabsSimpleNamesAndTimeFrames.Count; i++) { Security secToStart = _master.Storage.Securities.Find(s => s.Name == _master.TabsSimpleNamesAndTimeFrames[i].NameSecurity); server.GetDataToSecurity(secToStart, _master.TabsSimpleNamesAndTimeFrames[i].TimeFrame, report.Faze.TimeStart, report.Faze.TimeEnd); } for (int i = 0; _master.TabsIndexNamesAndTimeFrames != null && i < _master.TabsIndexNamesAndTimeFrames.Count; i++) { List <string> secNames = _master.TabsIndexNamesAndTimeFrames[i].NamesSecurity; for (int i2 = 0; secNames != null && i2 < secNames.Count; i2++) { string curSec = secNames[i2]; Security secToStart = _master.Storage.Securities.Find(s => s.Name == curSec); server.GetDataToSecurity(secToStart, _master.TabsIndexNamesAndTimeFrames[i].TimeFrame, report.Faze.TimeStart, report.Faze.TimeEnd); } } return(server); }