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); }
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); }
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); }