Fix the LoadSessionFile method so that the BusyIndicator is displayed with the correct content.
This commit is contained in:
@@ -28,6 +28,7 @@ using Position = MarketData.Generator.CMMomentum.Position;
|
||||
using TradeBlotter.UIUtils;
|
||||
using MarketData.Generator.Model;
|
||||
using MarketData.CNNProcessing;
|
||||
using System.Runtime.InteropServices.WindowsRuntime;
|
||||
|
||||
namespace TradeBlotter.ViewModels
|
||||
{
|
||||
@@ -1120,39 +1121,60 @@ namespace TradeBlotter.ViewModels
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
public bool LoadSessionFile()
|
||||
{
|
||||
if (!CMSessionManager.IsValidSessionFile(pathFileName)) return false;
|
||||
initialPath = Path.GetDirectoryName(pathFileName);
|
||||
sessionParams=CMSessionManager.RestoreSession(pathFileName);
|
||||
if (null == sessionParams) { MessageBox.Show(String.Format("Unable to open {0}", pathFileName)); pathFileName = null; return false; }
|
||||
modelStatistics=CMMomentumBacktest.GetModelStatistics(sessionParams);
|
||||
modelPerformanceSeries=CMMomentumBacktest.GetModelPerformance(sessionParams);
|
||||
cmParams = sessionParams.CMParams;
|
||||
NVPCollection nvpCollection = sessionParams.CMParams.ToNVPCollection();
|
||||
nvpDictionary = nvpCollection.ToDictionary();
|
||||
nvpDictionaryKeys = new ObservableCollection<String>(nvpDictionary.Keys);
|
||||
selectedParameter = nvpDictionaryKeys[0];
|
||||
positions = new CMPositionModelCollection();
|
||||
positions.Add(sessionParams.ActivePositions);
|
||||
positions.Add(sessionParams.AllPositions);
|
||||
UpdatePositionPrices(false);
|
||||
UpdatePositionRSI3(true);
|
||||
RunPerformance();
|
||||
base.OnPropertyChanged("Parameters");
|
||||
base.OnPropertyChanged("SelectedParameter");
|
||||
base.OnPropertyChanged("ParameterValue");
|
||||
base.OnPropertyChanged("Title");
|
||||
base.OnPropertyChanged("DisplayName");
|
||||
base.OnPropertyChanged("AllPositions");
|
||||
base.OnPropertyChanged("CanMonitor");
|
||||
base.OnPropertyChanged("CashBalance");
|
||||
base.OnPropertyChanged("NonTradeableCash");
|
||||
base.OnPropertyChanged("ModelExpectation");
|
||||
base.OnPropertyChanged("ExpectationColor");
|
||||
base.OnPropertyChanged("ExpectationDescription");
|
||||
BusyIndicator = true;
|
||||
BusyContent = $"Loading {Utility.GetFileNameNoExtension(pathFileName)}...";
|
||||
|
||||
Task workerTask = Task.Factory.StartNew(() =>
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!CMSessionManager.IsValidSessionFile(pathFileName)) return false;
|
||||
initialPath = Path.GetDirectoryName(pathFileName);
|
||||
sessionParams=CMSessionManager.RestoreSession(pathFileName);
|
||||
if (null == sessionParams) { MessageBox.Show(String.Format("Unable to open {0}", pathFileName)); pathFileName = null; return false; }
|
||||
modelStatistics=CMMomentumBacktest.GetModelStatistics(sessionParams);
|
||||
modelPerformanceSeries=CMMomentumBacktest.GetModelPerformance(sessionParams);
|
||||
cmParams = sessionParams.CMParams;
|
||||
NVPCollection nvpCollection = sessionParams.CMParams.ToNVPCollection();
|
||||
nvpDictionary = nvpCollection.ToDictionary();
|
||||
nvpDictionaryKeys = new ObservableCollection<String>(nvpDictionary.Keys);
|
||||
selectedParameter = nvpDictionaryKeys[0];
|
||||
positions = new CMPositionModelCollection();
|
||||
positions.Add(sessionParams.ActivePositions);
|
||||
positions.Add(sessionParams.AllPositions);
|
||||
UpdatePositionPrices(false);
|
||||
UpdatePositionRSI3(true);
|
||||
RunPerformance();
|
||||
return true;
|
||||
}
|
||||
catch(Exception exception)
|
||||
{
|
||||
System.Windows.MessageBox.Show(String.Format("Exception {0}",exception.ToString()),"Error",MessageBoxButton.OK,MessageBoxImage.Exclamation);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
workerTask.ContinueWith(continuation =>
|
||||
{
|
||||
BusyIndicator=false;
|
||||
base.OnPropertyChanged("Parameters");
|
||||
base.OnPropertyChanged("SelectedParameter");
|
||||
base.OnPropertyChanged("ParameterValue");
|
||||
base.OnPropertyChanged("Title");
|
||||
base.OnPropertyChanged("DisplayName");
|
||||
base.OnPropertyChanged("AllPositions");
|
||||
base.OnPropertyChanged("CanMonitor");
|
||||
base.OnPropertyChanged("CashBalance");
|
||||
base.OnPropertyChanged("NonTradeableCash");
|
||||
base.OnPropertyChanged("ModelExpectation");
|
||||
base.OnPropertyChanged("ExpectationColor");
|
||||
base.OnPropertyChanged("ExpectationDescription");
|
||||
});
|
||||
return true;
|
||||
}
|
||||
|
||||
private void RunPerformance()
|
||||
{
|
||||
if(null==sessionParams)return;
|
||||
|
||||
Reference in New Issue
Block a user