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 }
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; } }