예제 #1
0
        public OptimizerMaster()
        {
            _log = new Log("OptimizerLog", StartProgram.IsOsOptimizer);
            _log.Listen(this);

            _threadsCount = 1;
            _startDepozit = 100000;

            Storage = new OptimizerDataStorage("Prime");
            Storage.SecuritiesChangeEvent += _storage_SecuritiesChangeEvent;
            Storage.TimeChangeEvent       += _storage_TimeChangeEvent;

            _filterProfitValue       = 10;
            _filterProfitIsOn        = false;
            _filterMaxDrowDownValue  = -10;
            _filterMaxDrowDownIsOn   = false;
            _filterMiddleProfitValue = 0.001m;
            _filterMiddleProfitIsOn  = false;
            _filterProfitFactorValue = 1;
            _filterProfitFactorIsOn  = false;

            _percentOnFilration = 30;

            Load();

            _optimizerExecutor = new OptimizerExecutor(this);
            _optimizerExecutor.LogMessageEvent            += SendLogMessage;
            _optimizerExecutor.TestingProgressChangeEvent += _optimizerExecutor_TestingProgressChangeEvent;
            _optimizerExecutor.PrimeProgressChangeEvent   += _optimizerExecutor_PrimeProgressChangeEvent;
            _optimizerExecutor.TestReadyEvent             += _optimizerExecutor_TestReadyEvent;
            _optimizerExecutor.NeadToMoveUiToEvent        += _optimizerExecutor_NeadToMoveUiToEvent;
            ProgressBarStatuses    = new List <ProgressBarStatus>();
            PrimeProgressBarStatus = new ProgressBarStatus();
        }
예제 #2
0
        /// <summary>
        /// create a new optimization server
        /// создать новый сервер оптимизации
        /// </summary>
        public static OptimizerServer CreateNextOptimizerServer(OptimizerDataStorage storage, int num, decimal portfolioStartVal)
        {
            OptimizerServer serv = new OptimizerServer(storage, num, portfolioStartVal);

            bool isInArray = false;

            if (_servers == null)
            {
                _servers = new List <IServer>();
            }

            for (int i = 0; i < _servers.Count; i++)
            {
                if (_servers[i].ServerType == ServerType.Optimizer)
                {
                    _servers[i] = serv;
                    isInArray   = true;
                }
            }

            if (isInArray == false)
            {
                _servers.Add(serv);
            }

            if (ServerCreateEvent != null)
            {
                ServerCreateEvent(serv);
            }
            return(serv);
        }
예제 #3
0
        /// <summary>
        /// constructor
        /// конструктор
        /// </summary>
        /// <param name="server">server/сервер</param>
        /// <param name="log">log/лог</param>
        public OptimizerDataStorageUi(OptimizerDataStorage server, Log log)
        {
            InitializeComponent();
            _server = server;

            log.StartPaint(Host);

            _server.SecuritiesChangeEvent += _server_SecuritiesChangeEvent;

            CreateGrid();
            PaintGrid();

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

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

            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;

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

            ComboBoxDataType.Items.Add(TesterDataType.Candle);
            ComboBoxDataType.Items.Add(TesterDataType.TickOnlyReadyCandle);
            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;

            Title                         = OsLocalization.Market.TitleTester;
            Label22.Header                = OsLocalization.Market.Label22;
            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;
        }
예제 #4
0
        /// <summary>
        /// создать новый сервер оптимизации
        /// </summary>
        public static OptimizerServer CreateNextOptimizerServer(OptimizerDataStorage storage, int num, decimal portfolioStartVal)
        {
            _servers = new List <IServer>();

            OptimizerServer serv = new OptimizerServer(storage, num, portfolioStartVal);

            _servers.Add(serv);

            if (ServerCreateEvent != null)
            {
                ServerCreateEvent();
            }
            return(serv);
        }
예제 #5
0
        /// <summary>
        /// create a new optimization server
        /// создать новый сервер оптимизации
        /// </summary>
        public static OptimizerServer CreateNextOptimizerServer(OptimizerDataStorage storage, int num, decimal portfolioStartVal)
        {
            lock (_optimizerGeneratorLocker)
            {
                OptimizerServer serv = new OptimizerServer(storage, num, portfolioStartVal);

                if (serv == null)
                {
                    return(null);
                }

                bool isInArray = false;

                if (_servers == null)
                {
                    _servers = new List <IServer>();
                }

                for (int i = 0; i < _servers.Count; i++)
                {
                    IServer ser = _servers[i];

                    if (ser == null)
                    {
                        _servers.RemoveAt(i);
                        i--;
                        continue;
                    }

                    if (ser.ServerType == ServerType.Optimizer &&
                        ((OptimizerServer)ser).NumberServer == serv.NumberServer)
                    {
                        _servers[i] = serv;
                        isInArray   = true;
                    }
                }

                if (isInArray == false)
                {
                    _servers.Add(serv);
                }

                if (ServerCreateEvent != null)
                {
                    ServerCreateEvent(serv);
                }
                return(serv);
            }
        }
        /// <summary>
        /// конструктор
        /// </summary>
        /// <param name="server">сервер</param>
        /// <param name="log">лог</param>
        public OptimizerDataStorageUi(OptimizerDataStorage server, Log log)
        {
            InitializeComponent();
            _server = server;

            log.StartPaint(Host);

            _server.SecuritiesChangeEvent += _server_SecuritiesChangeEvent;

            CreateGrid();
            PaintGrid();


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

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

            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.TickOnlyReadyCandle);
            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;
        }
예제 #7
0
        public OptimizerMaster()
        {
            _log = new Log("OptimizerLog", StartProgram.IsOsOptimizer);
            _log.Listen(this);

            _threadsCount = 1;
            _startDepozit = 100000;

            Storage = new OptimizerDataStorage();
            Storage.SecuritiesChangeEvent += _storage_SecuritiesChangeEvent;
            Storage.TimeChangeEvent       += _storage_TimeChangeEvent;

            _filterProfitValue       = 10;
            _filterProfitIsOn        = false;
            _filterMaxDrowDownValue  = -10;
            _filterMaxDrowDownIsOn   = false;
            _filterMiddleProfitValue = 0.001m;
            _filterMiddleProfitIsOn  = false;
            _filterWinPositionValue  = 40;
            _filterWinPositionIsOn   = false;
            _filterProfitFactorValue = 1;
            _filterProfitFactorIsOn  = false;

            _percentOnFilration = 30;

            Load();

            _fazeCount = 1;

            SendLogMessage("Начинаем проверку всех стратегий в системе на наличие параметров", LogMessageType.System);

            for (int i = 0; i < 3; i++)
            {
                Thread worker = new Thread(GetNamesStrategyToOptimization);
                worker.Name         = i.ToString();
                worker.IsBackground = true;
                worker.Start();
            }

            _optimizerExecutor = new OptimizerExecutor(this);
            _optimizerExecutor.LogMessageEvent            += SendLogMessage;
            _optimizerExecutor.TestingProgressChangeEvent += _optimizerExecutor_TestingProgressChangeEvent;
            _optimizerExecutor.PrimeProgressChangeEvent   += _optimizerExecutor_PrimeProgressChangeEvent;
            _optimizerExecutor.TestReadyEvent             += _optimizerExecutor_TestReadyEvent;
            _optimizerExecutor.NeadToMoveUiToEvent        += _optimizerExecutor_NeadToMoveUiToEvent;
            ProgressBarStatuses    = new List <ProgressBarStatus>();
            PrimeProgressBarStatus = new ProgressBarStatus();
        }
예제 #8
0
 /// <summary>
 /// start listening to the Optimizer storage
 /// начать прослушку хранилища оптимизатора
 /// </summary>
 public void Listen(OptimizerDataStorage panel)
 {
     panel.LogMessageEvent += ProcessMessage;
 }