コード例 #1
0
        /// <summary>
        /// Группировка по Дате TestResultRepositiry только для OPT
        /// </summary>
        private TestResultRepositiry GroupDateTestResult(TestResultRepositiry _testResults, int _countBest = 1)
        {
            TestResultRepositiry result = new TestResultRepositiry();
            int counter;

            var _groupRes = from res in _testResults
                            where res.Profit > 0 & StaticService.GetComment(res.Key, Patern3) == "OPT"
                            orderby res.Profit descending
                            group res by res.DateRes into _dateGroup
                            orderby _dateGroup.Key
                            select _dateGroup;

            foreach (var testresults in _groupRes)
            {
                counter = 0;

                if (testresults != null)
                {
                    foreach (ParametrTestResult res in testresults)
                    {
                        result.Add(res);

                        counter++;

                        if (counter >= _countBest)
                        {
                            break;
                        }
                    }
                }
            }

            return(result);
        }
コード例 #2
0
        /// <summary>
        /// Получение входных данных.
        /// </summary>
        private async Task <TestResultRepositiry> GetInputData()
        {
            runTime = String.Empty;
            TimeSpan _runTime;
            DateTime _startRun = DateTime.Now;

            List <Task> _tasks = new List <Task>();

            string[] filePathes = StaticService.GetPathFiles(folderInput, patern1);

            testResultRepo = new TestResultRepositiry();

            // очищаем папки
            StaticService.DeleteAllFile(folderOutTestResult, patern1);
            StaticService.DeleteAllFile(folderOutTestTradesSimple, patern1);
            StaticService.DeleteAllFile(folderOutTestTradesOPT, patern1);

            foreach (string _path in filePathes) // проходим по файлам
            {
                _tasks.Add(TrendAlgoritmTest(_path));
            }

            await Task.WhenAll(_tasks);

            StaticService.Serializes(testResultRepo, folderOutTestResult + "!_actul_result");

            _runTime = DateTime.Now - _startRun;
            runTime  = String.Format("{0:00}:{1:00}:{2:00}.{3:000}", _runTime.Hours, _runTime.Minutes, _runTime.Seconds, _runTime.Milliseconds);

            return(testResultRepo);
        }
コード例 #3
0
        /// <summary>
        /// Фильтр по SettingsBolinger только для ОПТ
        /// </summary>
        private TestResultRepositiry FiltrBySettingsBB(TestResultRepositiry _testResRepo, string _setBB, out bool _error)
        {
            TestResultRepositiry result = new TestResultRepositiry();

            _error = false;

            try
            {
                foreach (ParametrTestResult item in _testResRepo)
                {
                    if (item != null)
                    {
                        string OPT        = StaticService.GetComment(item.Key, Patern3);
                        string settingsBB = item.SettingsBolinger;

                        if (settingsBB == _setBB && !String.IsNullOrEmpty(OPT))
                        {
                            result.Add(item);
                        }
                    }
                    else
                    {
                        _error = true;
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.InnerException + ex.Message);
                return(result);
            }

            return(result);
        }
コード例 #4
0
        public async Task <TestResultRepositiry> TestAsync()
        {
            TestResultRepositiry _result = await this.GetInputData();

            StaticService.LogFileWrite("-- TestAsync = " + runTime, "runtime.txt", true);

            return(_result);
        }
コード例 #5
0
        /// <summary>
        /// Фильтр по ОРТ
        /// </summary>
        private TestResultRepositiry FiltrTestResult(TestResultRepositiry _testResRepo, DateTime _fromDate, DateTime _toDate, out bool _error, bool _opt = true)
        {
            TestResultRepositiry result = new TestResultRepositiry();

            _error = false;

            try
            {
                foreach (ParametrTestResult item in _testResRepo)
                {
                    if (item != null)
                    {
                        string   OPT     = StaticService.GetComment(item.Key, Patern3);
                        DateTime dateRes = Convert.ToDateTime(item.DateRes);

                        if (dateRes >= _fromDate && dateRes <= _toDate)
                        {
                            if (_opt)
                            {
                                if (!String.IsNullOrEmpty(OPT))
                                {
                                    result.Add(item);
                                }
                            }
                            else
                            {
                                if (String.IsNullOrEmpty(OPT))
                                {
                                    result.Add(item);
                                }
                            }
                        }
                    }
                    else
                    {
                        _error = true;
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.InnerException + ex.Message);
                return(result);
            }

            return(result);
        }
コード例 #6
0
        public RepositiryClasses()
        {
            DDEChannelCreate();

            // --1--
            marketTradesRepository = new MarketTradesRepository();
            testResultRepository   = new TestResultRepositiry();
            settingsClass          = new SettingsClass();

            // --2--
            // восстанавливаем сохраненные экземпляры
            DeserializesObject();

            // последний
            obtainingDriver  = new ObtainingDriver(this);
            convertToDat     = new ConvertToDat();
            calcBolinger     = new CalculationBolinger();
            testMarketDriver = new TestMarketDriver();
        }
コード例 #7
0
        /// <summary>
        /// График по SettingsBolinger(X) и CountProfitIndex(Y)
        /// </summary>
        public DataUniversalCharts GetSettingsBBForCharts(TestResultRepositiry _testResRepo)
        {
            DataUniversalCharts result = new DataUniversalCharts();

            var _groupRes = from res in _testResRepo
                            where !String.IsNullOrEmpty(StaticService.GetComment(res.Key, Patern3))
                            group res by res.SettingsBolinger into _paramRes
                            orderby _paramRes.Key
                            select _paramRes;

            foreach (var item in _groupRes)
            {
                string keyX = item.Key;
                double avgY = item.Average(x => x.CountProfitIndex);
                result.Add(keyX, avgY);
            }

            return(result);
        }
コード例 #8
0
        //--------

        #region -Constructor-
        public ViewModel()
        {
            repositClasses     = new RepositiryClasses();
            manipulationCharts = new ManipulationCharts();

            marketTradRepo  = repositClasses.MarketTradRepo;
            testResultBufer = repositClasses.TestResReposit;

            settingsClass    = repositClasses.SettClass;
            testMarketDriver = repositClasses.TestmarketDriver;
            intraAdapt       = new IntradayAdaptation();

            // работа через файлы
            convertToDat = repositClasses.ConvToDat;
            calcBolinger = repositClasses.CalcBolinger;

            fromDate  = DateTime.Now;
            toDate    = fromDate;
            oneDay    = fromDate;
            countBest = 1;
        }
コード例 #9
0
 /// <summary>
 /// Десериализация сохраненных объектов
 /// </summary>
 private void DeserializesObject()
 {
     settingsClass        = (SettingsClass)StaticService.Deserializes(settingsClass.GetType().ToString(), settingsClass);
     testResultRepository = (TestResultRepositiry)StaticService.Deserializes(StaticService.RelativePatchCreate(SettingsClass.TestResult + SettingsClass.FolderSBRF) + "!_actul_result", new TestResultRepositiry());
 }
コード例 #10
0
        /// <summary>
        /// Группировка по Параметрам ББ TestResultRepositiry
        /// </summary>
        private ObservableCollection <ParametrGroupSettingsResult> GroupParametrBBTestResult(TestResultRepositiry _testResults)
        {
            ObservableCollection <ParametrGroupSettingsResult> result = new ObservableCollection <ParametrGroupSettingsResult>();

            var _groupRes = from res in _testResults
                            group res by res.SettingsBolinger into _paramRes
                            select new { Papametr = _paramRes.Key, Count = _paramRes.Count() };

            foreach (var item in _groupRes)
            {
                result.Add(new ParametrGroupSettingsResult(item.Papametr, item.Count));
            }

            return(result);
        }