void CreateNewEngine(string type) { // CheckPrerequisite() is alrready done at playto switch (type) { case "Backtest": { // Init inidcator datatable InitIndicatorTable(); _backtestengine = new BacktestEngine(_strategy, _tickfiles); BindBacktestEngine(ref _backtestengine); break; } case "Optimize": { Reset(false); _optimengine = new OptimizeEngine(_strategy, _tickfiles); break; } default: return; } }
public bool LoadStrategy() { Microsoft.Win32.OpenFileDialog openFileDialog1 = new Microsoft.Win32.OpenFileDialog(); openFileDialog1.InitialDirectory = _rootpath + _config.StrategyPath; openFileDialog1.Filter = "dll files (*.dll)|*.dll|All files (*.*)|*.*"; openFileDialog1.Title = "Select strategy dll"; openFileDialog1.RestoreDirectory = true; Nullable <bool> result = openFileDialog1.ShowDialog(); if (result == true) { string f = openFileDialog1.FileName; if (Util.isStrategyFile(f)) { // Select specifc strategy in the dll BackTestWindow.UI.StrategySelectorWindow strategyselector = new BackTestWindow.UI.StrategySelectorWindow(f); Nullable <bool> sresult = strategyselector.ShowDialog(); if (sresult == true) { Reset(); // load first strategy, ignore multi-selection _dllname = f; _strategyname = strategyselector.StrategySelected[0]; _strategy = Util.GetSingleStrategyFromDLL(_strategyname, _dllname); _strategy.Reset(); _strategy.SetIdTracker(_idtracker); // set strategy parameters BackTestWindow.UI.StrategySetterWindow strategysetter = new BackTestWindow.UI.StrategySetterWindow(_strategy); sresult = strategysetter.ShowDialog(); // ignore sresult. User can assume default parameters. // status DllStatus(_strategyname); // set up optimizable variable list _optimvariablelist = OptimizeEngine.GetOptimizeable(_dllname, _strategyname); OptimizerStatusUpdates("OptimVariable"); } } } bool success = CheckPrerequisite(); return(success); }
void _optimengine_SendPlayCompleteEvent(int obj) { // get results _optimresultsdict = _optimengine.ResultsDict; // update listbox OptimResultsList = _optimresultsdict.Select(x => x.Key).ToList(); OptimizerStatusUpdates("OptimResults"); // unbind _optimengine.SendEngineDebugEvent -= _backtestengine_SendEngineDebugEvent; _optimengine.SendEngineStatusEvent -= _backtestengine_SendEngineStatusEvent; _optimengine.SendPlayProgressEvent -= _optimengine_SendPlayProgressEvent; _optimengine.SendPlayCompleteEvent -= _optimengine_SendPlayCompleteEvent; _optimengine = null; _createnewengine = true; // New backtest/optimize engine are available }