Beispiel #1
0
        private bool isDisposed             = false; // Dispose indicator

        #endregion Data Members

        #region Consturctors, Initialization & Destructor

        public cPriceReturnsHandler(IPortfolioBL cPort, IRepository repository)
        {
            m_objPortfolio    = cPort;
            m_objColHandler   = m_objPortfolio.ColHandler;
            m_objErrorHandler = m_objPortfolio.cErrorLog;
            _repository       = repository;
        }//constructor
Beispiel #2
0
        public BackTestingViewModel GetBacktestingPortfolio(User user, int id)
        {
            // BacktestingPortfolioViewModel vmP = new BacktestingPortfolioViewModel();
            // vmP = _manageBacktestingPortfolios.GetFullPortfolio(id, user.Currency.CurrencyId, user.Licence.Stocks.Select(t => t.id).ToList());
            BackTestingViewModel vmB = new BackTestingViewModel();
            var stocks = user.Licence.Stocks.Select(t => t.id).ToList();

            _manageBacktestingPortfolios.SelectedPortfolio.openExistingPortfolio(id, true);

            cPort = _manageBacktestingPortfolios.SelectedPortfolio;

            //if (!_manageBacktestingPortfolios.SelectedPortfolio.instantiatePortfolioVariables(true, cPort.Details.CalcCurrency, stocks, null))
            if (!_manageBacktestingPortfolios.SelectedPortfolio.instantiateVariablesForPortfolio(false, cPort.Details.CalcCurrency, stocks, null))
            {
                vmB.Messages.Add(new Models.App.Message {
                    LogLevel = Models.App.LogLevel.Error, Text = "Error Get Portfolio Data. Please Contanct System Administrator"
                });
                return(vmB);
            }


            //_backtestingHandler.setBacktestingPortfolio(_manageBacktestingPortfolios.SelectedPortfolio, _manageBacktestingPortfolios.SelectedPortfolio.Details.DateEdited, _manageBacktestingPortfolios.SelectedPortfolio.Details.LastOptimization, _manageBacktestingPortfolios.SelectedPortfolio.Details.Equity);
            //vmB = _backtestingHandler.getBacktestingPortfolio(_manageBacktestingPortfolios.SelectedPortfolio, _manageBacktestingPortfolios.SelectedPortfolio.Details.DateEdited, _manageBacktestingPortfolios.SelectedPortfolio.Details.LastOptimization, _manageBacktestingPortfolios.SelectedPortfolio.Details.Equity);
            _backtestingHandler.setBacktestingPortfolio(_manageBacktestingPortfolios.SelectedPortfolio, (DateTime)_manageBacktestingPortfolios.SelectedPortfolio.Details.StartDate, (DateTime)_manageBacktestingPortfolios.SelectedPortfolio.Details.EndDate, _manageBacktestingPortfolios.SelectedPortfolio.Details.Equity);
            //vmB = _backtestingHandler.getBacktestingPortfolio(_manageBacktestingPortfolios.SelectedPortfolio, (DateTime)_manageBacktestingPortfolios.SelectedPortfolio.Details.StartDate, (DateTime)_manageBacktestingPortfolios.SelectedPortfolio.Details.EndDate, _manageBacktestingPortfolios.SelectedPortfolio.Details.Equity);
            vmB = _backtestingHandler.getNewBacktestingPortfolio(_manageBacktestingPortfolios.SelectedPortfolio, (DateTime)_manageBacktestingPortfolios.SelectedPortfolio.Details.StartDate, (DateTime)_manageBacktestingPortfolios.SelectedPortfolio.Details.EndDate, _manageBacktestingPortfolios.SelectedPortfolio.Details.Equity);

            return(vmB);
        }//GetBacktestingPortfolio
Beispiel #3
0
 public BackTestingService(IPortfolioBL portBL, IManageBacktestingPortfolios manageBacktestingPortfolios, IBacktestingHandler backtestingHandler)
 {
     cPort = portBL;
     //backTesingCalc = backTesing;
     _manageBacktestingPortfolios = manageBacktestingPortfolios;
     _backtestingHandler          = backtestingHandler;
 }
Beispiel #4
0
        private bool isDisposed = false;             // indicates if Dispose has already been called

        // Data variables
        //private DataTable m_dtSecurityRatesData; // Final rates calculations

        #endregion Data Members

        #region Construcors, Initialization & Destructor

        public cRateHandler(IPortfolioBL cPort)
        {
            m_objPortfolio    = cPort;
            m_objErrorHandler = m_objPortfolio.cErrorLog;
            m_objColHandler   = m_objPortfolio.ColHandler;

            //m_dtSecurityRatesData = getMainRatesTblStruct();
        }// constructor
Beispiel #5
0
        private String m_strPriceFldName    = "fClose";                                     // Name of used prices column

        #endregion Data members

        #region Constructors, Initialization & Destructor

        public cImportedPort(IPortfolioBL cPort)
        {
            m_objPortfolio    = cPort;
            m_objErrorHandler = m_objPortfolio.cErrorLog;
            //m_colSecurities = new cSecurities(m_objPortfolio);
            //m_dtDate = DateTime.Now;
            m_drDateRange = new cDateRange(DateTime.Now.AddYears(-2), DateTime.Now);
        }//constructor
Beispiel #6
0
        private bool isDisposed             = false; // Dispose indicator

        #endregion Data Members

        #region Consturctors, Initialization & Destructor

        public cPricesHandler(IPortfolioBL cPort, IRepository repository)
        {
            m_objPortfolio = cPort;
            //m_objOleDBConn = m_objPortfolio.OleDBConn;
            m_objColHandler   = m_objPortfolio.ColHandler;
            m_objErrorHandler = m_objPortfolio.cErrorLog;
            _repository       = repository;
        }//constructor
Beispiel #7
0
        private static cSecurity getCurrSecurity(Security security, IPortfolioBL cCurrPort)
        {                                                                                        // Retrieves an instance of a security based on its datarow info
            cSecurity cCurrSec = new cSecurity(cCurrPort, security.strName, security.strSymbol); //111An

            cCurrSec.Properties.PortSecurityId = security.idSecurity;

            //cCurrSec.Properties.HebName = security.HebName;

            //cCurrSec.FAC = Convert.ToDouble(security.FAC);

            if (cCurrSec.FAC <= 0D)
            {
                cCurrSec.FAC = 1D;
            }

            cCurrSec.AvgYield = security.AvgYield;
            cCurrSec.StdYield = security.StdYield;

            cCurrSec.AvgYieldNIS = security.AvgYieldNIS;
            cCurrSec.StdYieldNIS = security.StdYieldNIS;

            cCurrSec.ValueUSA = security.dValueUSA;
            cCurrSec.ValueNIS = security.dValueNIS;

            cCurrSec.WeightUSA = security.WeightUSA;
            cCurrSec.WeightNIS = security.WeightNIS;

            //cCurrSec.Properties.ISIN = security.strISIN;

            cCurrSec.DateRange = new cDateRange(security.dtPriceStart, security.dtPriceEnd);

            //lock (lockObject)
            //{
            cCurrSec.Properties.Sector = cColHandler.getCatItemByID(enumCatType.Sector, security.idSector,
                                                                    cColHandler.Sectors);

            cCurrSec.Properties.Market     = cColHandler.getCatItemByID(enumCatType.StockMarket, security.idMarket, cColHandler.Markets);
            cCurrSec.Properties.MarketName = getSecMarketName(security.idMarket);

            cCurrSec.Properties.SecurityType = cColHandler.getCatItemByID(enumCatType.SecurityType,
                                                                          security.idSecurityType, cColHandler.SecTypes);
            //}
            var priceRepository = Resolver.Resolve <IRepository>();

            try
            {
                priceRepository.Execute(session =>
                {
                    // cCurrSec.PriceTable = AutoMapper.Mapper.Map<List<Models.dbo.Price>>(session.Query<TFI.Entities.dbo.Price>().Where(x => x.Securities.idSecurity == security.idSecurity).OrderByDescending(x => x.dDate).ToList());
                });
            }
            catch (Exception ex)
            {
                //m_objErrorHandler.LogInfo(ex);
            }
            Resolver.Release(priceRepository);
            return(cCurrSec);
        }//getCurrSecurity
Beispiel #8
0
 public cConstHandler(cConstraints cConsts, IPortfolioBL cPort)
 {
     m_objPortfolio    = cPort;
     m_colConstraints  = cConsts;
     m_objErrorHandler = m_objPortfolio.cErrorLog;
     m_objColHandler   = m_objPortfolio.ColHandler;
     repository        = Resolver.Resolve <IRepository>();
     setSeperatedConstraintCols();
 }//constructor
Beispiel #9
0
        private Color m_clrSecColor;        // Security display color

        #endregion Data members

        #region Constructors, Initialization & Destructor

        public cSecProperties(IErrorHandler cErrors, IPortfolioBL cPort)
        {
            m_objPortfolio    = cPort;
            m_objErrorHandler = cErrors;
            m_catSector       = new cCategoryItem(enumCatType.Sector, "", -1, m_objErrorHandler, cPort);
            //m_catCurrency = new cCategoryItem(enumCatType.Currency, "", -1, m_objErrorHandler);
            m_catMarket  = new cCategoryItem(enumCatType.StockMarket, "", -1, m_objErrorHandler, cPort);
            m_catSecType = new cCategoryItem(enumCatType.SecurityType, "", -1, m_objErrorHandler, cPort);
        }//constructor
Beispiel #10
0
        private List <Entities.dbo.Price> m_dtMainPrices; // Prices dataTable
        #endregion Data members

        #region Constructors, Initialization & Destructor

        public cPriceData(ISecurity cSec, IPortfolioBL cPort)
        {
            m_objRelevantSec = cSec;
            m_objPortfolio   = cPort;
            //m_objDbConnection = m_objPortfolio.OleDBConn;
            m_objErrorHandler = m_objPortfolio.cErrorLog;
            //priceRepository = new Repository();
            initDataVariables();
        }//constructor
Beispiel #11
0
        private double[,] m_dCovarMatrix = null;  // Covariance final matrix

        #endregion Data Members

        #region Constructors, Initialization & Destructor

        public cCovarCorrelHandler(IPortfolioBL cPort)
        {
            // Init variables
            m_objPortfolio    = cPort;
            m_objErrorHandler = m_objPortfolio.cErrorLog;
            m_objColHandler   = m_objPortfolio.ColHandler;
            m_objRateHandler  = m_objPortfolio.Classes.RatesHandler;

            m_dtCovarOutput = getOutputDataStruct(); // Output data structure
        }//constructor
Beispiel #12
0
        }                  //destructor

        protected void Dispose(bool disposing)
        {     // clearing class variables
            if (disposing)
            { //clean up managed resources
                m_objErrorHandler = null;
                m_objPortfolio    = null;
                m_objColHandler   = null;
            }
            isDisposed = true;
        }//Dispose
Beispiel #13
0
        public cOptimizationResults(IPortfolioBL cPort)
        {
            m_objPortfolio  = cPort;
            m_objColHandler = m_objPortfolio.ColHandler;
            //m_colSecurities = m_objPortfolio.ColHandler.ActiveSecs;
            m_objCovarCalcs   = m_objPortfolio.Classes.CovarCorrel;
            m_objErrorHandler = m_objPortfolio.cErrorLog;
            m_objConstraints  = m_objPortfolio.Classes.ConstHandler;

            initMainVars();
        }//constructor
Beispiel #14
0
        private Boolean m_isMinimized    = false;                   // Checks whether the minimized returns have been calculated

        #endregion Data members

        #region Constructors, Initialization & Destructor

        public cRateData(ISecurity cSec, IPortfolioBL cPort, Boolean isFull)
        {
            m_objRelevantSec  = cSec;
            m_objPortfolio    = cPort;
            m_objErrorHandler = m_objPortfolio.cErrorLog;

            try
            {
                initDataVariables();
            } catch (Exception ex) {
                m_objErrorHandler.LogInfo(ex);
            }
        }//constructor
Beispiel #15
0
        private Boolean m_isDisabled = false; // Whether the system has disabled the current security

        #endregion Data members

        #region Consturctors, Initialization & Destructor

        public cBacktestingSecurity(IPortfolioBL cPort, ISecurity cSec, cDateRange Dates)
        {
            m_objPortfolio    = cPort;
            m_objErrorHandler = m_objPortfolio.cErrorLog;
            m_objColHandler   = m_objPortfolio.ColHandler;
            m_objSecurity     = cSec;
            m_drDateRange     = Dates;

            try
            {
            } catch (Exception ex) {
                m_objErrorHandler.LogInfo(ex);
            }
        }//cSecurity constructor
Beispiel #16
0
        public BackTestingViewModel calculateBacktesting(User user, Models.Command.CreatePortfolioCommand cmd, DateTime dtStartDate, DateTime dtEndDate, List <string> becnhMarkIDs)
        { // Service which creates a new backtesting portfolio + calculates proper backtesting values
            BackTestingViewModel vmBacktesting = new BackTestingViewModel();

            // Set up portfolio
            int idPortfolio = _manageBacktestingPortfolios.CreateDefaultPortfolio(user, dtStartDate, dtEndDate, cmd);

            _manageBacktestingPortfolios.SelectedPortfolio.openExistingPortfolio(idPortfolio, true);
            _backtestingHandler.setBacktestingPortfolio(_manageBacktestingPortfolios.SelectedPortfolio, dtStartDate, dtEndDate, cmd.Equity);
            cPort = _manageBacktestingPortfolios.SelectedPortfolio;

            // Set portfolio data
            List <int> colExchanges = (cmd.Exchanges != null && cmd.Exchanges.Count > 0 && cmd.Exchanges.Count <= user.Licence.Stocks.Count) ? cmd.Exchanges : user.Licence.Stocks.Select(t => t.id).ToList();

            if (!_manageBacktestingPortfolios.SelectedPortfolio.instantiateVariablesForPortfolio(true, cPort.Details.CalcCurrency, colExchanges, cmd.Securities))
            { // Failed to get data
                vmBacktesting.Messages.Add(new Models.App.Message {
                    LogLevel = Models.App.LogLevel.Error, Text = "Error Get Portfolio Data. Please Contanct System Administrator"
                });
                return(vmBacktesting);
            }

            if (cmd.Securities.Count > 0)
            {
                _manageBacktestingPortfolios.SelectedPortfolio.ColHandler.ActiveSecs = getFilteredSecByCustomList(cmd);
            }
            else
            {
                _manageBacktestingPortfolios.SelectedPortfolio.ColHandler.ActiveSecs = getFilteredSecByExchangesAndRisk(colExchanges);
            }


            // Run calculation
            //vmBacktesting = _backtestingHandler.calculateBacktesting(_manageBacktestingPortfolios.SelectedPortfolio, dtStartDate, dtEndDate, cmd.Equity, becnhMarkIDs);
            vmBacktesting = _backtestingHandler.calculateNewBacktesting(_manageBacktestingPortfolios.SelectedPortfolio, dtStartDate, dtEndDate, cmd.Equity, becnhMarkIDs);

            // Save portfolio data
            // Create command to update portfolio + portfolio securities
            UpdatePortfolioCommand pc = new UpdatePortfolioCommand();

            pc.CalcType   = cmd.CalcType;
            pc.Equity     = cmd.Equity;
            pc.PortID     = _manageBacktestingPortfolios.SelectedPortfolio.Details.ID;
            pc.Risk       = vmBacktesting.Portfolios[vmBacktesting.PortNumA].Risk;
            pc.Securities = vmBacktesting.Portfolios[vmBacktesting.PortNumA].Securities;

            _manageBacktestingPortfolios.UpdatePortfolio(pc, vmBacktesting);
            return(vmBacktesting);
        }//calculateBacktesting
Beispiel #17
0
        private bool isBacktestingPort = false; // not backtesting portfolio

        #endregion Data Members

        #region Consturctors, Initialization & Destructor

        public cManagePortfolios(IPortfolioBL cPort, IRepository rep)
        {
            m_objPortfolio    = cPort;
            m_objErrorHandler = m_objPortfolio.cErrorLog;
            repository        = rep;
            //m_objDbConnection = m_objPortfolio.OleDBConn;
            securitiesBL = new cSecurities(cPort);
            try
            {
                //setPortfolioTable();
            }
            catch (Exception ex)
            {
                m_objErrorHandler.LogInfo(ex);
            }
        }//constructor
Beispiel #18
0
        private ISecurities m_colSecurities; // Securities belonging to current

        #endregion Data Members

        #region Constructors, Initialization & Destructors

        public cCategoryItem(enumCatType eType, String strName, int iId, IErrorHandler cErrors, IPortfolioBL cPort)
        {
            m_enumItemType    = eType;
            m_strName         = strName;
            m_iItemId         = iId;
            m_objErrorHandler = cErrors;
            m_objPortfolio    = cPort;
            m_colSecurities   = new cSecurities(m_objPortfolio);

            try
            {
                m_objColor = Color.FromArgb(cProperties.RndGenerator.Next(0, 255), cProperties.RndGenerator.Next(0, 255), cProperties.RndGenerator.Next(0, 255));
            } catch (Exception ex) {
                m_objErrorHandler.LogInfo(ex);
            }
        }//constructor
Beispiel #19
0
        }//cSecurity constructor

        #endregion Consturctors, Initialization & Destructor

        #region Methods

        #region Base methods

        public void Init(IPortfolioBL cPort)
        {
            m_objPortfolio    = cPort;
            m_objErrorHandler = m_objPortfolio.cErrorLog;

            m_objColHandler       = m_objPortfolio.ColHandler;
            m_objSecAnalytics     = new cSecAnalytics(this, m_objErrorHandler, m_objColHandler);
            m_objPrices.Portfolio = cPort;
            try
            {
                //LR: why do we have 5 years of date range here ???
                m_sPricesRange = new cDateRange(DateTime.Today.AddYears(-cProperties.DatesInterval).AddDays(-1), DateTime.Today.AddDays(-1));


                m_objRates      = new cRateData(this, m_objPortfolio, false);
                m_objCovarData  = new cCovarCorrelData(this, m_objColHandler, m_objErrorHandler, true);
                m_objCorrelData = new cCovarCorrelData(this, m_objColHandler, m_objErrorHandler, false);
            }
            catch (Exception ex) { m_objErrorHandler.LogInfo(ex); }
        }
Beispiel #20
0
        public cCollectionsHandler(IPortfolioBL cPort, string currency, List <int> exchangesPackagees)
        {
            m_objPortfolio          = cPort;
            m_objCatHandler         = m_objPortfolio.Classes.CategoryHandler;
            m_objErrorHandler       = m_objPortfolio.cErrorLog;
            m_colFullCollection     = new cSecurities(m_objPortfolio);
            m_colSecurities         = new cSecurities(m_objPortfolio);
            m_colSecuritiesByRisk   = new cSecurities(m_objPortfolio);
            m_colActiveSecurities   = new cSecurities(m_objPortfolio);
            m_colDisabledSecurities = new cSecurities(m_objPortfolio);
            m_colBenchmarks         = new cSecurities(m_objPortfolio);
            this.currency           = currency;
            this.exchanges          = exchangesPackagees;

            //LR:TODO
            ////if (exchanges == null)
            ////    exchanges = new List<int>(new int[]{ 1, 3, 4, 5 });

            securityRepository = Resolver.Resolve <IRepository>();
        }//constructor
Beispiel #21
0
        private List <double> m_colVolumes = new List <double>(); // Collection of traded volumes for each day in full date-range

        #endregion Data members

        #region Consturctors, Initialization & Destructor

        public cSecurity(IPortfolioBL cPort, string secName, string secSymbol)
        {
            m_objPortfolio    = cPort;
            m_objErrorHandler = m_objPortfolio.cErrorLog;

            m_objColHandler    = m_objPortfolio.ColHandler;
            m_objSecProperties = new cSecProperties(m_objErrorHandler, m_objPortfolio);
            m_objSecAnalytics  = new cSecAnalytics(this, m_objErrorHandler, m_objColHandler);
            m_objSecProperties.SecurityName   = m_objSecProperties.getSecName(secName); // No ' signs + trim spaces
            m_objSecProperties.SecuritySymbol = secSymbol;
            m_objSecProperties.SecColor       = System.Drawing.Color.FromArgb(cProperties.RndGenerator.Next(255), cProperties.RndGenerator.Next(255), cProperties.RndGenerator.Next(255));
            m_objPrices = new cPriceData(this, m_objPortfolio);
            try
            {
                m_sPricesRange = new cDateRange(DateTime.Today.AddYears(-cProperties.DatesInterval).AddDays(-1), DateTime.Today.AddDays(-1));


                m_objRates      = new cRateData(this, m_objPortfolio, false);
                m_objCovarData  = new cCovarCorrelData(this, m_objColHandler, m_objErrorHandler, true);
                m_objCorrelData = new cCovarCorrelData(this, m_objColHandler, m_objErrorHandler, false);
            }
            catch (Exception ex) { m_objErrorHandler.LogInfo(ex); }
        }//cSecurity constructor
Beispiel #22
0
        }//getSecDatarowPosition

        #endregion Static methods

        #region Load Benchmarks from SQL Srv

        private cSecurity getCurrBMSecurity(BMsecurity drSec, IPortfolioBL cCurrPort)
        { // Retrieves an instance of a security based on its datarow info
            ICollectionsHandler cColHandler = cCurrPort.ColHandler;

            cSecurity cCurrSec = new cSecurity(cCurrPort, drSec.strName, drSec.strSymbol);  //111An

            cCurrSec.Properties.PortSecurityId = drSec.idSecurity;

            cCurrSec.Properties.HebName = drSec.strHebName;
            cCurrSec.FAC = 1D;

            cCurrSec.AvgYield = Convert.ToDouble(drSec.AvgYield);
            cCurrSec.StdYield = Convert.ToDouble(drSec.StdYield);

            cCurrSec.AvgYieldNIS = Convert.ToDouble(drSec.AvgYieldNIS);
            cCurrSec.StdYieldNIS = Convert.ToDouble(drSec.StdYieldNIS);

            //////cCurrSec.ValueUSA = Convert.ToDouble(drSec.dValueUSA);        // THEY ARE NULLS for BM sec
            //////cCurrSec.ValueNIS = Convert.ToDouble(drSec.dValueNIS);

            //////cCurrSec.WeightUSA = Convert.ToDouble(drSec.WeightUSA);
            //////cCurrSec.WeightNIS = Convert.ToDouble(drSec.WeightNIS);

            cCurrSec.DateRange = new cDateRange(DateTime.Today.AddYears(-cProperties.DatesInterval), DateTime.Today.AddDays(-1));
            lock (lockObject)
            {
                cCurrSec.Properties.Sector = cColHandler.getCatItemByID(enumCatType.Sector, Convert.ToInt32(drSec.idSector),
                                                                        cColHandler.Sectors);
                // Exchange values
                cCurrSec.Properties.Market     = cColHandler.getCatItemByID(enumCatType.StockMarket, drSec.idMarket, cColHandler.Markets);
                cCurrSec.Properties.MarketName = getSecMarketName(drSec.idMarket);

                cCurrSec.Properties.SecurityType = cColHandler.getCatItemByID(enumCatType.SecurityType,
                                                                              drSec.idSecurityType, cColHandler.SecTypes);
            }
            //if (drSec["idCurrency"] != DBNull.Value) cCurrSec.IdCurrency = drSec["IdCurrency"].ToString();
            cCurrSec.IdCurrency = drSec.idCurrency; // WHY WAS IT HERE????? cProperties.CurrencyId;

            try
            { // Only exists in portfolio securities
              // For Benchmark we assign 'true'
              //if (drSec["isActiveSecurity"] != DBNull.Value) cCurrSec.setSecurityActivity(Convert.ToBoolean(drSec["isActiveSecurity"]));
              //else cCurrSec.setSecurityActivity(true);


                // LR: at this point security already has .PriceTable filled in, so commenting the line, because it crashes here
                //cCurrSec.PriceTable = drSec.Prices.ToList();

                //////foreach (var p in cCurrSec.PriceTable)
                //////{
                //////    p.dAdjPrice = p.fClose;
                //////}

                cCurrSec.setSecurityActivity(true);
            }
            catch (Exception ex)
            {
            }

            //// Made separate entity for tbl_IndexPrices
            //var priceRepository = Resolver.Resolve<IRepository>();
            //List<Entities.dbo.BMPrice> laura;
            //try
            //{
            //    priceRepository.Execute(session =>
            //    {
            //        ////cCurrSec.PriceTable = AutoMapper.Mapper.Map<List<Entities.dbo.Price>>(session.Query<Entities.dbo.BMPrice>().Where(x => x.idSecurity == "'" + drSec.idSecurity + "'").OrderByDescending(x => x.dDate).ToList());
            //        laura = session.Query<Entities.dbo.BMPrice>().Where(x => x.idSecurity == "'" + drSec.idSecurity + "'").OrderByDescending(x => x.dDate).ToList();
            //    });
            //}
            //catch (Exception ex)
            //{
            //    m_objErrorHandler.LogInfo(ex);
            //}
            //Resolver.Release(priceRepository);

            return(cCurrSec);
        }//getCurrSecurity
Beispiel #23
0
 public OptimizationService(IPortfolioBL portBL, ISecurities securitiesBL, IOptimizationReport optimizationReport)
 {
     cPort              = portBL;
     SecuritiesBL       = securitiesBL;
     OptimizationReport = optimizationReport;
 }
Beispiel #24
0
 public cBacktestingSecurities(IPortfolioBL cPort)
 {
     m_objPortfolio = cPort;
     repository     = Resolver.Resolve <IRepository>();
 }//constructor
Beispiel #25
0
        }//getCurrSecurity

        private cSecurity getCurrBMSecurity_with_EntitySec(Entities.dbo.Security drSec, IPortfolioBL cCurrPort)
        { // Retrieves an instance of a security based on its datarow info
            ICollectionsHandler cColHandler = cCurrPort.ColHandler;

            cSecurity cCurrSec = new cSecurity(cCurrPort, drSec.strName, drSec.strSymbol);  //111An

            cCurrSec.Properties.PortSecurityId = drSec.idSecurity;

            cCurrSec.Properties.HebName = drSec.strHebName;
            cCurrSec.FAC = 1D;

            ////if (drSec["FAC"] != DBNull.Value) cCurrSec.FAC = Convert.ToDouble(drSec["FAC"]);
            ////else cCurrSec.FAC = 1D;
            ////if (cCurrSec.FAC <= 0D) cCurrSec.FAC = 1D;

            if (drSec.AvgYield.HasValue)
            {
                cCurrSec.AvgYield = Convert.ToDouble(drSec.AvgYield);
            }
            if (drSec.StdYield.HasValue)
            {
                cCurrSec.StdYield = Convert.ToDouble(drSec.StdYield);
            }

            if (drSec.AvgYieldNIS.HasValue)
            {
                cCurrSec.AvgYieldNIS = Convert.ToDouble(drSec.AvgYieldNIS);
            }
            if (drSec.StdYieldNIS.HasValue)
            {
                cCurrSec.StdYieldNIS = Convert.ToDouble(drSec.StdYieldNIS);
            }

            if (drSec.MonetaryAvg.HasValue)
            {
                cCurrSec.ValueUSA = Convert.ToDouble(drSec.MonetaryAvg);
            }
            if (drSec.MonetaryAvgNIS.HasValue)
            {
                cCurrSec.ValueNIS = Convert.ToDouble(drSec.MonetaryAvgNIS);
            }

            if (drSec.WeightUSA.HasValue)
            {
                cCurrSec.WeightUSA = Convert.ToDouble(drSec.WeightUSA);
            }
            if (drSec.WeightNIS.HasValue)
            {
                cCurrSec.WeightNIS = Convert.ToDouble(drSec.WeightNIS);
            }

            //cCurrSec.Properties.ISIN = drSec.strISIN;

            ////if ((drSec["dtPriceStart"] != DBNull.Value) && (drSec["dtPriceEnd"] != DBNull.Value))
            ////    cCurrSec.DateRange = new cDateRange(Convert.ToDateTime(drSec["dtPriceStart"]), Convert.ToDateTime(drSec["dtPriceEnd"]));
            cCurrSec.DateRange = new cDateRange(DateTime.Today.AddYears(-cProperties.DatesInterval), DateTime.Today.AddDays(-1));

            if (drSec.idSector.HasValue)
            {
                cCurrSec.Properties.Sector = cColHandler.getCatItemByID(enumCatType.Sector, Convert.ToInt32(drSec.idSector),
                                                                        cColHandler.Sectors);
            }
            if (drSec.idMarket.HasValue)
            { // Exchange values
                cCurrSec.Properties.Market     = cColHandler.getCatItemByID(enumCatType.StockMarket, drSec.idMarket.Value, cColHandler.Markets);
                cCurrSec.Properties.MarketName = getSecMarketName(drSec.idMarket.Value);
            }
            if (drSec.idSecurityType.HasValue)
            {
                cCurrSec.Properties.SecurityType = cColHandler.getCatItemByID(enumCatType.SecurityType,
                                                                              drSec.idSecurityType.Value, cColHandler.SecTypes);
            }

            //if (drSec["idCurrency"] != DBNull.Value) cCurrSec.IdCurrency = drSec["IdCurrency"].ToString();
            cCurrSec.IdCurrency = cProperties.CurrencyId;

            try
            { // Only exists in portfolio securities
              // For Benchmark we assign 'true'
              //if (drSec["isActiveSecurity"] != DBNull.Value) cCurrSec.setSecurityActivity(Convert.ToBoolean(drSec["isActiveSecurity"]));
              //else cCurrSec.setSecurityActivity(true);



                // LR: at this point security already has .PriceTable filled in, so commenting the line, because it crashes here
                //cCurrSec.PriceTable = drSec.Prices.ToList();

                //////foreach (var p in cCurrSec.PriceTable)
                //////{
                //////    p.dAdjPrice = p.fClose;
                //////}

                cCurrSec.setSecurityActivity(true);
            }
            catch (Exception ex)
            {
            }

            return(cCurrSec);
        }//getCurrSecurity
Beispiel #26
0
        }//getCatItemByID

        #endregion Load from DB


        #region Static methods

        private cSecurity getCurrSecurity(Security security, IPortfolioBL cCurrPort)
        { // Retrieves an instance of a security based on its datarow info
            ICollectionsHandler cColHandler = cCurrPort.ColHandler;

            cSecurity cCurrSec = new cSecurity(cCurrPort, security.strName, security.strSymbol);//111An

            cCurrSec.Properties.PortSecurityId = security.idSecurity;

            cCurrSec.Properties.HebName = security.strHebName;

            //cCurrSec.FAC = Convert.ToDouble(security.FAC);

            if (cCurrSec.FAC <= 0D)
            {
                cCurrSec.FAC = 1D;
            }

            cCurrSec.AvgYield = security.AvgYield;       //* 52;
            cCurrSec.StdYield = security.StdYield;       // * Math.Sqrt(52);

            cCurrSec.AvgYieldNIS = security.AvgYieldNIS; // * 52;
            cCurrSec.StdYieldNIS = security.StdYieldNIS; // * Math.Sqrt(52);

            cCurrSec.ValueUSA = security.dValueUSA;
            cCurrSec.ValueNIS = security.dValueNIS;

            cCurrSec.WeightUSA = security.WeightUSA;
            cCurrSec.WeightNIS = security.WeightNIS;

            //cCurrSec.Properties.ISIN = security.strISIN;
            cCurrSec.IdCurrency = security.idCurrency;
            cCurrSec.DateRange  = new cDateRange(security.dtPriceStart, security.dtPriceEnd);
            cCurrSec.setSecurityActivity(true);

            lock (lockObject)
            {
                cCurrSec.Properties.Sector = cColHandler.getCatItemByID(enumCatType.Sector, security.idSector,
                                                                        cColHandler.Sectors);

                cCurrSec.Properties.Market     = cColHandler.getCatItemByID(enumCatType.StockMarket, security.idMarket, cColHandler.Markets);
                cCurrSec.Properties.MarketName = getSecMarketName(security.idMarket);

                cCurrSec.Properties.SecurityType = cColHandler.getCatItemByID(enumCatType.SecurityType,
                                                                              security.idSecurityType, cColHandler.SecTypes);
            }


            //var priceRepository = Resolver.Resolve<IRepository>();
            //try
            //{
            //    priceRepository.Execute(session =>
            //    {
            //        cCurrSec.PriceTable = session.Query<Entities.dbo.Price>().Where(x => x.idSecurity == security.idSecurity).ToList(); //.OrderByDescending(x => x.dDate)
            //    });
            //}
            //catch (Exception ex)
            //{
            //    m_objErrorHandler.LogInfo(ex);
            //}
            //Resolver.Release(priceRepository);


            //List<Models.dbo.Price> BMprices = getFullPrices();
            //cCurrSec.PriceTable = AutoMapper.Mapper.Map<List<Price>, List<Entities.dbo.Price>>(BMprices.Where(x => x.idSecurity == cCurrSec.Properties.PortSecurityId).OrderByDescending(x => x.dDate).ToList());


            return(cCurrSec);
        }//getCurrSecurity