public void ToString_PrintsOutExpected_ExchangeAndSecurities()
        {
            var market   = new Market("1", "xlon", "london stock exchange", MarketTypes.DarkPool);
            var date     = DateTime.UtcNow;
            var timeBars = new EquityInstrumentInterDayTimeBar[0];
            var coll     = new EquityInterDayTimeBarCollection(market, date, timeBars);

            var result = coll.ToString();

            Assert.AreEqual("Exchange (xlon.london stock exchange) Securities(0)", result);
        }
 /// <summary>
 /// The calculate daily volume percentage.
 /// </summary>
 /// <param name="securityTimeBar">
 /// The security.
 /// </param>
 /// <param name="tradedVolume">
 /// The traded volume.
 /// </param>
 /// <returns>
 /// The <see cref="decimal"/>.
 /// </returns>
 private decimal CalculateDailyVolumePercentage(EquityInstrumentInterDayTimeBar securityTimeBar, decimal tradedVolume)
 {
     if (securityTimeBar.DailySummaryTimeBar.DailyVolume.Traded != 0 && tradedVolume != 0)
     {
         return(tradedVolume / securityTimeBar.DailySummaryTimeBar.DailyVolume.Traded);
     }
     else
     {
         return(0);
     }
 }
        public void Ctor_AssignsVariables_Correctly()
        {
            var market   = new Market("1", "xlon", "london stock exchange", MarketTypes.DarkPool);
            var date     = DateTime.UtcNow;
            var timeBars = new EquityInstrumentInterDayTimeBar[0];

            var coll = new EquityInterDayTimeBarCollection(market, date, timeBars);

            Assert.AreEqual(market, coll.Exchange);
            Assert.AreEqual(date, coll.Epoch);
            Assert.AreEqual(timeBars, coll.Securities);
        }
        public void Ctor_AssignsVariables_Correctly()
        {
            var fi     = new FinancialInstrument();
            var prices = new IntradayPrices(null, null, null, null);
            var dates  = DateTime.UtcNow;

            var dailyTb = new DailySummaryTimeBar(100, "USD", prices, 123, new Volume(123), dates);

            var market        = new Market("1", "XLON", "London Stock Exchange", MarketTypes.DealerBooks);
            var equityTimeBar = new EquityInstrumentInterDayTimeBar(fi, dailyTb, dates, market);

            Assert.AreEqual(fi, equityTimeBar.Security);
            Assert.AreEqual(dailyTb, equityTimeBar.DailySummaryTimeBar);
            Assert.AreEqual(dates, equityTimeBar.TimeStamp);
            Assert.AreEqual(market, equityTimeBar.Market);
        }
        private IUniverseEvent MapRowToInterdayMarketDataEvent(InterdayMarketDataParameters marketDataParam)
        {
            if (marketDataParam == null)
            {
                return(null);
            }

            if (string.IsNullOrWhiteSpace(marketDataParam.SecurityName) ||
                !this._securitySelection.Securities.ContainsKey(marketDataParam.SecurityName))
            {
                this._scenarioContext.Pending();
                return(null);
            }

            var security       = this._securitySelection.Securities[marketDataParam.SecurityName];
            var open           = this.MapToMoney(marketDataParam.Open, marketDataParam.Currency);
            var close          = this.MapToMoney(marketDataParam.Close, marketDataParam.Currency);
            var high           = this.MapToMoney(marketDataParam.High, marketDataParam.Currency);
            var low            = this.MapToMoney(marketDataParam.Low, marketDataParam.Currency);
            var intradayPrices = new IntradayPrices(open, close, high, low);

            var dailySummary = new DailySummaryTimeBar(
                marketDataParam.MarketCap,
                marketDataParam.Currency,
                intradayPrices,
                marketDataParam.ListedSecurities,
                new Volume(marketDataParam.DailyVolume.GetValueOrDefault(0)),
                marketDataParam.Epoch);

            var marketData = new EquityInstrumentInterDayTimeBar(
                security.Instrument,
                dailySummary,
                marketDataParam.Epoch,
                security.Market);

            var timeBarCollection = new EquityInterDayTimeBarCollection(
                security.Market,
                marketDataParam.Epoch,
                new[] { marketData });
            var universeEvent = new UniverseEvent(
                UniverseStateEvent.EquityInterDayTick,
                marketDataParam.Epoch,
                timeBarCollection);

            return(universeEvent);
        }
 /// <summary>
 /// The calculate daily volume threshold percentage.
 /// </summary>
 /// <param name="securityTimeBar">
 /// The security time bar.
 /// </param>
 /// <returns>
 /// The <see cref="long"/>.
 /// </returns>
 private long CalculateDailyVolumeThresholdPercentage(EquityInstrumentInterDayTimeBar securityTimeBar)
 {
     return((long)Math.Ceiling(
                this.parameters.FixedIncomeHighVolumePercentageDaily.GetValueOrDefault(0)
                * securityTimeBar.DailySummaryTimeBar.DailyVolume.Traded));
 }