public List<ParameterdCandidateStrategy> AddRealDealCandidates(string symbol, int dealInfoLastWeek, IBestCandidateSelector bcs = null) { List<ParameterdCandidateStrategy> realDealsCandidates = new List<ParameterdCandidateStrategy>(); //TestParameters.InitTpsls(20, 10); //realDealsCandidates.Add(new RealDealCandidate("1M_10", 1 * 4 * 7 * 24 * 12 * 5, this)); //realDealsCandidates.Add(new RealDealCandidate("1.5M_10", (int)(1.5 * 4 * 7 * 24 * 12 * 5), this)); //realDealsCandidates.Add(new RealDealCandidate("2M_10", 2 * 4 * 7 * 24 * 12 * 5, this)); { CandidateParameter cp = new CandidateParameter(symbol); int delta = TestParameters.GetTpSlMinDelta(symbol) * TestParameters2.nTpsl; cp.InitTpsls(TestParameters2.tpStart, delta, TestParameters2.tpCount, TestParameters2.slStart, delta, TestParameters2.slCount); cp.SymbolStart = Array.IndexOf<string>(cp.AllSymbols, symbol); cp.SymbolCount = 1; cp.PeriodStart = Array.IndexOf<string>(cp.AllPeriods, "M1"); cp.PeriodCount = 1; cp.DealInfoLastMinutes = dealInfoLastWeek * 7 * 24 * 12 * 5; cp.Group = 1; InitBatchBatch(cp); if (cp.ClassifierType == null && !TestParameters.EnableExcludeClassifier) { cp.AllIndNames.Clear(); cp.AllIndNames2.Clear(); } else { cp.DeleteUnusedIndicators(); //GenerateBatchEmptyInstance(); } ParameterdCandidateStrategy mainPcs = new ParameterdCandidateStrategy(cp, null, bcs); realDealsCandidates.Add(mainPcs); // for (int i = 2; i <= 3; ++i) // { // var cp2 = cp.Clone(); // cp2.Name += "_" + i.ToString(); // cp2.DealInfoLastMinutes = i * 2 * 4 * 7 * 24 * 12 * 5; // realDealsCandidates.Add(new ParameterdCandidateStrategy(cp2)); // } } { //CandidateParameter cp = new CandidateParameter("GBPUSD"); //cp.InitTpsls(10, 60); //cp.SymbolStart = 1; //cp.DealInfoLastMinutes = 2 * 4 * 7 * 24 * 12 * 5; //cp.Group = 2; //ParameterdCandidateStrategy mainPcs = new ParameterdCandidateStrategy(cp); //mainPcs.m_bestCandidateSelector = new BestCandidateSelector1(0); //realDealsCandidates.Add(mainPcs); // for (int i = 2; i <= 3; ++i) // { // var cp2 = cp.Clone(); // cp2.Name += "_" + i.ToString(); // cp2.DealInfoLastMinutes = i * 2 * 4 * 7 * 24 * 12 * 5; // realDealsCandidates.Add(new ParameterdCandidateStrategy(cp2)); // } } { //CandidateParameter cp = new CandidateParameter("EURGBP"); //cp.InitTpsls(10, 30); //cp.SymbolStart = 6; //cp.DealInfoLastMinutes = 6 * 4 * 7 * 24 * 12 * 5; //cp.Group = 3; //ParameterdCandidateStrategy mainPcs = new ParameterdCandidateStrategy(cp); //mainPcs.m_bestCandidateSelector = new BestCandidateSelector1(0); //realDealsCandidates.Add(mainPcs); // // for (int i = 2; i <= 3; ++i) // // { // // var cp2 = cp.Clone(); // // cp2.Name += "_" + i.ToString(); // // cp2.DealInfoLastMinutes = i * 2 * 4 * 7 * 24 * 12 * 5; // // realDealsCandidates.Add(new ParameterdCandidateStrategy(cp2)); // // } } foreach (var i in realDealsCandidates) { OutputTestInfoCandidate(i.CandidateParameter); WekaUtils.Instance.WriteLog(string.Format("BestCandidateSelector = {0}", i.BestCandidateSelector == null ? "Null" : i.BestCandidateSelector.ToString())); } return realDealsCandidates; }
public void BuildExcludeModels() { Parameters.TotalCanUseMemory = 600 * 1000 * 1000; TestParameters.SaveDataFile = false; //m_batchBufferMinutes = (new TimeSpan(365 + 5, 0, 0, 0)).TotalMinutes; weka.classifiers.Classifier cls = new weka.classifiers.functions.LibSVM(); (cls as weka.classifiers.AbstractClassifier).setOptions(weka.core.Utils.splitOptions("-S 0 -K 2")); //Classifier cls = new MincostLiblinearClassifier(); //Classifier cls = new weka.classifiers.functions.LibLINEAR(); //(cls as AbstractClassifier).setOptions(weka.core.Utils.splitOptions("-S 0 -P -C 1 -B 1")); //var cls = new SvmLightClassifier(); //cls.setOptions(weka.core.Utils.splitOptions("-c 20 -l 4 -w 1 --p 1 --b 1")); var cp = new CandidateParameter("BuildExcludeModels"); cp.DeleteUnusedIndicators(); ParameterdCandidateStrategy realDealCandidate = new ParameterdCandidateStrategy(cp); SetTrainTime(new DateTime(2009, 1, 1), new DateTime(2009, 4, 30)); //m_generateOneClassHp = 0; realDealCandidate.IterateClassifierInfos2(new Func<CandidateClassifier, bool>((clsInfo) => { string modelFileName = clsInfo.WekaData.GetExcludeModelFileName(clsInfo.Name); //if (!System.IO.File.Exists(modelFileName)) { WekaUtils.Instance.WriteLog(string.Format("{0} is building exclude model.", clsInfo.Name)); //clsInfo.WekaData.m_currentTestHour = clsInfo.Hour; clsInfo.WekaData.GenerateData(true, false); WekaUtils.TrainInstances(clsInfo.WekaData.CurrentTrainInstancesNew, modelFileName, cls); MyEvaluation eval = new MyEvaluation(); eval.evaluateModel(cls, clsInfo.WekaData.CurrentTrainInstancesNew); return true; } //else //{ // m_currentTestHour = h; // GenerateData(true, false); // cls = WekaUtils.TryLoadClassifier(modelFileName); // var eval = WekaUtils.TestInstances(m_trainInstancesNew[k], cls); //} })); }