Пример #1
0
        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;
        }
Пример #2
0
        /// <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();
        }
Пример #3
0
        /// <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();
        }
Пример #4
0
        // 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);
            }
        }
Пример #5
0
        /// <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);
            }
        }
Пример #6
0
        /// <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);
            }
        }
Пример #7
0
        /// <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);
            }
        }
Пример #8
0
        /// <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();
        }
Пример #9
0
        /// <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();
        }
Пример #10
0
        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;
            };
        }
Пример #11
0
        /// <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);
            }
        }
Пример #12
0
 /// <summary>
 /// событие двойного клика на таблицу источников
 /// </summary>
 void _gridSources_DoubleClick(object sender, EventArgs e)
 {
     if (_gridSources.CurrentCell.RowIndex <= -1)
     {
         return;
     }
     ServerMaster.GetServers()[_gridSources.CurrentCell.RowIndex].ShowDialog();
 }
Пример #13
0
        /// <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();
        }
Пример #14
0
        private void TabControlPrime_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
        {
            int index = TabControlPrime.SelectedIndex;

            if (index == 4)
            {
                ServerMaster.ShowDialog(true);
                TabControlPrime.SelectedIndex = 0;
            }
        }
Пример #15
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;
        }
Пример #16
0
        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();
        }
Пример #17
0
        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;
            }
        }
Пример #18
0
        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);
        }
Пример #19
0
        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();
        }
Пример #20
0
        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();
        }
Пример #21
0
        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);
            }
        }
Пример #22
0
        /// <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);
            }
        }
Пример #23
0
        /// <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);
        }
Пример #24
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;
        }
Пример #25
0
        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);
            }
        }
Пример #26
0
        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;
        }
Пример #27
0
        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();
        }
Пример #28
0
        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);
        }
Пример #29
0
        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();
        }
Пример #30
0
        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);
        }