/// <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); }
/// <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); }
/// <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); }
public async Task <TestResultRepositiry> TestAsync() { TestResultRepositiry _result = await this.GetInputData(); StaticService.LogFileWrite("-- TestAsync = " + runTime, "runtime.txt", true); return(_result); }
/// <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); }
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(); }
/// <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); }
//-------- #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; }
/// <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()); }
/// <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); }