private IntradayPrices BuildIntraday(EquityInstrumentIntraDayTimeBar tick, decimal newBuy, string currency)
        {
            if (tick.DailySummaryTimeBar.IntradayPrices?.High == null ||
                tick.DailySummaryTimeBar.IntradayPrices?.Low == null)
            {
                return(new IntradayPrices(
                           new Money(newBuy, currency),
                           new Money(newBuy, currency),
                           new Money(newBuy, currency),
                           new Money(newBuy, currency)));
            }

            var adjustedHigh = tick.DailySummaryTimeBar.IntradayPrices.High.Value.Value < newBuy
                                   ? new Money(newBuy, tick.DailySummaryTimeBar.IntradayPrices.High.Value.Currency)
                                   : tick.DailySummaryTimeBar.IntradayPrices.High.Value;

            var adjustedLow = tick.DailySummaryTimeBar.IntradayPrices.Low.Value.Value < newBuy
                                  ? new Money(newBuy, tick.DailySummaryTimeBar.IntradayPrices.High.Value.Currency)
                                  : tick.DailySummaryTimeBar.IntradayPrices.Low.Value;

            var newIntraday = new IntradayPrices(
                tick.DailySummaryTimeBar.IntradayPrices.Open,
                tick.DailySummaryTimeBar.IntradayPrices.Close,
                adjustedHigh,
                adjustedLow);

            return(newIntraday);
        }
Exemple #2
0
        public void Ctor_AssignsVariables_Correctly()
        {
            var open  = new Money(100, "gbp");
            var close = new Money(99, "USD");
            var high  = new Money(10, "GBP");
            var low   = new Money(9, "GBP");

            var intradayPrices = new IntradayPrices(open, close, high, low);

            Assert.AreEqual(open, intradayPrices.Open);
            Assert.AreEqual(close, intradayPrices.Close);
            Assert.AreEqual(high, intradayPrices.High);
            Assert.AreEqual(low, intradayPrices.Low);
        }
        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);
        }
Exemple #5
0
        private IntradayPrices BuildIntradayPrices(
            FinancialInstrumentTimeBarCsv csv,
            decimal open,
            decimal close,
            decimal high,
            decimal low)
        {
            var openPrice = open != 0 ? new Money(open, csv.Currency) : (Money?)null;

            var closePrice = close != 0 ? new Money(close, csv.Currency) : (Money?)null;

            var highPrice = high != 0 ? new Money(high, csv.Currency) : (Money?)null;

            var lowPrice = low != 0 ? new Money(low, csv.Currency) : (Money?)null;

            var intradayPrices = new IntradayPrices(openPrice, closePrice, highPrice, lowPrice);

            return(intradayPrices);
        }