public void EstimateAll(InputData inData, OptimizationFunctionIntNDFactory optFuncFactory) { OptimizationFunctionIntND optTestFunction = optFuncFactory.CreateOptimizationFunctionIntND( inData, inData.Data[0].DateTime, EstimationFunctionType.RelativeStudent, new Account(Settings1.Default.Balance, Settings1.Default.Commision)); optTestFunction.EstimateAll(string.Format("{0}-{1}-{2}", inData.Symbol, inData.Data.First().DateTime.ToString("yyyyMMdd"), inData.Data.Last().DateTime.ToString("yyyyMMdd"))); }
private void Start_Click(object sender, RoutedEventArgs e) { Log4Smart.Logger.ClearAllResult(); ButtonStart.IsEnabled = false; IEnumerable <string> allSymbols = symbolChooser.SymbolViewItems.Select(p => p.Symbol.Trim().ToLower()); string baseResultPath = Path.Combine(Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location), "result"); SwapCollection swapCollection = new SwapCollection(); swapCollection.LoadSwap(GetSwapFilePath()); TestManagerViewModel tma = new TestManagerViewModel(Math.Min(Environment.ProcessorCount, Int32.Parse(ConfigurationManager.AppSettings["MaxThreadNumber"]))); foreach (string currPath in GetAllSymbolPath()) { if (!allSymbols.Contains(Path.GetFileName((currPath).ToLower()))) { continue; } try { InputData inData = new InputData(); inData.LoadFromDirectory(currPath, swapCollection); string baseSymbolResultPath = System.IO.Path.Combine(baseResultPath, inData.Symbol); List <string> extractedParameterNames = new List <string>(); ConfigReader confReader = //new MartinGaleConfigReader(); //new Pipsovik.PipsovikConfigReader(); //new SuperAdaptStrategy.SuperAdaptConfigReader(); new BuyLimitAndWait.BuyLimitAndWaitConfigReader(); List <StratergyParameterRange> ranges = confReader.GetRanges(extractedParameterNames); foreach (StratergyParameterRange currStratergyParameterRange in ranges) { OptimizationFunctionIntNDFactory factory = GetStrategyFactory(currStratergyParameterRange, confReader); DateTime startAnalyzeDateTime = inData.Data[0].DateTime; tma.RunBruteForceTest(Path.Combine(baseSymbolResultPath, currStratergyParameterRange.ToString(extractedParameterNames)), inData, factory); } } catch (Exception exc) { MessageBox.Show(exc.ToString()); } } tma.WaitJobFinished(); System.Windows.MessageBox.Show("AnalyseStrategyeMarginEquityWindow Completed"); }
public void RunBruteForceTest(string defaultDir, InputData inData, OptimizationFunctionIntNDFactory optFuncFactory) { if (!System.IO.Directory.Exists(defaultDir)) { System.IO.Directory.CreateDirectory(defaultDir); } semaphore.WaitOne(); System.Threading.Thread t = new Thread(new ParameterizedThreadStart(RunSinglePeriodBruteForceTest)); t.Start(new TestParameters(inData, inData.Data[0].DateTime, inData.Data.Last().DateTime, optFuncFactory, defaultDir)); }
public void RunGeneticTests(string defaultDir, InputData inData, DateTime startDate, int daysInterval, int daysTestInterval, OptimizationFunctionIntNDFactory optFuncFactory) { if (!System.IO.Directory.Exists(defaultDir)) { System.IO.Directory.CreateDirectory(defaultDir); } DateTime currentDate = inData.Data.Last().DateTime; while (currentDate.DayOfWeek != DayOfWeek.Saturday) { currentDate = currentDate.AddDays(-1); } currentDate = currentDate.Date.AddWorkingDay(-1).AddWorkingDay(1); int i = 0; do { semaphore.WaitOne(); System.Threading.Thread t = new Thread(new ParameterizedThreadStart(RunSinglePeriodBruteForceTest)); t.Start(new TestParameters(inData, currentDate.AddWorkingDay(-daysInterval + 1), daysInterval, daysTestInterval, i++ == 0, optFuncFactory, defaultDir)); //RunSingleTest(new TestParameters(inData, currentDate.AddWorkingDay(-daysInterval + 1), daysInterval, daysTestInterval, i++ == 0, optFuncFactory, defaultDir)); currentDate = currentDate.AddWorkingDay(-daysTestInterval); }while(startDate < currentDate); }
public TestParameters(InputData inData, DateTime startDate, int daysInterval, int daysTestInterval, bool IsFullStatistics, OptimizationFunctionIntNDFactory optimizationFunctionFactory, string dir) { this.inData = inData; this.startDate = startDate; this.daysInterval = daysInterval; this.daysTestInterval = daysTestInterval; this.IsFullStatistics = IsFullStatistics; this.OptimizationFunctionFactory = optimizationFunctionFactory; this.DefaultDirectory = dir; }
public TestParameters(InputData inData, DateTime startDate, DateTime endDate, OptimizationFunctionIntNDFactory optimizationFunctionFactory, string dir) { this.inData = inData; this.startDate = startDate; this.endDate = endDate; this.OptimizationFunctionFactory = optimizationFunctionFactory; this.DefaultDirectory = dir; }