Пример #1
0
        private void GetTimeFramesInTester()
        {
            if (ComboBoxSecurities.SelectedItem == null)
            {
                return;
            }
            TesterServer server = (TesterServer)ServerMaster.GetServers()[0];

            if (server.TypeTesterData != TesterDataType.Candle)
            {
                return;
            }

            List <SecurityTester> securities = server.SecuritiesTester;

            string name = ComboBoxSecurities.SelectedItem.ToString();

            string lastTf = null;

            if (BoxTimeFrame.SelectedItem != null)
            {
                lastTf = BoxTimeFrame.SelectedItem.ToString();
            }

            BoxTimeFrame.Items.Clear();

            for (int i = 0; i < securities.Count; i++)
            {
                if (name == securities[i].Security.Name)
                {
                    BoxTimeFrame.Items.Add(securities[i].TimeFrame);
                }
            }
            if (lastTf == null)
            {
                BoxTimeFrame.SelectedItem = securities[0].TimeFrame;
            }
            else
            {
                TimeFrame oldFrame;
                Enum.TryParse(lastTf, out oldFrame);

                BoxTimeFrame.SelectedItem = oldFrame;
            }
        }
Пример #2
0
        private void LoadTimeFrameBox()
        {
            ComboBoxTimeFrame.Items.Clear();

            if (_connectorBot.StartProgram == StartProgram.IsTester)
            {
                // Timeframe
                // таймФрейм
                TesterServer server = (TesterServer)ServerMaster.GetServers()[0];
                if (server.TypeTesterData != TesterDataType.Candle)
                {
                    // if we build data on ticks or depths, then any Timeframe can be used
                    // candle manager builds any Timeframe
                    // если строим данные на тиках или стаканах, то можно использовать любой ТФ
                    // менеджер свечей построит любой
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Day);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Hour4);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Hour2);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Hour1);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Min45);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Min30);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Min20);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Min15);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Min10);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Min5);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Min3);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Min2);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Min1);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Sec30);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Sec20);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Sec15);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Sec10);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Sec5);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Sec2);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Sec1);

                    ComboBoxCandleMarketDataType.SelectedItem = CandleMarketDataType.Tick;
                    ComboBoxCandleMarketDataType.IsEnabled    = false;
                }
                else
                {
                    // then if we use ready-made candles, then we need to use only those Timeframe that are
                    // and they are inserted only when we select the security in the method
                    // далее, если используем готовые свечки, то нужно ставить только те ТФ, которые есть
                    // и вставляются они только когда мы выбираем бумагу в методе

                    ComboBoxSecurities.SelectionChanged += ComboBoxSecurities_SelectionChanged;
                    GetTimeFramesInTester();
                    ComboBoxCandleCreateMethodType.SelectedItem = CandleCreateMethodType.Simple;
                    ComboBoxCandleCreateMethodType.IsEnabled    = false;

                    ComboBoxCandleMarketDataType.SelectedItem = CandleMarketDataType.Tick;
                    ComboBoxCandleMarketDataType.IsEnabled    = false;
                }
            }
            else
            {
                ComboBoxTimeFrame.Items.Add(TimeFrame.Day);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Hour4);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Hour2);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Hour1);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Min45);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Min30);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Min20);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Min15);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Min10);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Min5);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Min3);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Min2);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Min1);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Sec30);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Sec20);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Sec15);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Sec10);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Sec5);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Sec2);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Sec1);

                CandleMarketDataType createType = CandleMarketDataType.Tick;
                if (ComboBoxCandleMarketDataType.SelectedItem != null)
                {
                    Enum.TryParse(ComboBoxCandleMarketDataType.SelectedItem.ToString(), true, out createType);
                }
            }

            ComboBoxTimeFrame.SelectedItem = _connectorBot.TimeFrame;

            if (ComboBoxTimeFrame.SelectedItem == null)
            {
                ComboBoxTimeFrame.SelectedItem = TimeFrame.Min1;
            }
        }
Пример #3
0
        private void LoadTimeFrameBox()
        {
            ComboBoxTimeFrame.Items.Clear();

            if (ServerMaster.StartProgram == ServerStartProgramm.IsTester)
            {
                // таймФрейм
                TesterServer server = (TesterServer)ServerMaster.GetServers()[0];
                if (server.TypeTesterData != TesterDataType.Candle)
                {
                    // если строим данные на тиках или стаканах, то можно использовать любой ТФ
                    // менеджер свечей построит любой
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Day);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Hour2);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Hour1);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Min45);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Min30);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Min20);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Min15);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Min10);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Min5);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Min3);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Min2);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Min1);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Sec30);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Sec20);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Sec15);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Sec10);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Sec5);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Sec2);
                    ComboBoxTimeFrame.Items.Add(TimeFrame.Sec1);

                    ComboBoxCandleMarketDataType.SelectedItem = CandleMarketDataType.Tick;
                    ComboBoxCandleMarketDataType.IsEnabled    = false;
                }
                else
                {
                    // далее, если используем готовые свечки, то нужно ставить только те ТФ, которые есть
                    // и вставляются они только когда мы выбираем бумагу в методе

                    ComboBoxSecurities.SelectionChanged += ComboBoxSecurities_SelectionChanged;
                    GetTimeFramesInTester();
                    ComboBoxCandleCreateMethodType.SelectedItem = CandleCreateMethodType.Simple;
                    ComboBoxCandleCreateMethodType.IsEnabled    = false;

                    ComboBoxCandleMarketDataType.SelectedItem = CandleMarketDataType.Tick;
                    ComboBoxCandleMarketDataType.IsEnabled    = false;
                }
            }
            else
            {
                ComboBoxTimeFrame.Items.Add(TimeFrame.Day);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Hour2);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Hour1);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Min45);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Min30);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Min20);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Min15);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Min10);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Min5);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Min3);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Min2);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Min1);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Sec30);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Sec20);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Sec15);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Sec10);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Sec5);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Sec2);
                ComboBoxTimeFrame.Items.Add(TimeFrame.Sec1);

                CandleMarketDataType createType = CandleMarketDataType.Tick;
                if (ComboBoxCandleMarketDataType.SelectedItem != null)
                {
                    Enum.TryParse(ComboBoxCandleMarketDataType.SelectedItem.ToString(), true, out createType);
                }
            }

            ComboBoxTimeFrame.SelectedItem = _connectorBot.TimeFrame;

            if (ComboBoxTimeFrame.SelectedItem == null)
            {
                ComboBoxTimeFrame.SelectedItem = TimeFrame.Min1;
            }
        }
Пример #4
0
        /// <summary>
        /// конструктор
        /// </summary>
        /// <param name="server">сервер</param>
        /// <param name="log">лог</param>
        public TesterServerUi(TesterServer server, Log log)
        {
            InitializeComponent();
            _server             = server;
            LabelStatus.Content = _server.ServerStatus;

            _server.ConnectStatusChangeEvent += _server_ConnectStatusChangeEvent;
            log.StartPaint(Host);

            TextBoxStartDepozit.Text         = _server.StartPortfolio.ToString(new CultureInfo("ru-RU"));
            TextBoxStartDepozit.TextChanged += TextBoxStartDepozit_TextChanged;
            ResizeMode = System.Windows.ResizeMode.NoResize;
            HostSecurities.Visibility      = Visibility.Hidden;
            Host.Visibility                = Visibility.Hidden;
            SliderTo.Visibility            = Visibility.Hidden;
            SliderFrom.Visibility          = Visibility.Hidden;
            TextBoxFrom.Visibility         = Visibility.Hidden;
            TextBoxTo.Visibility           = Visibility.Hidden;
            LabelFrom.Visibility           = Visibility.Hidden;
            LabelTo.Visibility             = Visibility.Hidden;
            TextBoxStartDepozit.Visibility = Visibility.Hidden;
            ComboBoxDataType.Visibility    = Visibility.Hidden;
            ComboBoxSets.Visibility        = Visibility.Hidden;
            Height = 130;
            Width  = 570;

            _server.TestingStartEvent     += _server_TestingStartEvent;
            _server.SecuritiesChangeEvent += _server_SecuritiesChangeEvent;

            CreateGrid();
            PaintGrid();


            TextBoxFrom.TextChanged += TextBoxFrom_TextChanged;
            TextBoxTo.TextChanged   += TextBoxTo_TextChanged;

            TextBoxCommis.Text         = _server.Commiss.ToString(new CultureInfo("ru-RU"));
            TextBoxCommis.TextChanged += TextBoxCommis_TextChanged;

            // прогресс бар

            server.TestingNewSecurityEvent += server_TestingNewSecurityEvent;

            ProgressBar.Maximum = (_server.TimeMax - DateTime.MinValue).TotalMinutes;
            ProgressBar.Minimum = (_server.TimeMin - DateTime.MinValue).TotalMinutes;
            ProgressBar.Value   = (_server.TimeNow - DateTime.MinValue).TotalMinutes;

            barUpdater = new Thread(UpdaterProgressBarThreadArea);
            barUpdater.CurrentCulture = new CultureInfo("ru-RU");
            barUpdater.IsBackground   = true;
            barUpdater.Start();
            Closing += TesterServerUi_Closing;

            // чарт

            CreateChart();

            PaintProfitOnChart();

            Resize();

            _chartActive = true;

            _server.NewCurrentValue += _server_NewCurrentValue;

            List <string> sets = _server.Sets;

            // сеты

            for (int i = 0; sets != null && sets.Count != 0 && i < sets.Count; i++)
            {
                ComboBoxSets.Items.Add(sets[i]);
            }
            if (!string.IsNullOrEmpty(_server.ActiveSet) &&
                _server.ActiveSet.Split('_').Length == 2)
            {
                ComboBoxSets.SelectedItem = _server.ActiveSet.Split('_')[1];
            }

            ComboBoxSets.SelectionChanged += ComboBoxSets_SelectionChanged;

            // данные для тестирования

            ComboBoxDataType.Items.Add(TesterDataType.Candle);
            ComboBoxDataType.Items.Add(TesterDataType.TickAllCandleState);
            ComboBoxDataType.Items.Add(TesterDataType.TickOnlyReadyCandle);
            ComboBoxDataType.Items.Add(TesterDataType.MarketDepthAllCandleState);
            ComboBoxDataType.Items.Add(TesterDataType.MarketDepthOnlyReadyCandle);
            ComboBoxDataType.SelectedItem      = _server.TypeTesterData;
            ComboBoxDataType.SelectionChanged += ComboBoxDataType_SelectionChanged;

            TextBoxDataPath.Text = _server.PathToFolder;
            ComboBoxDataSourseType.Items.Add(TesterSourceDataType.Folder);
            ComboBoxDataSourseType.Items.Add(TesterSourceDataType.Set);
            ComboBoxDataSourseType.SelectedItem      = _server.SourceDataType;
            ComboBoxDataSourseType.SelectionChanged += ComboBoxDataSourseType_SelectionChanged;
        }
Пример #5
0
        /// <summary>
        /// create server
        /// создать сервер
        /// </summary>
        /// <param name="type"> server type / тип сервера </param>
        /// <param name="neadLoadTicks"> shows whether upload ticks from storage. this is need for bots with QUIK or Plaza2 servers / нужно ли подгружать тики из хранилища. Актуально в режиме робота для серверов Квик, Плаза 2 </param>
        public static void CreateServer(ServerType type, bool neadLoadTicks)
        {
            try
            {
                if (_servers == null)
                {
                    _servers = new List <IServer>();
                }

                if (_servers.Find(server => server.ServerType == type) != null)
                {
                    return;
                }

                IServer newServer = null;
                if (type == ServerType.FTX)
                {
                    newServer = new FTXServer();
                }
                if (type == ServerType.HuobiFuturesSwap)
                {
                    newServer = new HuobiFuturesSwapServer();
                }
                if (type == ServerType.HuobiFutures)
                {
                    newServer = new HuobiFuturesServer();
                }
                if (type == ServerType.HuobiSpot)
                {
                    newServer = new HuobiSpotServer();
                }
                if (type == ServerType.MfdWeb)
                {
                    newServer = new MfdServer();
                }
                if (type == ServerType.MoexDataServer)
                {
                    newServer = new MoexDataServer();
                }
                if (type == ServerType.Tinkoff)
                {
                    newServer = new TinkoffServer();
                }
                if (type == ServerType.Hitbtc)
                {
                    newServer = new HitbtcServer();
                }
                if (type == ServerType.GateIo)
                {
                    newServer = new GateIoServer();
                }
                if (type == ServerType.GateIoFutures)
                {
                    newServer = new GateIoFuturesServer();
                }
                if (type == ServerType.Zb)
                {
                    newServer = new ZbServer();
                }
                if (type == ServerType.Exmo)
                {
                    newServer = new ExmoServer();
                }
                if (type == ServerType.Livecoin)
                {
                    newServer = new LivecoinServer();
                }
                if (type == ServerType.BitMax)
                {
                    newServer = new BitMaxServer();
                }
                if (type == ServerType.Transaq)
                {
                    newServer = new TransaqServer();
                }
                if (type == ServerType.Lmax)
                {
                    newServer = new LmaxServer();
                }
                if (type == ServerType.Bitfinex)
                {
                    newServer = new BitfinexServer();
                }
                if (type == ServerType.Binance)
                {
                    newServer = new BinanceServer();
                }
                if (type == ServerType.BinanceFutures)
                {
                    newServer = new BinanceServerFutures();
                }
                if (type == ServerType.NinjaTrader)
                {
                    newServer = new NinjaTraderServer();
                }
                if (type == ServerType.BitStamp)
                {
                    newServer = new BitStampServer();
                }
                if (type == ServerType.Kraken)
                {
                    newServer = new KrakenServer(neadLoadTicks);
                }
                if (type == ServerType.Oanda)
                {
                    newServer = new OandaServer();
                }
                if (type == ServerType.BitMex)
                {
                    newServer = new BitMexServer();
                }
                if (type == ServerType.QuikLua)
                {
                    newServer = new QuikLuaServer();
                }
                if (type == ServerType.QuikDde)
                {
                    newServer = new QuikServer();
                }
                if (type == ServerType.InteractivBrokers)
                {
                    newServer = new InteractivBrokersServer();
                }
                else if (type == ServerType.SmartCom)
                {
                    newServer = new SmartComServer();
                }
                else if (type == ServerType.Plaza)
                {
                    newServer = new PlazaServer();
                }
                else if (type == ServerType.AstsBridge)
                {
                    newServer = new AstsBridgeServer(neadLoadTicks);
                }
                else if (type == ServerType.Tester)
                {
                    newServer = new TesterServer();
                }
                else if (type == ServerType.Finam)
                {
                    newServer = new FinamServer();
                }

                if (newServer == null)
                {
                    return;
                }

                _servers.Add(newServer);

                if (ServerCreateEvent != null)
                {
                    ServerCreateEvent(newServer);
                }

                SendNewLogMessage(OsLocalization.Market.Message3 + _servers[_servers.Count - 1].ServerType, LogMessageType.System);
            }
            catch (Exception error)
            {
                SendNewLogMessage(error.ToString(), LogMessageType.Error);
            }
        }
Пример #6
0
        /// <summary>
        /// создать сервер
        /// </summary>
        /// <param name="type"> тип сервера</param>
        /// <param name="neadLoadTicks">нужно ли подгружать тики из хранилища. Актуально в режиме робота для серверов Квик, Плаза 2</param>
        public static void CreateServer(ServerType type, bool neadLoadTicks)
        {
            try
            {
                if (_servers == null)
                {
                    _servers = new List <IServer>();
                }
                if (type == ServerType.BitStamp)
                {
                    if (_servers.Find(server => server.ServerType == ServerType.BitStamp) != null)
                    {
                        return;
                    }

                    BitStampServer serv = new BitStampServer(neadLoadTicks);
                    _servers.Add(serv);

                    if (ServerCreateEvent != null)
                    {
                        ServerCreateEvent();
                    }
                }
                if (type == ServerType.Kraken)
                {
                    if (_servers.Find(server => server.ServerType == ServerType.Kraken) != null)
                    {
                        return;
                    }

                    KrakenServer serv = new KrakenServer(neadLoadTicks);
                    _servers.Add(serv);

                    if (ServerCreateEvent != null)
                    {
                        ServerCreateEvent();
                    }
                }
                if (type == ServerType.Oanda)
                {
                    if (_servers.Find(server => server.ServerType == ServerType.Oanda) != null)
                    {
                        return;
                    }

                    OandaServer serv = new OandaServer(neadLoadTicks);
                    _servers.Add(serv);

                    if (ServerCreateEvent != null)
                    {
                        ServerCreateEvent();
                    }
                }
                if (type == ServerType.BitMex)
                {
                    if (_servers.Find(server => server.ServerType == ServerType.BitMex) != null)
                    {
                        return;
                    }

                    BitMexServer serv = new BitMexServer(neadLoadTicks);
                    _servers.Add(serv);

                    if (ServerCreateEvent != null)
                    {
                        ServerCreateEvent();
                    }
                }
                if (type == ServerType.QuikLua)
                {
                    if (_servers.Find(server => server.ServerType == ServerType.QuikLua) != null)
                    {
                        return;
                    }
                    QuikLuaServer serv = new QuikLuaServer(neadLoadTicks);
                    _servers.Add(serv);

                    if (ServerCreateEvent != null)
                    {
                        ServerCreateEvent();
                    }
                }

                if (type == ServerType.QuikDde)
                {
                    if (_servers.Find(server => server.ServerType == ServerType.QuikDde) != null)
                    {
                        return;
                    }

                    QuikServer serv = new QuikServer(neadLoadTicks);
                    _servers.Add(serv);

                    if (ServerCreateEvent != null)
                    {
                        ServerCreateEvent();
                    }
                }
                if (type == ServerType.InteractivBrokers)
                {
                    if (_servers.Find(server => server.ServerType == ServerType.InteractivBrokers) != null)
                    {
                        return;
                    }

                    InteractivBrokersServer serv = new InteractivBrokersServer();
                    _servers.Add(serv);

                    if (ServerCreateEvent != null)
                    {
                        ServerCreateEvent();
                    }
                }
                else if (type == ServerType.SmartCom)
                {
                    if (_servers.Find(server => server.ServerType == ServerType.SmartCom) != null)
                    {
                        return;
                    }
                    try
                    {
                        SmartComServer serv = new SmartComServer();
                        _servers.Add(serv);
                    }
                    catch (Exception)
                    {
                        MessageBox.Show(
                            "Произошла ошибка создания сервера СмартКом. Вероятно у Вас не установлена соответствующая программа. SmartCOM_Setup_3.0.146.msi ");
                        return;
                    }

                    if (ServerCreateEvent != null)
                    {
                        ServerCreateEvent();
                    }
                }
                else if (type == ServerType.Plaza)
                {
                    if (_servers.Find(server => server.ServerType == ServerType.Plaza) != null)
                    {
                        return;
                    }
                    try
                    {
                        PlazaServer serv = new PlazaServer(neadLoadTicks);
                        _servers.Add(serv);
                    }
                    catch (Exception)
                    {
                        MessageBox.Show(
                            "Произошла ошибка создания сервера Плаза. Вероятно у Вас не установлено соответствующее программное обеспечение.");
                        return;
                    }

                    if (ServerCreateEvent != null)
                    {
                        ServerCreateEvent();
                    }
                }
                else if (type == ServerType.AstsBridge)
                {
                    if (_servers.Find(server => server.ServerType == ServerType.AstsBridge) != null)
                    {
                        return;
                    }
                    try
                    {
                        AstsBridgeServer serv = new AstsBridgeServer(neadLoadTicks);
                        _servers.Add(serv);
                    }
                    catch (Exception)
                    {
                        MessageBox.Show(
                            "Произошла ошибка создания сервера Плаза. Вероятно у Вас не установлено соответствующее программное обеспечение.");
                        return;
                    }

                    if (ServerCreateEvent != null)
                    {
                        ServerCreateEvent();
                    }
                }
                else if (type == ServerType.Tester)
                {
                    try
                    {
                        TesterServer serv = new TesterServer();
                        _servers.Add(serv);
                    }
                    catch (Exception)
                    {
                        MessageBox.Show(
                            "Произошла ошибка создания тестового сервера.");
                        return;
                    }

                    if (ServerCreateEvent != null)
                    {
                        ServerCreateEvent();
                    }
                }
                else if (type == ServerType.Finam)
                {
                    try
                    {
                        FinamServer serv = new FinamServer();
                        _servers.Add(serv);
                    }
                    catch (Exception)
                    {
                        MessageBox.Show(
                            "Произошла ошибка создания тестового сервера.");
                        return;
                    }

                    if (ServerCreateEvent != null)
                    {
                        ServerCreateEvent();
                    }
                }
            }
            catch (Exception error)
            {
                SendNewLogMessage(error.ToString(), LogMessageType.Error);
            }
        }
Пример #7
0
        /// <summary>
        /// constructor
        /// конструктор
        /// </summary>
        /// <param name="server">server/сервер</param>
        /// <param name="log">log/лог</param>
        public TesterServerUi(TesterServer server, Log log)
        {
            InitializeComponent();
            _server             = server;
            LabelStatus.Content = _server.ServerStatus;

            _server.ConnectStatusChangeEvent += _server_ConnectStatusChangeEvent;
            log.StartPaint(Host);

            TextBoxStartDepozit.Text         = _server.StartPortfolio.ToString(new CultureInfo("ru-RU"));
            TextBoxStartDepozit.TextChanged += TextBoxStartDepozit_TextChanged;

            if (_server.ProfitMarketIsOn == true)
            {
                CheckBoxOnOffMarketPortfolio.IsChecked = true;
            }
            else
            {
                CheckBoxOnOffMarketPortfolio.IsChecked = false;
            }

            ResizeMode = System.Windows.ResizeMode.NoResize;
            HostSecurities.Visibility      = Visibility.Hidden;
            Host.Visibility                = Visibility.Hidden;
            SliderTo.Visibility            = Visibility.Hidden;
            SliderFrom.Visibility          = Visibility.Hidden;
            TextBoxFrom.Visibility         = Visibility.Hidden;
            TextBoxTo.Visibility           = Visibility.Hidden;
            LabelFrom.Visibility           = Visibility.Hidden;
            LabelTo.Visibility             = Visibility.Hidden;
            TextBoxStartDepozit.Visibility = Visibility.Hidden;
            ComboBoxDataType.Visibility    = Visibility.Hidden;
            ComboBoxSets.Visibility        = Visibility.Hidden;
            Height = 130;
            Width  = 570;

            _server.TestingStartEvent     += _server_TestingStartEvent;
            _server.SecuritiesChangeEvent += _server_SecuritiesChangeEvent;

            CreateGrid();
            PaintGrid();


            TextBoxFrom.TextChanged += TextBoxFrom_TextChanged;
            TextBoxTo.TextChanged   += TextBoxTo_TextChanged;

            TextBoxSlipageSimpleOrder.Text         = _server.SlipageToSimpleOrder.ToString(new CultureInfo("ru-RU"));
            TextBoxSlipageSimpleOrder.TextChanged += TextBoxSlipageSimpleOrderTextChanged;

            TextBoxSlipageStop.Text         = _server.SlipageToStopOrder.ToString(new CultureInfo("ru-RU"));
            TextBoxSlipageStop.TextChanged += TextBoxSlipageStop_TextChanged;

            if (_server.SlipageToStopOrder == 0)
            {
                CheckBoxSlipageStopOff.IsChecked = true;
            }
            else
            {
                CheckBoxSlipageStopOn.IsChecked = false;
            }

            if (_server.SlipageToSimpleOrder == 0)
            {
                CheckBoxSlipageLimitOff.IsChecked = true;
            }
            else
            {
                CheckBoxSlipageLimitOn.IsChecked = false;
            }

            if (_server.OrderExecutionType == OrderExecutionType.Touch)
            {
                CheckBoxExecutionOrderTuch.IsChecked = true;
            }
            else if (_server.OrderExecutionType == OrderExecutionType.Intersection)
            {
                CheckBoxExecutionOrderIntersection.IsChecked = true;
            }
            else if (_server.OrderExecutionType == OrderExecutionType.FiftyFifty)
            {
                CheckBoxExecutionOrderFiftyFifty.IsChecked = true;
            }

            // progress bar/прогресс бар

            server.TestingNewSecurityEvent += server_TestingNewSecurityEvent;

            ProgressBar.Maximum = (_server.TimeMax - DateTime.MinValue).TotalMinutes;
            ProgressBar.Minimum = (_server.TimeMin - DateTime.MinValue).TotalMinutes;
            ProgressBar.Value   = (_server.TimeNow - DateTime.MinValue).TotalMinutes;

            barUpdater = new Thread(UpdaterProgressBarThreadArea);
            barUpdater.CurrentCulture = new CultureInfo("ru-RU");
            barUpdater.IsBackground   = true;
            barUpdater.Start();
            Closing += TesterServerUi_Closing;

            // chart/чарт

            CreateChart();

            PaintProfitOnChart();

            Resize();

            _chartActive = true;

            _server.NewCurrentValue += _server_NewCurrentValue;

            List <string> sets = _server.Sets;

            // sets/сеты

            for (int i = 0; sets != null && sets.Count != 0 && i < sets.Count; i++)
            {
                ComboBoxSets.Items.Add(sets[i]);
            }
            if (!string.IsNullOrEmpty(_server.ActiveSet) &&
                _server.ActiveSet.Split('_').Length == 2)
            {
                ComboBoxSets.SelectedItem = _server.ActiveSet.Split('_')[1];
            }

            ComboBoxSets.SelectionChanged += ComboBoxSets_SelectionChanged;

            // data for test/данные для тестирования

            ComboBoxDataType.Items.Add(TesterDataType.Candle);
            ComboBoxDataType.Items.Add(TesterDataType.TickAllCandleState);
            ComboBoxDataType.Items.Add(TesterDataType.TickOnlyReadyCandle);
            ComboBoxDataType.Items.Add(TesterDataType.MarketDepthAllCandleState);
            ComboBoxDataType.Items.Add(TesterDataType.MarketDepthOnlyReadyCandle);
            ComboBoxDataType.SelectedItem      = _server.TypeTesterData;
            ComboBoxDataType.SelectionChanged += ComboBoxDataType_SelectionChanged;

            TextBoxDataPath.Text = _server.PathToFolder;
            ComboBoxDataSourseType.Items.Add(TesterSourceDataType.Folder);
            ComboBoxDataSourseType.Items.Add(TesterSourceDataType.Set);
            ComboBoxDataSourseType.SelectedItem      = _server.SourceDataType;
            ComboBoxDataSourseType.SelectionChanged += ComboBoxDataSourseType_SelectionChanged;

            ButtonSinhronazer.Content = OsLocalization.Market.Button1;
            Title                                      = OsLocalization.Market.TitleTester;
            Label21.Content                            = OsLocalization.Market.Label21;
            ButtonStartTest.Content                    = OsLocalization.Market.Button2;
            Label29.Header                             = OsLocalization.Market.Label29;
            Label30.Header                             = OsLocalization.Market.Label30;
            Label31.Header                             = OsLocalization.Market.Label31;
            Label23.Header                             = OsLocalization.Market.Label23;
            Label24.Content                            = OsLocalization.Market.Label24;
            Label25.Content                            = OsLocalization.Market.Label25;
            LabelFrom.Content                          = OsLocalization.Market.Label26;
            LabelTo.Content                            = OsLocalization.Market.Label27;
            Label28.Content                            = OsLocalization.Market.Label28;
            ButtonSetDataFromPath.Content              = OsLocalization.Market.ButtonSetFolder;
            Label32.Content                            = OsLocalization.Market.Label32;
            Label33.Content                            = OsLocalization.Market.Label33;
            Label34.Content                            = OsLocalization.Market.Label34;
            CheckBoxSlipageLimitOff.Content            = OsLocalization.Market.Label35;
            CheckBoxSlipageStopOff.Content             = OsLocalization.Market.Label35;
            CheckBoxSlipageLimitOn.Content             = OsLocalization.Market.Label36;
            CheckBoxSlipageStopOn.Content              = OsLocalization.Market.Label36;
            CheckBoxExecutionOrderIntersection.Content = OsLocalization.Market.Label37;
            CheckBoxExecutionOrderTuch.Content         = OsLocalization.Market.Label38;
            CheckBoxOnOffMarketPortfolio.Content       = OsLocalization.Market.Label39;
            Label40.Content                            = OsLocalization.Market.Label40;
        }
Пример #8
0
        /// <summary>
        /// create server
        /// создать сервер
        /// </summary>
        /// <param name="type"> server type / тип сервера </param>
        /// <param name="neadLoadTicks"> shows whether upload ticks from storage. this is need for bots with QUIK or Plaza2 servers / нужно ли подгружать тики из хранилища. Актуально в режиме робота для серверов Квик, Плаза 2 </param>
        public static void CreateServer(ServerType type, bool neadLoadTicks)
        {
            try
            {
                if (_servers == null)
                {
                    _servers = new List <IServer>();
                }

                if (_servers.Find(server => server.ServerType == type) != null)
                {
                    return;
                }

                IServer newServer = null;

                if (type == ServerType.Transaq)
                {
                    newServer = new TransaqServer();
                }
                if (type == ServerType.Lmax)
                {
                    newServer = new LmaxServer();
                }
                if (type == ServerType.Bitfinex)
                {
                    newServer = new BitfinexServer();
                }
                if (type == ServerType.Binance)
                {
                    newServer = new BinanceServer();
                }
                if (type == ServerType.NinjaTrader)
                {
                    newServer = new NinjaTraderServer();
                }
                if (type == ServerType.BitStamp)
                {
                    newServer = new BitStampServer();
                }
                if (type == ServerType.Kraken)
                {
                    newServer = new KrakenServer(neadLoadTicks);
                }
                if (type == ServerType.Oanda)
                {
                    newServer = new OandaServer();
                }
                if (type == ServerType.BitMex)
                {
                    newServer = new BitMexServer();
                }
                if (type == ServerType.QuikLua)
                {
                    newServer = new QuikLuaServer();
                }
                if (type == ServerType.QuikDde)
                {
                    newServer = new QuikServer();
                }
                if (type == ServerType.InteractivBrokers)
                {
                    newServer = new InteractivBrokersServer();
                }
                else if (type == ServerType.SmartCom)
                {
                    newServer = new SmartComServer();
                }
                else if (type == ServerType.Plaza)
                {
                    newServer = new PlazaServer();
                }
                else if (type == ServerType.AstsBridge)
                {
                    newServer = new AstsBridgeServer(neadLoadTicks);
                }
                else if (type == ServerType.Tester)
                {
                    newServer = new TesterServer();
                }
                else if (type == ServerType.Finam)
                {
                    newServer = new FinamServer();
                }

                if (newServer == null)
                {
                    return;
                }

                _servers.Add(newServer);

                if (ServerCreateEvent != null)
                {
                    ServerCreateEvent(newServer);
                }

                SendNewLogMessage(OsLocalization.Market.Message3 + _servers[_servers.Count - 1].ServerType, LogMessageType.System);
            }
            catch (Exception error)
            {
                SendNewLogMessage(error.ToString(), LogMessageType.Error);
            }
        }