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;
|
||||
|
||||
@@ -1236,42 +1236,63 @@ namespace TradeBlotter.ViewModels
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
public bool LoadSessionFile()
|
||||
{
|
||||
if(!CMTSessionManager.IsValidSessionFile(pathFileName)) return false;
|
||||
initialPath=Path.GetDirectoryName(pathFileName);
|
||||
sessionParams=CMTSessionManager.RestoreSession(pathFileName);
|
||||
if(null==sessionParams) { MessageBox.Show(String.Format("Unable to open {0}",pathFileName)); pathFileName=null; return false; }
|
||||
modelStatistics=CMTTrendModel.GetModelStatistics(sessionParams);
|
||||
configuration=sessionParams.CMTParams;
|
||||
NVPCollection nvpCollection=sessionParams.CMTParams.ToNVPCollection();
|
||||
nvpDictionary=nvpCollection.ToDictionary();
|
||||
nvpDictionaryKeys=new ObservableCollection<String>(nvpDictionary.Keys);
|
||||
selectedParameter=nvpDictionaryKeys[0];
|
||||
positions=new CMTPositionModelCollection();
|
||||
positions.Add(sessionParams.ActivePositions);
|
||||
positions.Add(sessionParams.AllPositions);
|
||||
trendCandidates=new ObservableCollection<CMTCandidate>();
|
||||
foreach(CMTCandidate candidate in sessionParams.Candidates)trendCandidates.Add(candidate);
|
||||
UpdatePositionPrices(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("AllItems");
|
||||
base.OnPropertyChanged("CashBalance");
|
||||
base.OnPropertyChanged("NonTradeableCash");
|
||||
base.OnPropertyChanged("ModelExpectation");
|
||||
base.OnPropertyChanged("ExpectationColor");
|
||||
base.OnPropertyChanged("ExpectationDescription");
|
||||
base.OnPropertyChanged("TradeableCashDescription");
|
||||
base.OnPropertyChanged("NonTradeableCashDescription");
|
||||
BusyIndicator = true;
|
||||
BusyContent = $"Loading {Utility.GetFileNameNoExtension(pathFileName)}...";
|
||||
|
||||
Task workerTask = Task.Factory.StartNew( () =>
|
||||
{
|
||||
try
|
||||
{
|
||||
if(!CMTSessionManager.IsValidSessionFile(pathFileName)) return false;
|
||||
initialPath=Path.GetDirectoryName(pathFileName);
|
||||
sessionParams=CMTSessionManager.RestoreSession(pathFileName);
|
||||
if(null==sessionParams) { MessageBox.Show(String.Format("Unable to open {0}",pathFileName)); pathFileName=null; return false; }
|
||||
modelStatistics=CMTTrendModel.GetModelStatistics(sessionParams);
|
||||
configuration=sessionParams.CMTParams;
|
||||
NVPCollection nvpCollection=sessionParams.CMTParams.ToNVPCollection();
|
||||
nvpDictionary=nvpCollection.ToDictionary();
|
||||
nvpDictionaryKeys=new ObservableCollection<String>(nvpDictionary.Keys);
|
||||
selectedParameter=nvpDictionaryKeys[0];
|
||||
positions=new CMTPositionModelCollection();
|
||||
positions.Add(sessionParams.ActivePositions);
|
||||
positions.Add(sessionParams.AllPositions);
|
||||
trendCandidates=new ObservableCollection<CMTCandidate>();
|
||||
foreach(CMTCandidate candidate in sessionParams.Candidates)trendCandidates.Add(candidate);
|
||||
UpdatePositionPrices(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("AllItems");
|
||||
base.OnPropertyChanged("CashBalance");
|
||||
base.OnPropertyChanged("NonTradeableCash");
|
||||
base.OnPropertyChanged("ModelExpectation");
|
||||
base.OnPropertyChanged("ExpectationColor");
|
||||
base.OnPropertyChanged("ExpectationDescription");
|
||||
base.OnPropertyChanged("TradeableCashDescription");
|
||||
base.OnPropertyChanged("NonTradeableCashDescription");
|
||||
});
|
||||
return true;
|
||||
}
|
||||
|
||||
private void RunPerformance()
|
||||
{
|
||||
if(null==sessionParams)return;
|
||||
|
||||
@@ -1103,37 +1103,54 @@ namespace TradeBlotter.ViewModels
|
||||
}
|
||||
else LoadSessionFile();
|
||||
}
|
||||
|
||||
public bool LoadSessionFile()
|
||||
{
|
||||
try
|
||||
BusyIndicator = true;
|
||||
BusyContent = $"Loading {Utility.GetFileNameNoExtension(pathFileName)}...";
|
||||
|
||||
Task workerTask = Task.Factory.StartNew(() =>
|
||||
{
|
||||
if(!MGSessionManager.IsValidSessionFile(pathFileName))
|
||||
try
|
||||
{
|
||||
MessageBox.Show(String.Format("'{0}' is not a valid model. IsValidSessionFile returned false.",pathFileName));
|
||||
pathFileName = null;
|
||||
if(!MGSessionManager.IsValidSessionFile(pathFileName))
|
||||
{
|
||||
MessageBox.Show(String.Format("'{0}' is not a valid model. IsValidSessionFile returned false.",pathFileName));
|
||||
pathFileName = null;
|
||||
return false;
|
||||
}
|
||||
initialPath=Path.GetDirectoryName(pathFileName);
|
||||
sessionParams=MGSessionManager.RestoreSession(pathFileName);
|
||||
if(null==sessionParams)
|
||||
{
|
||||
MessageBox.Show(String.Format("Unable to open '{0}'. Restore session failed.",pathFileName));
|
||||
pathFileName=null;
|
||||
return false;
|
||||
}
|
||||
modelStatistics=MomentumBacktest.GetModelStatistics(sessionParams);
|
||||
modelPerformanceSeries=MomentumBacktest.GetModelPerformance(sessionParams);
|
||||
configuration=sessionParams.Configuration;
|
||||
NVPCollection nvpCollection=sessionParams.Configuration.ToNVPCollection();
|
||||
nvpDictionary=nvpCollection.ToDictionary();
|
||||
nvpDictionaryKeys=new ObservableCollection<String>(nvpDictionary.Keys);
|
||||
selectedParameter=nvpDictionaryKeys[0];
|
||||
positions=new MGPositionModelCollection();
|
||||
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;
|
||||
}
|
||||
initialPath=Path.GetDirectoryName(pathFileName);
|
||||
sessionParams=MGSessionManager.RestoreSession(pathFileName);
|
||||
if(null==sessionParams)
|
||||
{
|
||||
MessageBox.Show(String.Format("Unable to open '{0}'. Restore session failed.",pathFileName));
|
||||
pathFileName=null;
|
||||
return false;
|
||||
}
|
||||
modelStatistics=MomentumBacktest.GetModelStatistics(sessionParams);
|
||||
modelPerformanceSeries=MomentumBacktest.GetModelPerformance(sessionParams);
|
||||
configuration=sessionParams.Configuration;
|
||||
NVPCollection nvpCollection=sessionParams.Configuration.ToNVPCollection();
|
||||
nvpDictionary=nvpCollection.ToDictionary();
|
||||
nvpDictionaryKeys=new ObservableCollection<String>(nvpDictionary.Keys);
|
||||
selectedParameter=nvpDictionaryKeys[0];
|
||||
positions=new MGPositionModelCollection();
|
||||
positions.Add(sessionParams.ActivePositions);
|
||||
positions.Add(sessionParams.AllPositions);
|
||||
UpdatePositionPrices(false);
|
||||
UpdatePositionRSI3(true);
|
||||
RunPerformance();
|
||||
});
|
||||
workerTask.ContinueWith(continuation =>
|
||||
{
|
||||
BusyIndicator=false;
|
||||
base.OnPropertyChanged("Parameters");
|
||||
base.OnPropertyChanged("SelectedParameter");
|
||||
base.OnPropertyChanged("ParameterValue");
|
||||
@@ -1146,14 +1163,10 @@ namespace TradeBlotter.ViewModels
|
||||
base.OnPropertyChanged("ModelExpectation");
|
||||
base.OnPropertyChanged("ExpectationColor");
|
||||
base.OnPropertyChanged("ExpectationDescription");
|
||||
return true;
|
||||
}
|
||||
catch(Exception exception)
|
||||
{
|
||||
System.Windows.MessageBox.Show(String.Format("Exception {0}",exception.ToString()),"Error",MessageBoxButton.OK,MessageBoxImage.Exclamation);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
return true;
|
||||
}
|
||||
|
||||
private void RunPerformance()
|
||||
{
|
||||
if(null==sessionParams)return;
|
||||
|
||||
Reference in New Issue
Block a user