コード例 #1
0
ファイル: TestManager.cs プロジェクト: lotgon/StrategyTester
        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")));
        }
コード例 #2
0
        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");
        }
コード例 #3
0
        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));
        }
コード例 #4
0
ファイル: TestManager.cs プロジェクト: lotgon/StrategyTester
        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);
        }
コード例 #5
0
ファイル: TestManager.cs プロジェクト: lotgon/StrategyTester
 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;
 }
コード例 #6
0
 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;
 }