Ejemplo n.º 1
0
        private void StartGUI(StarterConfig config, out StarterConfigView outForm)
        {
            WaitForEngine(config);
            var isRunning          = false;
            StarterConfigView form = null;

            guiThread = new Thread(() => {
                Thread.CurrentThread.Name = "GUIThread";
                execute = Execute.Create();
                form    = new StarterConfigView(execute, config);
                AutoModelBinder.Bind(config, form, execute);
                Application.Idle += execute.MessageLoop;
                form.Visible      = false;
                isRunning         = true;
                Application.Run();
            });
            guiThread.Start();
            config.WaitComplete(30, () => { return(isRunning); });
            outForm = form;
        }
Ejemplo n.º 2
0
        public void TestGUIIteration()
        {
            var appData = Factory.Settings["PriceDataFolder"];

            File.Delete(appData + @"\ServerCache\IBM.tck");
            var config             = new StarterConfig();
            StarterConfigView form = null;

            StartGUI(config, out form);
            try {
                config.WaitComplete(2);
                config.SymbolList = "IBM";
                StrategyBaseTest.CleanupFiles(config.SymbolList, null);
                config.DefaultPeriod  = 10;
                config.DefaultBarUnit = BarUnit.Second.ToString();
                config.ModelLoader    = "Example: Breakout Reversal";
                config.StarterName    = "Realtime Operation (Demo or Live)";
                config.Start();
                config.WaitComplete(30, () => { return(form.PortfolioDocs.Count > 0); });
                Assert.Greater(form.PortfolioDocs.Count, 0);
                var chart = form.PortfolioDocs[0].ChartControl;
                config.WaitComplete(30, () => { return(chart.IsDrawn); });
                var pane = chart.DataGraph.MasterPane.PaneList[0];
                Assert.IsNotNull(pane.CurveList);
                config.WaitComplete(30, () => { return(pane.CurveList.Count > 0); });
                Assert.Greater(pane.CurveList.Count, 0);
                var chartBars = (OHLCBarItem)pane.CurveList[0];
                config.WaitComplete(60, () => { return(chartBars.NPts >= 3); });
                Assert.GreaterOrEqual(chartBars.NPts, 3);
                config.Stop();
                config.WaitComplete(30, () => { return(!config.CommandWorker.IsBusy); });
                Assert.IsFalse(config.CommandWorker.IsBusy, "ProcessWorker.Busy");
            } catch (Exception ex) {
                log.Error("Test failed with error: " + ex.Message, ex);
                Environment.Exit(1);
            } finally {
                execute.Exit();
                guiThread.Join();
            }
        }
Ejemplo n.º 3
0
 public static void WaitComplete(this StarterConfig config, int seconds)
 {
     config.WaitComplete(seconds, null);
 }