public AnalyticsViewModel()
        {
            Factory = new SourceInstrumentDataFactory();

            Mediator.Instance.PortfolioChanged += (s, e) =>
            {
                UpdateCurrentPortfolio(e.Portfolio);
                Positions = RepositoryReader.LoadPositions(e.Portfolio);
                UpdateCurrentPortfolioPrices(e.Portfolio);
                PortfolioProfit = PortfolioAnalytics.CalculatePortFolioProfit(Positions);
                PortfolioReturn = PortfolioAnalytics.CalculatePortfolioReturn(Positions);
                s = this;
                e.AnalyticList = HistoricalReturnSeries;
            };



            Mediator.Instance.AddPosition += (s, e) =>
            {
                Positions.Add(e.Position);
                PortfolioProfit = PortfolioAnalytics.CalculatePortFolioProfit(Positions);
                PortfolioReturn = PortfolioAnalytics.CalculatePortfolioReturn(Positions);
                s = this;
                e.AnalyticList = HistoricalReturnSeries;
            };
        }
        public PositionViewModel()
        {
            SaveCommand             = new RelayCommand(SaveExecute);
            SelectInstrumentCommand = new RelayCommand(SelectInstrumentExecute);
            Factory = new SourceInstrumentDataFactory();

            Mediator.Instance.PortfolioChanged += (s, e) =>
            {
                UpdateCurrentPortfolio(e.Portfolio);

                RepositoryReader = new XmlRepositoryReader();
                Positions        = RepositoryReader.LoadPositions(e.Portfolio);


                UpdateCurrentPortfolioPrices(e.Portfolio);
            };

            Mediator.Instance.AddInstrument += (s, e) =>
            {
                UpdateCurrentInstrument(e.Instrument);
                InitializeCurrentPosition();
            };
        }