diff --git a/PortfolioManager/UIUtils/UIConstants.cs b/PortfolioManager/UIUtils/UIConstants.cs new file mode 100644 index 0000000..c0aa4aa --- /dev/null +++ b/PortfolioManager/UIUtils/UIConstants.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection.Metadata; +using System.Text; +using System.Threading.Tasks; +using Avalonia.Media; + +namespace PortfolioManager.UIUtils +{ + public static class UIConstants + { + public const String CONST_ALL = "{ALL}"; + } +} diff --git a/PortfolioManager/ViewModels/BollingerBandViewModel.cs b/PortfolioManager/ViewModels/BollingerBandViewModel.cs new file mode 100644 index 0000000..b4c759b --- /dev/null +++ b/PortfolioManager/ViewModels/BollingerBandViewModel.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Avalonia.Controls; +using Avalonia.Media; +using Avalonia.Platform.Storage; +using CommunityToolkit.Mvvm.Input; +using Eremex.AvaloniaUI.Controls; +using MarketData; +using MarketData.DataAccess; +using MarketData.Generator; +using MarketData.Generator.CMMomentum; +using MarketData.Generator.Interface; +using MarketData.Generator.Model; +using MarketData.MarketDataModel; +using MarketData.Utils; +using PortfolioManager.DataSeriesViewModels; +using PortfolioManager.Dialogs; +using PortfolioManager.Models; +using PortfolioManager.UIUtils; +using Position = MarketData.Generator.CMMomentum.Position; + +namespace PortfolioManager.ViewModels +{ + public partial class BollingerBandViewModel : WorkspaceViewModel + { + private bool isBusy = false; + + public BollingerBandViewModel() + { + DisplayName = "BollingerBand View"; + } + + public bool IsBusy + { + get + { + return isBusy; + } + set + { + isBusy = value; + base.OnPropertyChanged("IsBusy"); + } + } + +// ******************************************************************* P E R S I S T E N C E *************************************************** + + public override bool CanPersist() + { + return false; + } + + public override SaveParameters GetSaveParameters() + { + return null; + } + + public override void SetSaveParameters(SaveParameters saveParameters) + { + return; + } + } +} \ No newline at end of file diff --git a/PortfolioManager/ViewModels/GainLossViewModel.cs b/PortfolioManager/ViewModels/GainLossViewModel.cs index acab52b..2f3763a 100644 --- a/PortfolioManager/ViewModels/GainLossViewModel.cs +++ b/PortfolioManager/ViewModels/GainLossViewModel.cs @@ -20,12 +20,13 @@ using MarketData.MarketDataModel.GainLoss; using MarketData.Utils; using PortfolioManager.DataSeriesViewModels; using PortfolioManager.Models; +using PortfolioManager.UIUtils; namespace PortfolioManager.ViewModels { public partial class GainLossViewModel : WorkspaceViewModel { - private const String ALL = "{ALL}"; + private const String ALL = UIConstants.CONST_ALL; private enum Tasks { Accounts, SelectedSymbol, SelectedAccounts, LeastSquaresFit, UseDividends }; private Dictionary semaphorePool = new Dictionary(); private PortfolioTrades portfolioTrades = null; @@ -54,7 +55,6 @@ namespace PortfolioManager.ViewModels public GainLossViewModel() { - DisplayName = "GainLossView"; semaphorePool.Add(Tasks.SelectedSymbol, new Semaphore(1, 1)); semaphorePool.Add(Tasks.SelectedAccounts, new Semaphore(1, 1)); diff --git a/PortfolioManager/ViewModels/MGSHMomentumViewModel.cs b/PortfolioManager/ViewModels/MGSHMomentumViewModel.cs index 76b6c8d..9a9a38f 100644 --- a/PortfolioManager/ViewModels/MGSHMomentumViewModel.cs +++ b/PortfolioManager/ViewModels/MGSHMomentumViewModel.cs @@ -151,13 +151,6 @@ namespace PortfolioManager.ViewModels HandleToggleReturnOrPercent(); } - // This is not currently being displayed - [RelayCommand] - public void Run() - { - RunCandidateGenerator(); - } - [RelayCommand] public async Task LoadFile() { @@ -285,36 +278,6 @@ namespace PortfolioManager.ViewModels base.OnPropertyChanged("GraphTitle"); } - // This is not currently being dispplayed - private void RunCandidateGenerator() - { - try - { - if (null == sessionParams) return; - DateGenerator dateGenerator = new DateGenerator(); - DateTime selectedDate = dateGenerator.FindPrevBusinessDay(sessionParams.TradeDate); - IsBusy = true; - Task workerTask = Task.Factory.StartNew(() => - { - MGSHConfiguration localConfiguration = new MGSHConfiguration(); - localConfiguration.MaxPositions = int.Parse(nvpDictionary["MaxPositions"].Value); - localConfiguration.HoldingPeriod = int.Parse(nvpDictionary["HoldingPeriod"].Value); - MGSHMomentumCandidates candidates = MGSHMomentumGenerator.GenerateMomentumWithFallback(selectedDate, configuration == null ? localConfiguration : configuration); - momentumCandidates = new ObservableCollection(); - foreach (MGSHMomentumCandidate momentumCandidate in candidates) momentumCandidates.Add(momentumCandidate); - }); - workerTask.ContinueWith((continuation) => - { - IsBusy = false; - base.OnPropertyChanged("AllItems"); - base.OnPropertyChanged("Title"); - }); - } - finally - { - } - } - public async Task LoadTradeFile() { TopLevel topLevel = TopLevel.GetTopLevel(GetTopLevelWindow()); diff --git a/PortfolioManager/ViewModels/MainWindowViewModel.cs b/PortfolioManager/ViewModels/MainWindowViewModel.cs index f0a0014..ff15941 100644 --- a/PortfolioManager/ViewModels/MainWindowViewModel.cs +++ b/PortfolioManager/ViewModels/MainWindowViewModel.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Collections.ObjectModel; using System.Collections.Specialized; +using System.Runtime.CompilerServices; using System.Text; using Avalonia.Threading; using MarketData.Cache; @@ -94,6 +95,7 @@ namespace PortfolioManager.ViewModels { return new List() { + new CommandViewModel("Bollinger Bands", new MyRelayCommand(ParamArrayAttribute => this.ViewBollingerBands())), new CommandViewModel("Gain/Loss", new MyRelayCommand(ParamArrayAttribute => this.ViewGainLoss())), new CommandViewModel("Momentum Model", new MyRelayCommand(ParamArrayAttribute => this.ViewMomentum())), new CommandViewModel("MGSHMomentum Model", new MyRelayCommand(ParamArrayAttribute => this.ViewMGSHMomentum())), @@ -101,18 +103,34 @@ namespace PortfolioManager.ViewModels new CommandViewModel("CMTrend Model", new MyRelayCommand(ParamArrayAttribute => this.ViewCMTrend())) }; } - private void ViewCMTrend() + + private void ViewBollingerBands() { - CMTrendViewModel workspace = null; + BollingerBandViewModel workspace = null; if (null == workspace) { - workspace = new CMTrendViewModel(); + workspace = new BollingerBandViewModel(); workspace.WorkspaceInstantiator = InstantiateWorkspace; + workspace.Referer = GetReferal(); // AddMenuItem(workspace); - this.Workspaces.Add(workspace); + this.Workspaces.Add(workspace); } this.SetActiveWorkspace(workspace); + } + + private void ViewCMTrend() + { + CMTrendViewModel workspace = null; + if (null == workspace) + { + workspace = new CMTrendViewModel(); + workspace.WorkspaceInstantiator = InstantiateWorkspace; + workspace.Referer = GetReferal(); + // AddMenuItem(workspace); + this.Workspaces.Add(workspace); } + this.SetActiveWorkspace(workspace); + } private void ViewGainLoss() { @@ -121,8 +139,9 @@ namespace PortfolioManager.ViewModels { workspace = new GainLossViewModel(); workspace.WorkspaceInstantiator = InstantiateWorkspace; + workspace.Referer = GetReferal(); // AddMenuItem(workspace); - this.Workspaces.Add(workspace); + this.Workspaces.Add(workspace); } this.SetActiveWorkspace(workspace); } @@ -134,6 +153,7 @@ namespace PortfolioManager.ViewModels { workspace = new MGSHMomentumViewModel(); workspace.WorkspaceInstantiator = InstantiateWorkspace; + workspace.Referer = GetReferal(); // AddMenuItem(workspace); this.Workspaces.Add(workspace); } @@ -147,8 +167,9 @@ namespace PortfolioManager.ViewModels { workspace = new MomentumViewModel(); workspace.WorkspaceInstantiator = InstantiateWorkspace; + workspace.Referer = GetReferal(); // AddMenuItem(workspace); - this.Workspaces.Add(workspace); + this.Workspaces.Add(workspace); } this.SetActiveWorkspace(workspace); } @@ -160,9 +181,11 @@ namespace PortfolioManager.ViewModels { workspace = new CMMomentumViewModel(); workspace.WorkspaceInstantiator = InstantiateWorkspace; + workspace.Referer = GetReferal(); // AddMenuItem(workspace); - this.Workspaces.Add(workspace); + this.Workspaces.Add(workspace); } + this.SetActiveWorkspace(workspace); } @@ -220,20 +243,26 @@ namespace PortfolioManager.ViewModels SelectedIndex = itemIndex; } + private WorkspaceViewModel GetReferal() + { + if (null == workspaces || 0 == workspaces.Count) return null; + return workspaces[workspaces.Count-1]; + } + public int SelectedIndex + { + get { - get - { - return selectedIndex; - } - set - { - selectedIndex = value; - TabIndexArgs args = new TabIndexArgs() { Index = selectedIndex }; - OnIndexChangeEventHandler.Invoke(this, args); - base.OnPropertyChanged("SelectedIndex"); - } + return selectedIndex; } + set + { + selectedIndex = value; + TabIndexArgs args = new TabIndexArgs() { Index = selectedIndex }; + OnIndexChangeEventHandler.Invoke(this, args); + base.OnPropertyChanged("SelectedIndex"); + } + } public void InstantiateWorkspace(SaveParameters saveParameters) { diff --git a/PortfolioManager/ViewModels/MomentumViewModel.cs b/PortfolioManager/ViewModels/MomentumViewModel.cs index 83ac77f..2c8e033 100644 --- a/PortfolioManager/ViewModels/MomentumViewModel.cs +++ b/PortfolioManager/ViewModels/MomentumViewModel.cs @@ -2,7 +2,6 @@ using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; -using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -220,7 +219,6 @@ namespace PortfolioManager.ViewModels } } - public CompositeDataSource Data { get @@ -493,7 +491,6 @@ namespace PortfolioManager.ViewModels base.OnPropertyChanged("Title"); base.OnPropertyChanged("DisplayName"); base.OnPropertyChanged("AllPositions"); - // base.OnPropertyChanged("CanMonitor"); base.OnPropertyChanged("CashBalance"); base.OnPropertyChanged("NonTradeableCash"); base.OnPropertyChanged("ModelExpectation"); diff --git a/PortfolioManager/ViewModels/WorkspaceViewModelPersistenceHelper.cs b/PortfolioManager/ViewModels/WorkspaceViewModelPersistenceHelper.cs index 59fab1d..04a5eec 100644 --- a/PortfolioManager/ViewModels/WorkspaceViewModelPersistenceHelper.cs +++ b/PortfolioManager/ViewModels/WorkspaceViewModelPersistenceHelper.cs @@ -2,13 +2,10 @@ using System.IO; using System.Collections.Generic; using System.Collections.ObjectModel; -//using System.Windows.Data; -//using System.Windows.Forms; using System.ComponentModel; using System.Diagnostics; using System.Linq; using System.Text; -//using MarketData; using System.Reflection; using MarketData; @@ -115,6 +112,7 @@ namespace PortfolioManager.ViewModels for (int index = 0; index < workspaceViewModelPersistenceCollection.Count; index++) { WorkspaceViewModelPersistenceHolder workspaceViewModelPersistenceHolder = workspaceViewModelPersistenceCollection[index]; + if (index > 0) workspaceViewModelPersistenceHolder.Workspace.Referer = workspaceViewModelPersistenceCollection[index - 1].Workspace; workspaces.Add(workspaceViewModelPersistenceHolder.Workspace); workspaceViewModelPersistenceHolder.Workspace.SetSaveParameters(workspaceViewModelPersistenceHolder.WorkspaceParameters); if (index == workspaceViewModelPersistenceCollection.Count - 1) diff --git a/PortfolioManager/Views/BollingerBandView.axaml b/PortfolioManager/Views/BollingerBandView.axaml new file mode 100644 index 0000000..4c4fd95 --- /dev/null +++ b/PortfolioManager/Views/BollingerBandView.axaml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PortfolioManager/Views/BollingerBandView.axaml.cs b/PortfolioManager/Views/BollingerBandView.axaml.cs new file mode 100644 index 0000000..1aac1a1 --- /dev/null +++ b/PortfolioManager/Views/BollingerBandView.axaml.cs @@ -0,0 +1,13 @@ +using Avalonia; +using Avalonia.Controls; +using Avalonia.Markup.Xaml; + +namespace PortfolioManager.Views; + +public partial class BollingerBandView : UserControl +{ + public BollingerBandView() + { + InitializeComponent(); + } +} \ No newline at end of file diff --git a/PortfolioManager/Views/MGSHMomentumView.axaml b/PortfolioManager/Views/MGSHMomentumView.axaml index 8f298e8..98c0198 100644 --- a/PortfolioManager/Views/MGSHMomentumView.axaml +++ b/PortfolioManager/Views/MGSHMomentumView.axaml @@ -29,7 +29,6 @@ - @@ -70,8 +69,6 @@ - - diff --git a/PortfolioManager/Views/MainWindow.axaml b/PortfolioManager/Views/MainWindow.axaml index 0c4e2ae..00da1d8 100644 --- a/PortfolioManager/Views/MainWindow.axaml +++ b/PortfolioManager/Views/MainWindow.axaml @@ -34,6 +34,9 @@ + + + diff --git a/PortfolioManager/portfolio_manager.log b/PortfolioManager/portfolio_manager.log index a01b6a9..5cad65b 100644 --- a/PortfolioManager/portfolio_manager.log +++ b/PortfolioManager/portfolio_manager.log @@ -41207,3 +41207,689 @@ PortfolioManager Error: 0 : Unable to connect to any of the specified MySQL host [Thread=1][TRACE.VERBOSE][6/11/2025 7:13:53 PM] [MarketData.Cache.GBPriceCache::Dispose()][GBPriceCache:Dispose]Thread state is 'WaitSleepJoin'. Joining main thread... [Thread=18][TRACE.VERBOSE][6/11/2025 7:13:54 PM] [MarketData.Cache.GBPriceCache::ThreadProc()][GBPriceCache:ThreadProc]Thread ended. [Thread=1][TRACE.VERBOSE][6/11/2025 7:13:54 PM] [MarketData.Cache.GBPriceCache::Dispose()][GBPriceCache:Dispose] End. +[Thread=1][TRACE.VERBOSE][6/12/2025 10:06:15 AM] [PortfolioManager.Program::Main(args)][STARTING] +[Thread=7][TRACE.VERBOSE][6/12/2025 10:06:16 AM] [MarketData.Generator.MGSHMomentum.MGSHMomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 294(ms) +[Thread=7][TRACE.VERBOSE][6/12/2025 10:06:16 AM] [MarketData.Generator.MGSHMomentum.MGSHMomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 129(ms) +[Thread=9][TRACE.VERBOSE][6/12/2025 10:06:18 AM] [MarketData.Generator.CMTrend.CMTTrendModel::GetModelPerformance(sessionParams)]Done, total took 1760(ms) +[Thread=11][TRACE.VERBOSE][6/12/2025 10:06:18 AM] [MarketData.Generator.CMMomentum.CMMomentumBacktest::GetModelPerformance(sessionParams)]Done, took 1998(ms) +[Thread=11][TRACE.VERBOSE][6/12/2025 10:06:18 AM] [MarketData.Generator.CMMomentum.CMMomentumBacktest::GetModelPerformance(sessionParams)]Done, took 57(ms) +[Thread=10][TRACE.VERBOSE][6/12/2025 10:06:18 AM] [MarketData.Generator.Momentum.MomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 2470(ms) +[Thread=9][TRACE.VERBOSE][6/12/2025 10:06:18 AM] [MarketData.Generator.CMTrend.CMTTrendModel::GetModelPerformance(sessionParams)]Done, total took 26(ms) +[Thread=10][TRACE.VERBOSE][6/12/2025 10:06:18 AM] [MarketData.Generator.Momentum.MomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 62(ms) +[Thread=10][TRACE.VERBOSE][6/12/2025 10:06:22 AM] [MarketData.Generator.CMMomentum.CMMomentumBacktest::GetModelPerformance(sessionParams)]Done, took 29(ms) +[Thread=10][TRACE.VERBOSE][6/12/2025 10:06:22 AM] [MarketData.Generator.CMMomentum.CMMomentumBacktest::GetModelPerformance(sessionParams)]Done, took 29(ms) +[Thread=9][TRACE.VERBOSE][6/12/2025 10:06:31 AM] [PortfolioManager.ViewModels.GainLossViewModel::HandleSelectedSymbol()]HandleSelectedSymbol:{ALL} +[Thread=9][TRACE.VERBOSE][6/12/2025 10:06:31 AM] [PortfolioManager.ViewModels.GainLossViewModel::HandleSelectedSymbol()][GainLossViewModel::OnGainLossViewModelPropertyChanged]SelectedSymbol '{ALL}' +[Thread=9][TRACE.VERBOSE][6/12/2025 10:06:35 AM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]GeneratingActiveGainLoss +[Thread=9][TRACE.VERBOSE][6/12/2025 10:06:35 AM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]GeneratingTotalGainLoss) +[Thread=9][TRACE.VERBOSE][6/12/2025 10:06:35 AM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]Date:6/12/2025 TotalGainLoss:$91,822.67 +[Thread=9][TRACE.VERBOSE][6/12/2025 10:06:36 AM] [MarketData.MarketDataModel.GainLoss.GainLossSummaryItemCollection::.ctor(portfolioTrades,gainLossGenerator,activeGainLossGenerator,maxDateRef)][GainLossSummaryItemCollection] Done, took 374(ms) +[Thread=1][TRACE.DEBUG][6/12/2025 10:07:38 AM] [PortfolioManager.App+<>c__DisplayClass1_1::b__1(,)]ClosingHandler +[Thread=1][TRACE.VERBOSE][6/12/2025 10:07:38 AM] [MarketData.Cache.LocalPriceCache::Dispose()][LocalPriceCache:Dispose]Thread state is 'WaitSleepJoin'. Joining main thread... +[Thread=16][TRACE.VERBOSE][6/12/2025 10:07:39 AM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Thread ended. Items in cache:0 +[Thread=1][TRACE.VERBOSE][6/12/2025 10:07:39 AM] [MarketData.Cache.LocalPriceCache::Dispose()][LocalPriceCache:Dispose] End +[Thread=1][TRACE.VERBOSE][6/12/2025 10:07:39 AM] [MarketData.Cache.GBPriceCache::Dispose()][GBPriceCache:Dispose]Thread state is 'WaitSleepJoin'. Joining main thread... +[Thread=18][TRACE.VERBOSE][6/12/2025 10:07:39 AM] [MarketData.Cache.GBPriceCache::ThreadProc()][GBPriceCache:ThreadProc]Thread ended. +[Thread=1][TRACE.VERBOSE][6/12/2025 10:07:39 AM] [MarketData.Cache.GBPriceCache::Dispose()][GBPriceCache:Dispose] End. +[Thread=1][TRACE.VERBOSE][6/12/2025 10:38:57 AM] [PortfolioManager.Program::Main(args)][STARTING] +[Thread=7][TRACE.VERBOSE][6/12/2025 10:38:58 AM] [MarketData.Generator.MGSHMomentum.MGSHMomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 315(ms) +[Thread=7][TRACE.VERBOSE][6/12/2025 10:38:58 AM] [MarketData.Generator.MGSHMomentum.MGSHMomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 100(ms) +[Thread=9][TRACE.VERBOSE][6/12/2025 10:38:59 AM] [MarketData.Generator.CMTrend.CMTTrendModel::GetModelPerformance(sessionParams)]Done, total took 1676(ms) +[Thread=11][TRACE.VERBOSE][6/12/2025 10:39:00 AM] [MarketData.Generator.CMMomentum.CMMomentumBacktest::GetModelPerformance(sessionParams)]Done, took 1933(ms) +[Thread=11][TRACE.VERBOSE][6/12/2025 10:39:00 AM] [MarketData.Generator.CMMomentum.CMMomentumBacktest::GetModelPerformance(sessionParams)]Done, took 48(ms) +[Thread=10][TRACE.VERBOSE][6/12/2025 10:39:00 AM] [MarketData.Generator.Momentum.MomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 2405(ms) +[Thread=9][TRACE.VERBOSE][6/12/2025 10:39:00 AM] [MarketData.Generator.CMTrend.CMTTrendModel::GetModelPerformance(sessionParams)]Done, total took 29(ms) +[Thread=10][TRACE.VERBOSE][6/12/2025 10:39:00 AM] [MarketData.Generator.Momentum.MomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 54(ms) +[Thread=10][TRACE.VERBOSE][6/12/2025 10:39:05 AM] [PortfolioManager.ViewModels.GainLossViewModel::HandleSelectedSymbol()]HandleSelectedSymbol:{ALL} +[Thread=10][TRACE.VERBOSE][6/12/2025 10:39:05 AM] [PortfolioManager.ViewModels.GainLossViewModel::HandleSelectedSymbol()][GainLossViewModel::OnGainLossViewModelPropertyChanged]SelectedSymbol '{ALL}' +[Thread=10][TRACE.VERBOSE][6/12/2025 10:39:08 AM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]GeneratingActiveGainLoss +[Thread=10][TRACE.VERBOSE][6/12/2025 10:39:09 AM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]GeneratingTotalGainLoss) +[Thread=10][TRACE.VERBOSE][6/12/2025 10:39:09 AM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]Date:6/12/2025 TotalGainLoss:$91,872.84 +[Thread=10][TRACE.VERBOSE][6/12/2025 10:39:09 AM] [MarketData.MarketDataModel.GainLoss.GainLossSummaryItemCollection::.ctor(portfolioTrades,gainLossGenerator,activeGainLossGenerator,maxDateRef)][GainLossSummaryItemCollection] Done, took 371(ms) +[Thread=1][TRACE.VERBOSE][6/12/2025 10:39:22 AM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 38(ms) +[Thread=1][TRACE.VERBOSE][6/12/2025 10:39:22 AM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 29(ms) +[Thread=1][TRACE.VERBOSE][6/12/2025 10:39:28 AM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 48(ms) +[Thread=1][TRACE.VERBOSE][6/12/2025 10:39:28 AM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 51(ms) +[Thread=1][TRACE.VERBOSE][6/12/2025 10:39:30 AM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 38(ms) +[Thread=1][TRACE.VERBOSE][6/12/2025 10:39:30 AM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 31(ms) +[Thread=1][TRACE.VERBOSE][6/12/2025 10:39:31 AM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 42(ms) +[Thread=1][TRACE.VERBOSE][6/12/2025 10:39:31 AM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 30(ms) +[Thread=1][TRACE.VERBOSE][6/12/2025 10:39:33 AM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 51(ms) +[Thread=1][TRACE.VERBOSE][6/12/2025 10:39:33 AM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 45(ms) +[Thread=1][TRACE.VERBOSE][6/12/2025 10:39:34 AM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 46(ms) +[Thread=1][TRACE.VERBOSE][6/12/2025 10:39:34 AM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 41(ms) +[Thread=18][TRACE.VERBOSE][6/12/2025 10:41:02 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 10:43:04 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 10:44:02 AM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 10:45:06 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 10:47:08 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 10:49:06 AM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 10:49:10 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 10:51:12 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 10:53:15 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 10:54:10 AM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 10:55:17 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 10:57:19 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 10:59:13 AM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 10:59:21 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 11:01:23 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 11:03:25 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 11:04:17 AM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 11:05:28 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 11:07:30 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 11:09:21 AM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 11:09:32 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 11:11:34 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 11:13:35 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 11:14:24 AM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 11:15:37 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 11:17:39 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 11:19:27 AM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 11:19:41 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 11:21:42 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 11:23:44 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 11:24:29 AM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 11:25:46 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 11:27:47 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 11:29:32 AM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 11:29:49 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Visual] windows::UI::Composition::ICompositor5.RequestCommitAsync timed out, force-triggering next tick (RunLoopHandler #65314045) +[Thread=18][TRACE.VERBOSE][6/12/2025 11:31:51 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 11:33:53 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 11:34:35 AM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 11:35:55 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 11:37:57 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 11:39:39 AM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 11:39:59 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 11:42:02 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 11:44:04 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 11:44:43 AM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 11:46:06 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 11:48:09 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 11:49:48 AM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 11:50:11 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 11:52:13 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 11:54:16 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 11:54:52 AM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 11:56:18 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 11:58:21 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 11:59:57 AM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 12:00:23 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 12:02:25 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 12:04:28 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 12:05:01 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 12:06:30 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 12:08:32 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 12:10:05 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 12:10:35 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 12:12:37 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 12:14:40 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 12:15:10 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 12:16:42 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 12:18:44 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 12:20:14 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 12:20:47 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 12:22:49 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 12:24:52 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 12:25:19 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 12:26:54 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 12:28:56 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 12:30:23 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 12:30:59 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 12:33:01 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 12:35:04 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 12:35:28 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 12:37:06 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 12:39:08 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 12:40:32 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 12:41:11 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 12:43:13 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 12:45:15 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 12:45:37 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 12:47:18 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 12:49:20 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 12:50:41 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 12:51:22 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 12:53:25 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 12:55:27 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 12:55:45 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 12:57:30 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 12:59:32 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 1:00:50 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 1:01:34 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 1:03:37 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 1:05:39 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 1:05:54 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 1:07:41 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 1:09:44 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 1:10:59 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 1:11:46 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 1:13:49 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 1:15:51 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 1:16:03 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 1:17:53 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 1:19:56 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 1:21:07 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 1:21:58 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 1:24:00 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 1:26:03 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 1:26:12 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 1:28:05 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 1:30:07 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 1:31:16 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 1:32:10 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 1:34:12 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Visual] windows::UI::Composition::ICompositor5.RequestCommitAsync timed out, force-triggering next tick (RunLoopHandler #65314045) +[Thread=18][TRACE.VERBOSE][6/12/2025 1:36:14 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 1:36:20 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 1:38:17 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 1:40:19 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 1:41:25 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 1:42:21 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 1:44:24 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 1:46:26 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 1:46:30 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 1:48:29 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 1:50:31 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 1:51:34 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 1:52:34 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 1:54:36 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 1:56:38 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 1:56:38 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 1:58:41 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 2:00:43 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 2:01:43 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 2:02:45 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 2:04:48 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 2:06:47 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 2:06:50 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 2:08:53 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 2:10:55 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 2:11:52 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 2:12:57 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 2:15:00 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 2:16:56 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 2:17:02 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 2:19:04 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 2:21:07 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 2:22:00 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 2:23:09 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Visual] windows::UI::Composition::ICompositor5.RequestCommitAsync timed out, force-triggering next tick (RunLoopHandler #65314045) +[Thread=1][TRACE.VERBOSE][6/12/2025 2:24:03 PM] [PortfolioManager.ViewModels.GainLossViewModel::HandleSelectedSymbol()]HandleSelectedSymbol:{ALL} +[Thread=1][TRACE.VERBOSE][6/12/2025 2:24:03 PM] [PortfolioManager.ViewModels.GainLossViewModel::HandleSelectedSymbol()][GainLossViewModel::OnGainLossViewModelPropertyChanged]SelectedSymbol '{ALL}' +[Thread=25][TRACE.VERBOSE][6/12/2025 2:24:05 PM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]GeneratingActiveGainLoss +[Thread=25][TRACE.VERBOSE][6/12/2025 2:24:05 PM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]GeneratingTotalGainLoss) +[Thread=25][TRACE.VERBOSE][6/12/2025 2:24:05 PM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]Date:6/12/2025 TotalGainLoss:$92,017.80 +[Thread=25][TRACE.VERBOSE][6/12/2025 2:24:05 PM] [MarketData.MarketDataModel.GainLoss.GainLossSummaryItemCollection::.ctor(portfolioTrades,gainLossGenerator,activeGainLossGenerator,maxDateRef)][GainLossSummaryItemCollection] Done, took 337(ms) +[Thread=1][TRACE.VERBOSE][6/12/2025 2:24:10 PM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 40(ms) +[Thread=1][TRACE.VERBOSE][6/12/2025 2:24:10 PM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 33(ms) +[Thread=1][TRACE.VERBOSE][6/12/2025 2:24:10 PM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 42(ms) +[Thread=1][TRACE.VERBOSE][6/12/2025 2:24:10 PM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 27(ms) +[Thread=1][TRACE.VERBOSE][6/12/2025 2:24:16 PM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 49(ms) +[Thread=1][TRACE.VERBOSE][6/12/2025 2:24:16 PM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 54(ms) +[Thread=18][TRACE.VERBOSE][6/12/2025 2:25:11 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 2:27:05 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 2:27:14 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 2:29:16 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 2:31:18 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 2:32:09 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 2:33:21 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 2:35:23 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 2:37:14 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 2:37:26 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 2:39:28 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=1][TRACE.VERBOSE][6/12/2025 2:40:39 PM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 97(ms) +[Thread=1][TRACE.VERBOSE][6/12/2025 2:40:39 PM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 33(ms) +[Thread=18][TRACE.VERBOSE][6/12/2025 2:41:30 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=17][TRACE.VERBOSE][6/12/2025 2:42:02 PM] [MarketData.Generator.MGSHMomentum.MGSHMomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 42(ms) +[Thread=17][TRACE.VERBOSE][6/12/2025 2:42:03 PM] [MarketData.Generator.MGSHMomentum.MGSHMomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 39(ms) +[Thread=17][TRACE.VERBOSE][6/12/2025 2:42:06 PM] [MarketData.Generator.CMTrend.CMTTrendModel::GetModelPerformance(sessionParams)]Done, total took 22(ms) +[Thread=17][TRACE.VERBOSE][6/12/2025 2:42:06 PM] [MarketData.Generator.CMTrend.CMTTrendModel::GetModelPerformance(sessionParams)]Done, total took 29(ms) +[Thread=40][TRACE.VERBOSE][6/12/2025 2:42:09 PM] [MarketData.Generator.Momentum.MomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 70(ms) +[Thread=40][TRACE.VERBOSE][6/12/2025 2:42:09 PM] [MarketData.Generator.Momentum.MomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 64(ms) +[Thread=17][TRACE.VERBOSE][6/12/2025 2:42:13 PM] [MarketData.Generator.CMMomentum.CMMomentumBacktest::GetModelPerformance(sessionParams)]Done, took 42(ms) +[Thread=17][TRACE.VERBOSE][6/12/2025 2:42:13 PM] [MarketData.Generator.CMMomentum.CMMomentumBacktest::GetModelPerformance(sessionParams)]Done, took 27(ms) +[Thread=16][TRACE.VERBOSE][6/12/2025 2:42:18 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,207. +[Thread=18][TRACE.VERBOSE][6/12/2025 2:43:33 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 2:45:35 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 2:47:22 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,207. +[Thread=18][TRACE.VERBOSE][6/12/2025 2:47:38 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 2:49:40 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 2:51:42 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 2:52:27 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,207. +[Thread=18][TRACE.VERBOSE][6/12/2025 2:53:45 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=19][TRACE.VERBOSE][6/12/2025 2:55:28 PM] [MarketData.Generator.MGSHMomentum.MGSHMomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 26(ms) +[Thread=19][TRACE.VERBOSE][6/12/2025 2:55:28 PM] [MarketData.Generator.MGSHMomentum.MGSHMomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 26(ms) +[Thread=19][TRACE.VERBOSE][6/12/2025 2:55:33 PM] [MarketData.Generator.CMTrend.CMTTrendModel::GetModelPerformance(sessionParams)]Done, total took 23(ms) +[Thread=19][TRACE.VERBOSE][6/12/2025 2:55:34 PM] [MarketData.Generator.CMTrend.CMTTrendModel::GetModelPerformance(sessionParams)]Done, total took 18(ms) +[Thread=21][TRACE.VERBOSE][6/12/2025 2:55:37 PM] [MarketData.Generator.Momentum.MomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 70(ms) +[Thread=21][TRACE.VERBOSE][6/12/2025 2:55:38 PM] [MarketData.Generator.Momentum.MomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 47(ms) +[Thread=9][TRACE.VERBOSE][6/12/2025 2:55:41 PM] [MarketData.Generator.CMMomentum.CMMomentumBacktest::GetModelPerformance(sessionParams)]Done, took 30(ms) +[Thread=9][TRACE.VERBOSE][6/12/2025 2:55:41 PM] [MarketData.Generator.CMMomentum.CMMomentumBacktest::GetModelPerformance(sessionParams)]Done, took 60(ms) +[Thread=1][TRACE.VERBOSE][6/12/2025 2:55:46 PM] [PortfolioManager.ViewModels.GainLossViewModel::HandleSelectedSymbol()]HandleSelectedSymbol:{ALL} +[Thread=1][TRACE.VERBOSE][6/12/2025 2:55:46 PM] [PortfolioManager.ViewModels.GainLossViewModel::HandleSelectedSymbol()][GainLossViewModel::OnGainLossViewModelPropertyChanged]SelectedSymbol '{ALL}' +[Thread=18][TRACE.VERBOSE][6/12/2025 2:55:47 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=21][TRACE.VERBOSE][6/12/2025 2:55:47 PM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]GeneratingActiveGainLoss +[Thread=21][TRACE.VERBOSE][6/12/2025 2:55:48 PM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]GeneratingTotalGainLoss) +[Thread=21][TRACE.VERBOSE][6/12/2025 2:55:48 PM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]Date:6/12/2025 TotalGainLoss:$92,026.04 +[Thread=21][TRACE.VERBOSE][6/12/2025 2:55:48 PM] [MarketData.MarketDataModel.GainLoss.GainLossSummaryItemCollection::.ctor(portfolioTrades,gainLossGenerator,activeGainLossGenerator,maxDateRef)][GainLossSummaryItemCollection] Done, took 329(ms) +[Thread=16][TRACE.VERBOSE][6/12/2025 2:57:31 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 2:57:49 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 2:59:52 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 3:01:54 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 3:02:36 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 3:03:56 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 3:05:59 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 3:07:40 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 3:08:01 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 3:10:04 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 3:12:06 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 3:12:44 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 3:14:08 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 3:16:11 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 3:17:49 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 3:18:13 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 3:20:16 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 3:22:18 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 3:22:53 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 3:24:20 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 3:26:23 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 3:27:58 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 3:28:25 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 3:30:27 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 3:32:30 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 3:33:02 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 3:34:32 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 3:36:35 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 3:38:07 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 3:38:37 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 3:40:39 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 3:42:42 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 3:43:11 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 3:44:44 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 3:46:47 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 3:48:16 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 3:48:49 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 3:50:51 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 3:52:54 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 3:53:20 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 3:54:56 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 3:56:58 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 3:58:24 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 3:59:01 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 4:01:03 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 4:03:06 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 4:03:29 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 4:05:08 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 4:07:10 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 4:08:33 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 4:09:13 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 4:11:15 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 4:13:17 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 4:13:37 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 4:15:19 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 4:17:22 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 4:18:41 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 4:19:24 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 4:21:26 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 4:23:28 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 4:23:46 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 4:25:31 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 4:27:33 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 4:28:50 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 4:29:35 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 4:31:38 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 4:33:40 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 4:33:54 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 4:35:42 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 4:37:44 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 4:38:58 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 4:39:47 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 4:41:49 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 4:43:51 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 4:44:03 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 4:45:54 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 4:47:56 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 4:49:07 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 4:49:58 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 4:52:01 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 4:54:03 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 4:54:11 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 4:56:05 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 4:58:08 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 4:59:16 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 5:00:10 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 5:02:13 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 5:04:15 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 5:04:20 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 5:06:17 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 5:08:19 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 5:09:24 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 5:10:22 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 5:12:24 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 5:14:27 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 5:14:29 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 5:16:29 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 5:18:32 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 5:19:33 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 5:20:34 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 5:22:36 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 5:24:38 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 5:24:39 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 5:26:41 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 5:28:43 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 5:29:42 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 5:30:46 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 5:32:48 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 5:34:46 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 5:34:50 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 5:36:53 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 5:38:55 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 5:39:51 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 5:40:57 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 5:43:00 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 5:44:55 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 5:45:02 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 5:47:04 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 5:49:07 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 5:49:59 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 5:51:09 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 5:53:11 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 5:55:04 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 5:55:14 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 5:57:16 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 5:59:19 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 6:00:08 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 6:01:21 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 6:03:23 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 6:05:12 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 6:05:26 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 6:07:28 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 6:09:30 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 6:10:17 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 6:11:33 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 6:13:35 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 6:15:21 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 6:15:37 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 6:17:40 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 6:19:42 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 6:20:26 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 6:21:44 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 6:23:47 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 6:25:30 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 6:25:49 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 6:27:51 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Visual] windows::UI::Composition::ICompositor5.RequestCommitAsync timed out, force-triggering next tick (RunLoopHandler #65314045) +[Thread=18][TRACE.VERBOSE][6/12/2025 6:29:54 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 6:30:34 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 6:31:55 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 6:33:57 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 6:35:36 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Thread=18][TRACE.VERBOSE][6/12/2025 6:35:58 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 6:38:00 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/12/2025 6:40:02 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/12/2025 6:40:39 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,273. +[Visual] windows::UI::Composition::ICompositor5.RequestCommitAsync timed out, force-triggering next tick (RunLoopHandler #65314045) +[Thread=32][TRACE.VERBOSE][6/12/2025 6:41:04 PM] [PortfolioManager.ViewModels.GainLossViewModel::HandleSelectedSymbol()]HandleSelectedSymbol:{ALL} +[Thread=32][TRACE.VERBOSE][6/12/2025 6:41:04 PM] [PortfolioManager.ViewModels.GainLossViewModel::HandleSelectedSymbol()][GainLossViewModel::OnGainLossViewModelPropertyChanged]SelectedSymbol '{ALL}' +[Thread=32][TRACE.VERBOSE][6/12/2025 6:41:06 PM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]GeneratingActiveGainLoss +[Thread=32][TRACE.VERBOSE][6/12/2025 6:41:06 PM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]GeneratingTotalGainLoss) +[Thread=32][TRACE.VERBOSE][6/12/2025 6:41:06 PM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]Date:6/12/2025 TotalGainLoss:$92,039.68 +[Thread=32][TRACE.VERBOSE][6/12/2025 6:41:06 PM] [MarketData.MarketDataModel.GainLoss.GainLossSummaryItemCollection::.ctor(portfolioTrades,gainLossGenerator,activeGainLossGenerator,maxDateRef)][GainLossSummaryItemCollection] Done, took 375(ms) +[Thread=1][TRACE.VERBOSE][6/12/2025 6:41:09 PM] [PortfolioManager.ViewModels.GainLossViewModel::HandleSelectedSymbol()]HandleSelectedSymbol:{ALL} +[Thread=1][TRACE.VERBOSE][6/12/2025 6:41:09 PM] [PortfolioManager.ViewModels.GainLossViewModel::HandleSelectedSymbol()][GainLossViewModel::OnGainLossViewModelPropertyChanged]SelectedSymbol '{ALL}' +[Thread=32][TRACE.VERBOSE][6/12/2025 6:41:11 PM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]GeneratingActiveGainLoss +[Thread=32][TRACE.VERBOSE][6/12/2025 6:41:11 PM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]GeneratingTotalGainLoss) +[Thread=32][TRACE.VERBOSE][6/12/2025 6:41:11 PM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]Date:6/12/2025 TotalGainLoss:$92,039.68 +[Thread=32][TRACE.VERBOSE][6/12/2025 6:41:12 PM] [MarketData.MarketDataModel.GainLoss.GainLossSummaryItemCollection::.ctor(portfolioTrades,gainLossGenerator,activeGainLossGenerator,maxDateRef)][GainLossSummaryItemCollection] Done, took 360(ms) +[Thread=32][TRACE.VERBOSE][6/12/2025 6:41:22 PM] [MarketData.Generator.MGSHMomentum.MGSHMomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 32(ms) +[Thread=32][TRACE.VERBOSE][6/12/2025 6:41:22 PM] [MarketData.Generator.MGSHMomentum.MGSHMomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 48(ms) +[Thread=50][TRACE.VERBOSE][6/12/2025 6:41:25 PM] [MarketData.Generator.MGSHMomentum.MGSHMomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 32(ms) +[Thread=50][TRACE.VERBOSE][6/12/2025 6:41:25 PM] [MarketData.Generator.MGSHMomentum.MGSHMomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 31(ms) +[Thread=1][TRACE.VERBOSE][6/12/2025 6:41:30 PM] [PortfolioManager.ViewModels.GainLossViewModel::HandleSelectedSymbol()]HandleSelectedSymbol:{ALL} +[Thread=1][TRACE.VERBOSE][6/12/2025 6:41:30 PM] [PortfolioManager.ViewModels.GainLossViewModel::HandleSelectedSymbol()][GainLossViewModel::OnGainLossViewModelPropertyChanged]SelectedSymbol '{ALL}' +[Thread=32][TRACE.VERBOSE][6/12/2025 6:41:36 PM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]GeneratingActiveGainLoss +[Thread=32][TRACE.VERBOSE][6/12/2025 6:41:36 PM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]GeneratingTotalGainLoss) +[Thread=32][TRACE.VERBOSE][6/12/2025 6:41:36 PM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]Date:6/12/2025 TotalGainLoss:$92,039.68 +[Thread=32][TRACE.VERBOSE][6/12/2025 6:41:36 PM] [MarketData.MarketDataModel.GainLoss.GainLossSummaryItemCollection::.ctor(portfolioTrades,gainLossGenerator,activeGainLossGenerator,maxDateRef)][GainLossSummaryItemCollection] Done, took 369(ms) +[Thread=50][TRACE.VERBOSE][6/12/2025 6:41:48 PM] [PortfolioManager.ViewModels.GainLossViewModel::HandleSelectedSymbol()]HandleSelectedSymbol:{ALL} +[Thread=50][TRACE.VERBOSE][6/12/2025 6:41:48 PM] [PortfolioManager.ViewModels.GainLossViewModel::HandleSelectedSymbol()][GainLossViewModel::OnGainLossViewModelPropertyChanged]SelectedSymbol '{ALL}' +[Thread=32][TRACE.VERBOSE][6/12/2025 6:41:50 PM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]GeneratingActiveGainLoss +[Thread=32][TRACE.VERBOSE][6/12/2025 6:41:50 PM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]GeneratingTotalGainLoss) +[Thread=32][TRACE.VERBOSE][6/12/2025 6:41:50 PM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]Date:6/12/2025 TotalGainLoss:$92,039.68 +[Thread=32][TRACE.VERBOSE][6/12/2025 6:41:51 PM] [MarketData.MarketDataModel.GainLoss.GainLossSummaryItemCollection::.ctor(portfolioTrades,gainLossGenerator,activeGainLossGenerator,maxDateRef)][GainLossSummaryItemCollection] Done, took 342(ms) +[Thread=1][TRACE.DEBUG][6/12/2025 6:42:01 PM] [PortfolioManager.App+<>c__DisplayClass1_1::b__1(,)]ClosingHandler +[Thread=1][TRACE.VERBOSE][6/12/2025 6:42:01 PM] [MarketData.Cache.LocalPriceCache::Dispose()][LocalPriceCache:Dispose]Thread state is 'WaitSleepJoin'. Joining main thread... +[Thread=16][TRACE.VERBOSE][6/12/2025 6:42:01 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Thread ended. Items in cache:408,273 +[Thread=1][TRACE.VERBOSE][6/12/2025 6:42:01 PM] [MarketData.Cache.LocalPriceCache::Dispose()][LocalPriceCache:Dispose] End +[Thread=1][TRACE.VERBOSE][6/12/2025 6:42:01 PM] [MarketData.Cache.GBPriceCache::Dispose()][GBPriceCache:Dispose]Thread state is 'WaitSleepJoin'. Joining main thread... +[Thread=18][TRACE.VERBOSE][6/12/2025 6:42:02 PM] [MarketData.Cache.GBPriceCache::ThreadProc()][GBPriceCache:ThreadProc]Thread ended. +[Thread=1][TRACE.VERBOSE][6/12/2025 6:42:02 PM] [MarketData.Cache.GBPriceCache::Dispose()][GBPriceCache:Dispose] End. +[Thread=1][TRACE.VERBOSE][6/13/2025 9:04:40 AM] [PortfolioManager.Program::Main(args)][STARTING] +[Thread=7][TRACE.VERBOSE][6/13/2025 9:04:41 AM] [MarketData.Generator.MGSHMomentum.MGSHMomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 301(ms) +[Thread=7][TRACE.VERBOSE][6/13/2025 9:04:42 AM] [MarketData.Generator.MGSHMomentum.MGSHMomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 92(ms) +[Thread=9][TRACE.VERBOSE][6/13/2025 9:04:43 AM] [MarketData.Generator.CMTrend.CMTTrendModel::GetModelPerformance(sessionParams)]Done, total took 1619(ms) +[Thread=11][TRACE.VERBOSE][6/13/2025 9:04:43 AM] [MarketData.Generator.CMMomentum.CMMomentumBacktest::GetModelPerformance(sessionParams)]Done, took 1842(ms) +[Thread=11][TRACE.VERBOSE][6/13/2025 9:04:43 AM] [MarketData.Generator.CMMomentum.CMMomentumBacktest::GetModelPerformance(sessionParams)]Done, took 44(ms) +[Thread=10][TRACE.VERBOSE][6/13/2025 9:04:43 AM] [MarketData.Generator.Momentum.MomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 2289(ms) +[Thread=9][TRACE.VERBOSE][6/13/2025 9:04:44 AM] [MarketData.Generator.CMTrend.CMTTrendModel::GetModelPerformance(sessionParams)]Done, total took 28(ms) +[Thread=10][TRACE.VERBOSE][6/13/2025 9:04:44 AM] [MarketData.Generator.Momentum.MomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 64(ms) +[Thread=10][TRACE.VERBOSE][6/13/2025 9:04:55 AM] [MarketData.Generator.CMMomentum.CMMomentumBacktest::GetModelPerformance(sessionParams)]Done, took 149(ms) +[Thread=10][TRACE.VERBOSE][6/13/2025 9:04:55 AM] [MarketData.Generator.CMMomentum.CMMomentumBacktest::GetModelPerformance(sessionParams)]Done, took 147(ms) +[Thread=9][TRACE.VERBOSE][6/13/2025 9:04:57 AM] [PortfolioManager.ViewModels.GainLossViewModel::HandleSelectedSymbol()]HandleSelectedSymbol:{ALL} +[Thread=9][TRACE.VERBOSE][6/13/2025 9:04:57 AM] [PortfolioManager.ViewModels.GainLossViewModel::HandleSelectedSymbol()][GainLossViewModel::OnGainLossViewModelPropertyChanged]SelectedSymbol '{ALL}' +[Thread=9][TRACE.VERBOSE][6/13/2025 9:05:00 AM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]GeneratingActiveGainLoss +[Thread=9][TRACE.VERBOSE][6/13/2025 9:05:01 AM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]GeneratingTotalGainLoss) +[Thread=9][TRACE.VERBOSE][6/13/2025 9:05:01 AM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]Date:6/13/2025 TotalGainLoss:$93,929.64 +[Thread=9][TRACE.VERBOSE][6/13/2025 9:05:01 AM] [MarketData.MarketDataModel.GainLoss.GainLossSummaryItemCollection::.ctor(portfolioTrades,gainLossGenerator,activeGainLossGenerator,maxDateRef)][GainLossSummaryItemCollection] Done, took 393(ms) +[Thread=9][TRACE.VERBOSE][6/13/2025 9:05:06 AM] [PortfolioManager.ViewModels.GainLossViewModel::HandleSelectedSymbol()]HandleSelectedSymbol:{ALL} +[Thread=9][TRACE.VERBOSE][6/13/2025 9:05:06 AM] [PortfolioManager.ViewModels.GainLossViewModel::HandleSelectedSymbol()][GainLossViewModel::OnGainLossViewModelPropertyChanged]SelectedSymbol '{ALL}' +[Thread=10][TRACE.VERBOSE][6/13/2025 9:05:07 AM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]GeneratingActiveGainLoss +[Thread=10][TRACE.VERBOSE][6/13/2025 9:05:08 AM] [MarketData.Generator.GainLoss.GainLossHelper::GetGainLoss(holdingDate,portfolioTrade)]No price for SPY on 06-13-2025 +[Thread=10][TRACE.VERBOSE][6/13/2025 9:05:08 AM] [MarketData.Generator.GainLoss.GainLossHelper::GetMarketValue(holdingDate,portfolioTrade)]No price for SPY on 06-13-2025 +[Thread=10][TRACE.VERBOSE][6/13/2025 9:05:08 AM] [MarketData.Generator.GainLoss.GainLossHelper::GetGainLoss(holdingDate,portfolioTrade)]No price for SPY on 06-13-2025 +[Thread=10][TRACE.VERBOSE][6/13/2025 9:05:08 AM] [MarketData.Generator.GainLoss.GainLossHelper::GetMarketValue(holdingDate,portfolioTrade)]No price for SPY on 06-13-2025 +[Thread=10][TRACE.VERBOSE][6/13/2025 9:05:08 AM] [MarketData.Generator.GainLoss.GainLossHelper::GetGainLoss(holdingDate,portfolioTrade)]No price for SPY on 06-13-2025 +[Thread=10][TRACE.VERBOSE][6/13/2025 9:05:08 AM] [MarketData.Generator.GainLoss.GainLossHelper::GetMarketValue(holdingDate,portfolioTrade)]No price for SPY on 06-13-2025 +[Thread=10][TRACE.VERBOSE][6/13/2025 9:05:08 AM] [MarketData.Generator.GainLoss.GainLossHelper::GetGainLoss(holdingDate,portfolioTrade)]No price for SPY on 06-13-2025 +[Thread=10][TRACE.VERBOSE][6/13/2025 9:05:08 AM] [MarketData.Generator.GainLoss.GainLossHelper::GetMarketValue(holdingDate,portfolioTrade)]No price for SPY on 06-13-2025 +[Thread=10][TRACE.VERBOSE][6/13/2025 9:05:08 AM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]GeneratingTotalGainLoss) +[Thread=10][TRACE.VERBOSE][6/13/2025 9:05:08 AM] [MarketData.Generator.GainLoss.GainLossGeneratorCum::GenerateTotalGainLoss(portfolioTrades,maxDateRef)]No price for SPY on 6/13/2025 +[Thread=10][TRACE.VERBOSE][6/13/2025 9:05:08 AM] [MarketData.Generator.GainLoss.GainLossGeneratorCum::GenerateTotalGainLoss(portfolioTrades,maxDateRef)]No price for SPY on 6/13/2025 +[Thread=10][TRACE.VERBOSE][6/13/2025 9:05:08 AM] [MarketData.Generator.GainLoss.GainLossGeneratorCum::GenerateTotalGainLoss(portfolioTrades,maxDateRef)]No price for SPY on 6/13/2025 +[Thread=10][TRACE.VERBOSE][6/13/2025 9:05:08 AM] [MarketData.Generator.GainLoss.GainLossGeneratorCum::GenerateTotalGainLoss(portfolioTrades,maxDateRef)]No price for SPY on 6/13/2025 +[Thread=10][TRACE.VERBOSE][6/13/2025 9:05:08 AM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]Date:6/13/2025 TotalGainLoss:$88,841.70 +[Thread=10][TRACE.VERBOSE][6/13/2025 9:05:08 AM] [MarketData.Generator.GainLoss.GainLossHelper::GetGainLoss(holdingDate,portfolioTrade)]No price for SPY on 06-13-2025 +[Thread=10][TRACE.VERBOSE][6/13/2025 9:05:08 AM] [MarketData.Generator.GainLoss.GainLossHelper::GetMarketValue(holdingDate,portfolioTrade)]No price for SPY on 06-13-2025 +[Thread=10][TRACE.VERBOSE][6/13/2025 9:05:08 AM] [MarketData.Generator.GainLoss.GainLossHelper::GetGainLoss(holdingDate,portfolioTrade)]No price for SPY on 06-13-2025 +[Thread=10][TRACE.VERBOSE][6/13/2025 9:05:08 AM] [MarketData.Generator.GainLoss.GainLossHelper::GetMarketValue(holdingDate,portfolioTrade)]No price for SPY on 06-13-2025 +[Thread=10][TRACE.VERBOSE][6/13/2025 9:05:08 AM] [MarketData.Generator.GainLoss.GainLossHelper::GetGainLoss(holdingDate,portfolioTrade)]No price for SPY on 06-13-2025 +[Thread=10][TRACE.VERBOSE][6/13/2025 9:05:08 AM] [MarketData.Generator.GainLoss.GainLossHelper::GetMarketValue(holdingDate,portfolioTrade)]No price for SPY on 06-13-2025 +[Thread=10][TRACE.VERBOSE][6/13/2025 9:05:08 AM] [MarketData.Generator.GainLoss.GainLossHelper::GetGainLoss(holdingDate,portfolioTrade)]No price for SPY on 06-13-2025 +[Thread=10][TRACE.VERBOSE][6/13/2025 9:05:08 AM] [MarketData.Generator.GainLoss.GainLossHelper::GetMarketValue(holdingDate,portfolioTrade)]No price for SPY on 06-13-2025 +[Thread=10][TRACE.VERBOSE][6/13/2025 9:05:08 AM] [MarketData.Generator.GainLoss.ActiveGainLossGenerator::GenerateGainLoss(portfolioTrades,maxDateRef)]ActiveGainLossGenerator:GenerateGainLoss 'GainLossHoldings' is null for on 06-13-2025 +[Thread=10][TRACE.VERBOSE][6/13/2025 9:05:08 AM] [MarketData.Generator.GainLoss.GainLossGeneratorCum::GenerateTotalGainLoss(portfolioTrades,maxDateRef)]No price for SPY on 6/13/2025 +[Thread=10][TRACE.VERBOSE][6/13/2025 9:05:08 AM] [MarketData.Generator.GainLoss.GainLossGeneratorCum::GenerateTotalGainLoss(portfolioTrades,maxDateRef)]No price for SPY on 6/13/2025 +[Thread=10][TRACE.VERBOSE][6/13/2025 9:05:08 AM] [MarketData.Generator.GainLoss.GainLossGeneratorCum::GenerateTotalGainLoss(portfolioTrades,maxDateRef)]No price for SPY on 6/13/2025 +[Thread=10][TRACE.VERBOSE][6/13/2025 9:05:08 AM] [MarketData.Generator.GainLoss.GainLossGeneratorCum::GenerateTotalGainLoss(portfolioTrades,maxDateRef)]No price for SPY on 6/13/2025 +[Thread=10][TRACE.VERBOSE][6/13/2025 9:05:08 AM] [MarketData.MarketDataModel.GainLoss.GainLossSummaryItemCollection::.ctor(portfolioTrades,gainLossGenerator,activeGainLossGenerator,maxDateRef)][GainLossSummaryItemCollection] Done, took 377(ms) +[Thread=18][TRACE.VERBOSE][6/13/2025 9:06:45 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/13/2025 9:08:47 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/13/2025 9:09:45 AM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,727. +[Thread=18][TRACE.VERBOSE][6/13/2025 9:10:50 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=1][TRACE.VERBOSE][6/13/2025 9:10:53 AM] [PortfolioManager.ViewModels.GainLossViewModel::HandleSelectedSymbol()]HandleSelectedSymbol:{ALL} +[Thread=1][TRACE.VERBOSE][6/13/2025 9:10:53 AM] [PortfolioManager.ViewModels.GainLossViewModel::HandleSelectedSymbol()][GainLossViewModel::OnGainLossViewModelPropertyChanged]SelectedSymbol '{ALL}' +[Thread=20][TRACE.VERBOSE][6/13/2025 9:10:55 AM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]GeneratingActiveGainLoss +[Thread=20][TRACE.VERBOSE][6/13/2025 9:10:55 AM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]GeneratingTotalGainLoss) +[Thread=20][TRACE.VERBOSE][6/13/2025 9:10:55 AM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]Date:6/13/2025 TotalGainLoss:$93,929.64 +[Thread=20][TRACE.VERBOSE][6/13/2025 9:10:55 AM] [MarketData.MarketDataModel.GainLoss.GainLossSummaryItemCollection::.ctor(portfolioTrades,gainLossGenerator,activeGainLossGenerator,maxDateRef)][GainLossSummaryItemCollection] Done, took 335(ms) +[Thread=1][TRACE.DEBUG][6/13/2025 9:11:02 AM] [PortfolioManager.App+<>c__DisplayClass1_1::b__1(,)]ClosingHandler +[Thread=1][TRACE.VERBOSE][6/13/2025 9:11:02 AM] [MarketData.Cache.LocalPriceCache::Dispose()][LocalPriceCache:Dispose]Thread state is 'WaitSleepJoin'. Joining main thread... +[Thread=16][TRACE.VERBOSE][6/13/2025 9:11:02 AM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Thread ended. Items in cache:408,727 +[Thread=1][TRACE.VERBOSE][6/13/2025 9:11:02 AM] [MarketData.Cache.LocalPriceCache::Dispose()][LocalPriceCache:Dispose] End +[Thread=1][TRACE.VERBOSE][6/13/2025 9:11:02 AM] [MarketData.Cache.GBPriceCache::Dispose()][GBPriceCache:Dispose]Thread state is 'WaitSleepJoin'. Joining main thread... +[Thread=18][TRACE.VERBOSE][6/13/2025 9:11:03 AM] [MarketData.Cache.GBPriceCache::ThreadProc()][GBPriceCache:ThreadProc]Thread ended. +[Thread=1][TRACE.VERBOSE][6/13/2025 9:11:03 AM] [MarketData.Cache.GBPriceCache::Dispose()][GBPriceCache:Dispose] End. +[Thread=1][TRACE.VERBOSE][6/13/2025 9:12:16 AM] [PortfolioManager.Program::Main(args)][STARTING] +[Thread=7][TRACE.VERBOSE][6/13/2025 9:12:24 AM] [MarketData.Generator.MGSHMomentum.MGSHMomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 317(ms) +[Thread=7][TRACE.VERBOSE][6/13/2025 9:12:25 AM] [MarketData.Generator.MGSHMomentum.MGSHMomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 126(ms) +[Thread=9][TRACE.VERBOSE][6/13/2025 9:12:27 AM] [MarketData.Generator.CMTrend.CMTTrendModel::GetModelPerformance(sessionParams)]Done, total took 2935(ms) +[Thread=11][TRACE.VERBOSE][6/13/2025 9:12:27 AM] [MarketData.Generator.CMMomentum.CMMomentumBacktest::GetModelPerformance(sessionParams)]Done, took 3321(ms) +[Thread=11][TRACE.VERBOSE][6/13/2025 9:12:27 AM] [MarketData.Generator.CMMomentum.CMMomentumBacktest::GetModelPerformance(sessionParams)]Done, took 52(ms) +[Thread=10][TRACE.VERBOSE][6/13/2025 9:12:28 AM] [MarketData.Generator.Momentum.MomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 3763(ms) +[Thread=9][TRACE.VERBOSE][6/13/2025 9:12:28 AM] [MarketData.Generator.CMTrend.CMTTrendModel::GetModelPerformance(sessionParams)]Done, total took 19(ms) +[Thread=10][TRACE.VERBOSE][6/13/2025 9:12:28 AM] [MarketData.Generator.Momentum.MomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 49(ms) +[Thread=15][TRACE.VERBOSE][6/13/2025 9:13:18 AM] [MarketData.Generator.CMTrend.CMTTrendModel::GetModelPerformance(sessionParams)]Done, total took 20(ms) +[Thread=15][TRACE.VERBOSE][6/13/2025 9:13:18 AM] [MarketData.Generator.CMTrend.CMTTrendModel::GetModelPerformance(sessionParams)]Done, total took 19(ms) +[Thread=1][TRACE.DEBUG][6/13/2025 9:13:31 AM] [PortfolioManager.App+<>c__DisplayClass1_1::b__1(,)]ClosingHandler +[Thread=1][TRACE.VERBOSE][6/13/2025 9:13:31 AM] [MarketData.Cache.LocalPriceCache::Dispose()][LocalPriceCache:Dispose]Thread state is 'WaitSleepJoin'. Joining main thread... +[Thread=16][TRACE.VERBOSE][6/13/2025 9:13:31 AM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Thread ended. Items in cache:0 +[Thread=1][TRACE.VERBOSE][6/13/2025 9:13:31 AM] [MarketData.Cache.LocalPriceCache::Dispose()][LocalPriceCache:Dispose] End +[Thread=1][TRACE.VERBOSE][6/13/2025 9:13:31 AM] [MarketData.Cache.GBPriceCache::Dispose()][GBPriceCache:Dispose]Thread state is 'WaitSleepJoin'. Joining main thread... +[Thread=18][TRACE.VERBOSE][6/13/2025 9:13:31 AM] [MarketData.Cache.GBPriceCache::ThreadProc()][GBPriceCache:ThreadProc]Thread ended. +[Thread=1][TRACE.VERBOSE][6/13/2025 9:13:31 AM] [MarketData.Cache.GBPriceCache::Dispose()][GBPriceCache:Dispose] End. +[Thread=1][TRACE.VERBOSE][6/13/2025 9:13:38 AM] [PortfolioManager.Program::Main(args)][STARTING] +[Thread=7][TRACE.VERBOSE][6/13/2025 9:13:39 AM] [MarketData.Generator.MGSHMomentum.MGSHMomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 294(ms) +[Thread=7][TRACE.VERBOSE][6/13/2025 9:13:40 AM] [MarketData.Generator.MGSHMomentum.MGSHMomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 129(ms) +[Thread=11][TRACE.VERBOSE][6/13/2025 9:13:41 AM] [MarketData.Generator.CMTrend.CMTTrendModel::GetModelPerformance(sessionParams)]Done, total took 1679(ms) +[Thread=10][TRACE.VERBOSE][6/13/2025 9:13:41 AM] [MarketData.Generator.CMMomentum.CMMomentumBacktest::GetModelPerformance(sessionParams)]Done, took 1905(ms) +[Thread=10][TRACE.VERBOSE][6/13/2025 9:13:41 AM] [MarketData.Generator.CMMomentum.CMMomentumBacktest::GetModelPerformance(sessionParams)]Done, took 49(ms) +[Thread=9][TRACE.VERBOSE][6/13/2025 9:13:41 AM] [MarketData.Generator.Momentum.MomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 2375(ms) +[Thread=11][TRACE.VERBOSE][6/13/2025 9:13:41 AM] [MarketData.Generator.CMTrend.CMTTrendModel::GetModelPerformance(sessionParams)]Done, total took 26(ms) +[Thread=9][TRACE.VERBOSE][6/13/2025 9:13:41 AM] [MarketData.Generator.Momentum.MomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 55(ms) +[Thread=18][TRACE.VERBOSE][6/13/2025 9:15:43 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/13/2025 9:17:45 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/13/2025 9:18:43 AM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 445. Items in cache: 46,796. +[Thread=18][TRACE.VERBOSE][6/13/2025 9:19:47 AM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=1][TRACE.DEBUG][6/13/2025 9:19:50 AM] [PortfolioManager.App+<>c__DisplayClass1_1::b__1(,)]ClosingHandler +[Thread=1][TRACE.VERBOSE][6/13/2025 9:19:50 AM] [MarketData.Cache.LocalPriceCache::Dispose()][LocalPriceCache:Dispose]Thread state is 'WaitSleepJoin'. Joining main thread... +[Thread=16][TRACE.VERBOSE][6/13/2025 9:19:50 AM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Thread ended. Items in cache:46,796 +[Thread=1][TRACE.VERBOSE][6/13/2025 9:19:50 AM] [MarketData.Cache.LocalPriceCache::Dispose()][LocalPriceCache:Dispose] End +[Thread=1][TRACE.VERBOSE][6/13/2025 9:19:50 AM] [MarketData.Cache.GBPriceCache::Dispose()][GBPriceCache:Dispose]Thread state is 'WaitSleepJoin'. Joining main thread... +[Thread=18][TRACE.VERBOSE][6/13/2025 9:19:50 AM] [MarketData.Cache.GBPriceCache::ThreadProc()][GBPriceCache:ThreadProc]Thread ended. +[Thread=1][TRACE.VERBOSE][6/13/2025 9:19:50 AM] [MarketData.Cache.GBPriceCache::Dispose()][GBPriceCache:Dispose] End. +[Thread=1][TRACE.VERBOSE][6/13/2025 9:52:31 AM] [PortfolioManager.Program::Main(args)][STARTING] +[Thread=7][TRACE.VERBOSE][6/13/2025 9:52:32 AM] [MarketData.Generator.MGSHMomentum.MGSHMomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 408(ms) +[Thread=7][TRACE.VERBOSE][6/13/2025 9:52:32 AM] [MarketData.Generator.MGSHMomentum.MGSHMomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 90(ms) +[Thread=11][TRACE.VERBOSE][6/13/2025 9:52:33 AM] [MarketData.Generator.CMTrend.CMTTrendModel::GetModelPerformance(sessionParams)]Done, total took 1738(ms) +[Thread=10][TRACE.VERBOSE][6/13/2025 9:52:33 AM] [MarketData.Generator.CMMomentum.CMMomentumBacktest::GetModelPerformance(sessionParams)]Done, took 1953(ms) +[Thread=10][TRACE.VERBOSE][6/13/2025 9:52:33 AM] [MarketData.Generator.CMMomentum.CMMomentumBacktest::GetModelPerformance(sessionParams)]Done, took 47(ms) +[Thread=9][TRACE.VERBOSE][6/13/2025 9:52:34 AM] [MarketData.Generator.Momentum.MomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 2419(ms) +[Thread=11][TRACE.VERBOSE][6/13/2025 9:52:34 AM] [MarketData.Generator.CMTrend.CMTTrendModel::GetModelPerformance(sessionParams)]Done, total took 23(ms) +[Thread=9][TRACE.VERBOSE][6/13/2025 9:52:34 AM] [MarketData.Generator.Momentum.MomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 61(ms) +[Thread=1][TRACE.DEBUG][6/13/2025 9:52:40 AM] [PortfolioManager.App+<>c__DisplayClass1_1::b__1(,)]ClosingHandler +[Thread=1][TRACE.VERBOSE][6/13/2025 9:52:40 AM] [MarketData.Cache.LocalPriceCache::Dispose()][LocalPriceCache:Dispose]Thread state is 'WaitSleepJoin'. Joining main thread... +[Thread=16][TRACE.VERBOSE][6/13/2025 9:52:40 AM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Thread ended. Items in cache:0 +[Thread=1][TRACE.VERBOSE][6/13/2025 9:52:40 AM] [MarketData.Cache.LocalPriceCache::Dispose()][LocalPriceCache:Dispose] End +[Thread=1][TRACE.VERBOSE][6/13/2025 9:52:40 AM] [MarketData.Cache.GBPriceCache::Dispose()][GBPriceCache:Dispose]Thread state is 'WaitSleepJoin'. Joining main thread... +[Thread=18][TRACE.VERBOSE][6/13/2025 9:52:41 AM] [MarketData.Cache.GBPriceCache::ThreadProc()][GBPriceCache:ThreadProc]Thread ended. +[Thread=1][TRACE.VERBOSE][6/13/2025 9:52:41 AM] [MarketData.Cache.GBPriceCache::Dispose()][GBPriceCache:Dispose] End. +[Thread=1][TRACE.VERBOSE][6/13/2025 9:59:14 AM] [PortfolioManager.Program::Main(args)][STARTING] +[Thread=7][TRACE.VERBOSE][6/13/2025 9:59:15 AM] [MarketData.Generator.MGSHMomentum.MGSHMomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 295(ms) +[Thread=7][TRACE.VERBOSE][6/13/2025 9:59:16 AM] [MarketData.Generator.MGSHMomentum.MGSHMomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 90(ms) +[Thread=11][TRACE.VERBOSE][6/13/2025 9:59:17 AM] [MarketData.Generator.CMTrend.CMTTrendModel::GetModelPerformance(sessionParams)]Done, total took 1616(ms) +[Thread=10][TRACE.VERBOSE][6/13/2025 9:59:17 AM] [MarketData.Generator.CMMomentum.CMMomentumBacktest::GetModelPerformance(sessionParams)]Done, took 1860(ms) +[Thread=10][TRACE.VERBOSE][6/13/2025 9:59:17 AM] [MarketData.Generator.CMMomentum.CMMomentumBacktest::GetModelPerformance(sessionParams)]Done, took 47(ms) +[Thread=9][TRACE.VERBOSE][6/13/2025 9:59:17 AM] [MarketData.Generator.Momentum.MomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 2330(ms) +[Thread=11][TRACE.VERBOSE][6/13/2025 9:59:17 AM] [MarketData.Generator.CMTrend.CMTTrendModel::GetModelPerformance(sessionParams)]Done, total took 29(ms) +[Thread=9][TRACE.VERBOSE][6/13/2025 9:59:17 AM] [MarketData.Generator.Momentum.MomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 52(ms) +[Thread=9][TRACE.VERBOSE][6/13/2025 9:59:25 AM] [PortfolioManager.ViewModels.GainLossViewModel::HandleSelectedSymbol()]HandleSelectedSymbol:{ALL} +[Thread=9][TRACE.VERBOSE][6/13/2025 9:59:25 AM] [PortfolioManager.ViewModels.GainLossViewModel::HandleSelectedSymbol()][GainLossViewModel::OnGainLossViewModelPropertyChanged]SelectedSymbol '{ALL}' +[Thread=11][TRACE.VERBOSE][6/13/2025 9:59:29 AM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]GeneratingActiveGainLoss +[Thread=11][TRACE.VERBOSE][6/13/2025 9:59:29 AM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]GeneratingTotalGainLoss) +[Thread=11][TRACE.VERBOSE][6/13/2025 9:59:29 AM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]Date:6/13/2025 TotalGainLoss:$93,572.04 +[Thread=11][TRACE.VERBOSE][6/13/2025 9:59:30 AM] [MarketData.MarketDataModel.GainLoss.GainLossSummaryItemCollection::.ctor(portfolioTrades,gainLossGenerator,activeGainLossGenerator,maxDateRef)][GainLossSummaryItemCollection] Done, took 389(ms) +[Thread=1][TRACE.VERBOSE][6/13/2025 9:59:37 AM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 39(ms) +[Thread=1][TRACE.VERBOSE][6/13/2025 9:59:37 AM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 29(ms) +[Thread=1][TRACE.VERBOSE][6/13/2025 9:59:51 AM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 40(ms) +[Thread=1][TRACE.VERBOSE][6/13/2025 9:59:52 AM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 31(ms) +[Thread=1][TRACE.VERBOSE][6/13/2025 9:59:53 AM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 37(ms) +[Thread=1][TRACE.VERBOSE][6/13/2025 9:59:53 AM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 31(ms) +[Thread=1][TRACE.VERBOSE][6/13/2025 9:59:53 AM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 31(ms) +[Thread=1][TRACE.VERBOSE][6/13/2025 9:59:54 AM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 37(ms) +[Thread=1][TRACE.VERBOSE][6/13/2025 9:59:54 AM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 34(ms) +[Thread=1][TRACE.VERBOSE][6/13/2025 9:59:56 AM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 32(ms) +[Thread=1][TRACE.VERBOSE][6/13/2025 9:59:56 AM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 32(ms) +[Thread=1][TRACE.VERBOSE][6/13/2025 9:59:58 AM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 36(ms) +[Thread=1][TRACE.VERBOSE][6/13/2025 9:59:58 AM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 37(ms) +[Thread=1][TRACE.VERBOSE][6/13/2025 10:00:00 AM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 45(ms) +[Thread=1][TRACE.VERBOSE][6/13/2025 10:00:01 AM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 34(ms) +[Thread=1][TRACE.DEBUG][6/13/2025 10:00:04 AM] [PortfolioManager.App+<>c__DisplayClass1_1::b__1(,)]ClosingHandler +[Thread=1][TRACE.VERBOSE][6/13/2025 10:00:04 AM] [MarketData.Cache.LocalPriceCache::Dispose()][LocalPriceCache:Dispose]Thread state is 'WaitSleepJoin'. Joining main thread... +[Thread=16][TRACE.VERBOSE][6/13/2025 10:00:04 AM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Thread ended. Items in cache:0 +[Thread=1][TRACE.VERBOSE][6/13/2025 10:00:04 AM] [MarketData.Cache.LocalPriceCache::Dispose()][LocalPriceCache:Dispose] End +[Thread=1][TRACE.VERBOSE][6/13/2025 10:00:04 AM] [MarketData.Cache.GBPriceCache::Dispose()][GBPriceCache:Dispose]Thread state is 'WaitSleepJoin'. Joining main thread... +[Thread=18][TRACE.VERBOSE][6/13/2025 10:00:05 AM] [MarketData.Cache.GBPriceCache::ThreadProc()][GBPriceCache:ThreadProc]Thread ended. +[Thread=1][TRACE.VERBOSE][6/13/2025 10:00:05 AM] [MarketData.Cache.GBPriceCache::Dispose()][GBPriceCache:Dispose] End. +[Thread=1][TRACE.VERBOSE][6/13/2025 3:14:52 PM] [PortfolioManager.Program::Main(args)][STARTING] +[Thread=7][TRACE.VERBOSE][6/13/2025 3:15:00 PM] [MarketData.Generator.MGSHMomentum.MGSHMomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 352(ms) +[Thread=7][TRACE.VERBOSE][6/13/2025 3:15:00 PM] [MarketData.Generator.MGSHMomentum.MGSHMomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 97(ms) +[Thread=11][TRACE.VERBOSE][6/13/2025 3:15:02 PM] [MarketData.Generator.CMTrend.CMTTrendModel::GetModelPerformance(sessionParams)]Done, total took 1797(ms) +[Thread=10][TRACE.VERBOSE][6/13/2025 3:15:02 PM] [MarketData.Generator.CMMomentum.CMMomentumBacktest::GetModelPerformance(sessionParams)]Done, took 2041(ms) +[Thread=10][TRACE.VERBOSE][6/13/2025 3:15:02 PM] [MarketData.Generator.CMMomentum.CMMomentumBacktest::GetModelPerformance(sessionParams)]Done, took 41(ms) +[Thread=9][TRACE.VERBOSE][6/13/2025 3:15:02 PM] [MarketData.Generator.Momentum.MomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 2595(ms) +[Thread=11][TRACE.VERBOSE][6/13/2025 3:15:03 PM] [MarketData.Generator.CMTrend.CMTTrendModel::GetModelPerformance(sessionParams)]Done, total took 38(ms) +[Thread=9][TRACE.VERBOSE][6/13/2025 3:15:03 PM] [MarketData.Generator.Momentum.MomentumBacktest::GetModelPerformance(sessionParams)]Done, total took 130(ms) +[Thread=9][TRACE.VERBOSE][6/13/2025 3:15:12 PM] [PortfolioManager.ViewModels.GainLossViewModel::HandleSelectedSymbol()]HandleSelectedSymbol:{ALL} +[Thread=9][TRACE.VERBOSE][6/13/2025 3:15:12 PM] [PortfolioManager.ViewModels.GainLossViewModel::HandleSelectedSymbol()][GainLossViewModel::OnGainLossViewModelPropertyChanged]SelectedSymbol '{ALL}' +[Thread=11][TRACE.VERBOSE][6/13/2025 3:15:15 PM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]GeneratingActiveGainLoss +[Thread=11][TRACE.VERBOSE][6/13/2025 3:15:16 PM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]GeneratingTotalGainLoss) +[Thread=11][TRACE.VERBOSE][6/13/2025 3:15:16 PM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]Date:6/13/2025 TotalGainLoss:$93,667.57 +[Thread=11][TRACE.VERBOSE][6/13/2025 3:15:17 PM] [MarketData.MarketDataModel.GainLoss.GainLossSummaryItemCollection::.ctor(portfolioTrades,gainLossGenerator,activeGainLossGenerator,maxDateRef)][GainLossSummaryItemCollection] Done, took 385(ms) +[Thread=18][TRACE.VERBOSE][6/13/2025 3:17:03 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/13/2025 3:19:05 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/13/2025 3:20:02 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,728. +[Thread=18][TRACE.VERBOSE][6/13/2025 3:21:06 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/13/2025 3:23:08 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/13/2025 3:25:05 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,728. +[Thread=18][TRACE.VERBOSE][6/13/2025 3:25:09 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/13/2025 3:27:11 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/13/2025 3:29:13 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/13/2025 3:30:07 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,728. +[Thread=18][TRACE.VERBOSE][6/13/2025 3:31:14 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/13/2025 3:33:16 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/13/2025 3:35:10 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,728. +[Thread=18][TRACE.VERBOSE][6/13/2025 3:35:17 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/13/2025 3:37:19 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/13/2025 3:39:20 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/13/2025 3:40:12 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,728. +[Thread=1][TRACE.VERBOSE][6/13/2025 3:41:16 PM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 102(ms) +[Thread=1][TRACE.VERBOSE][6/13/2025 3:41:16 PM] [PortfolioManager.ViewModels.GainLossViewModel::get_Parity()][Parity]Done, total took 35(ms) +[Thread=18][TRACE.VERBOSE][6/13/2025 3:41:22 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/13/2025 3:43:24 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/13/2025 3:45:15 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,728. +[Thread=18][TRACE.VERBOSE][6/13/2025 3:45:25 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/13/2025 3:47:27 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/13/2025 3:49:28 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/13/2025 3:50:17 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,728. +[Thread=18][TRACE.VERBOSE][6/13/2025 3:51:30 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/13/2025 3:53:32 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/13/2025 3:55:19 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,728. +[Thread=18][TRACE.VERBOSE][6/13/2025 3:55:33 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/13/2025 3:57:35 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/13/2025 3:59:36 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/13/2025 4:00:22 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,728. +[Thread=18][TRACE.VERBOSE][6/13/2025 4:01:38 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/13/2025 4:03:39 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/13/2025 4:05:24 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,728. +[Thread=18][TRACE.VERBOSE][6/13/2025 4:05:41 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/13/2025 4:07:43 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/13/2025 4:09:44 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/13/2025 4:10:27 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,728. +[Thread=1][TRACE.VERBOSE][6/13/2025 4:10:51 PM] [PortfolioManager.ViewModels.GainLossViewModel::HandleSelectedSymbol()]HandleSelectedSymbol:{ALL} +[Thread=1][TRACE.VERBOSE][6/13/2025 4:10:51 PM] [PortfolioManager.ViewModels.GainLossViewModel::HandleSelectedSymbol()][GainLossViewModel::OnGainLossViewModelPropertyChanged]SelectedSymbol '{ALL}' +[Thread=34][TRACE.VERBOSE][6/13/2025 4:10:52 PM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]GeneratingActiveGainLoss +[Thread=34][TRACE.VERBOSE][6/13/2025 4:10:53 PM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]GeneratingTotalGainLoss) +[Thread=34][TRACE.VERBOSE][6/13/2025 4:10:53 PM] [PortfolioManager.ViewModels.GainLossViewModel::b__41_0()]Date:6/13/2025 TotalGainLoss:$93,642.87 +[Thread=34][TRACE.VERBOSE][6/13/2025 4:10:53 PM] [MarketData.MarketDataModel.GainLoss.GainLossSummaryItemCollection::.ctor(portfolioTrades,gainLossGenerator,activeGainLossGenerator,maxDateRef)][GainLossSummaryItemCollection] Done, took 344(ms) +[Thread=18][TRACE.VERBOSE][6/13/2025 4:11:46 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=18][TRACE.VERBOSE][6/13/2025 4:13:48 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=16][TRACE.VERBOSE][6/13/2025 4:15:30 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Symbols: 486. Items in cache: 408,728. +[Thread=18][TRACE.VERBOSE][6/13/2025 4:15:49 PM] [MarketData.Cache.GBPriceCache::ThreadProc()]Clearing GBPriceCache price cache. +[Thread=1][TRACE.DEBUG][6/13/2025 4:16:09 PM] [PortfolioManager.App+<>c__DisplayClass1_1::b__1(,)]ClosingHandler +[Thread=1][TRACE.VERBOSE][6/13/2025 4:16:09 PM] [MarketData.Cache.LocalPriceCache::Dispose()][LocalPriceCache:Dispose]Thread state is 'WaitSleepJoin'. Joining main thread... +[Thread=16][TRACE.VERBOSE][6/13/2025 4:16:10 PM] [MarketData.Cache.LocalPriceCache::ThreadProc()][LocalPriceCache:ThreadProc] Thread ended. Items in cache:408,728 +[Thread=1][TRACE.VERBOSE][6/13/2025 4:16:10 PM] [MarketData.Cache.LocalPriceCache::Dispose()][LocalPriceCache:Dispose] End +[Thread=1][TRACE.VERBOSE][6/13/2025 4:16:10 PM] [MarketData.Cache.GBPriceCache::Dispose()][GBPriceCache:Dispose]Thread state is 'WaitSleepJoin'. Joining main thread... +[Thread=18][TRACE.VERBOSE][6/13/2025 4:16:11 PM] [MarketData.Cache.GBPriceCache::ThreadProc()][GBPriceCache:ThreadProc]Thread ended. +[Thread=1][TRACE.VERBOSE][6/13/2025 4:16:11 PM] [MarketData.Cache.GBPriceCache::Dispose()][GBPriceCache:Dispose] End. diff --git a/PortfolioManager/saveparams.config b/PortfolioManager/saveparams.config index 05b2b8e..5982e26 100644 --- a/PortfolioManager/saveparams.config +++ b/PortfolioManager/saveparams.config @@ -1,4 +1,4 @@ Type,PortfolioManager.ViewModels.MGSHMomentumViewModel,PathFileName,C:\boneyard\marketdata\Sessions\MGSH20250331.TXT -Type,PortfolioManager.ViewModels.CMTrendViewModel,PathFileName,C:\boneyard\marketdata\Sessions\CMT20200817.TXT Type,PortfolioManager.ViewModels.MomentumViewModel,PathFileName,C:\boneyard\marketdata\Sessions\MG20180131.TXT Type,PortfolioManager.ViewModels.CMMomentumViewModel,PathFileName,C:\boneyard\marketdata\Sessions\CM20191031.TXT +Type,PortfolioManager.ViewModels.CMTrendViewModel,PathFileName,C:\boneyard\marketdata\Sessions\CMT20200817.TXT