/// <summary> /// Set the Filler Strategy to Custom Value /// </summary> /// <param name="bidAskValue"></param> /// <returns>BidAskQuery</returns> public BidAskQuery WithFillCustomValue(BidAskValue bidAskValue) { _queryParamaters.FillerKindType = FillerKindType.CustomValue; _queryParamaters.FillerConfig.FillerBidAskDV = bidAskValue; return(this); }
/// <summary> /// BidAsk AddData /// </summary> /// <remarks> /// Add Data on to the curve with Instant /// </remarks> /// <returns>AddBidAskOperationResult</returns> public AddBidAskOperationResult AddData(Instant time, string product, BidAskValue value) { if (!_entity.OriginalGranularity.IsTimeGranularity()) { throw new BidAskException("This MarketData has Date granularity. Use AddData(LocalDate date...)"); } return(_addBidAsk(time.InUtc().LocalDateTime, product, value)); }
/// <summary> /// BidAsk AddData /// </summary> /// <remarks> /// Add Data on to the curve with localDate /// </remarks> /// <returns>AddBidAskOperationResult</returns> public AddBidAskOperationResult AddData(LocalDate localDate, string product, BidAskValue value) { if (_entity.OriginalGranularity.IsTimeGranularity()) { throw new BidAskException("This MarketData has Time granularity. Use AddData(Instant time...)"); } return(_addBidAsk(localDate.AtMidnight(), product, value)); }
private AddBidAskOperationResult _addBidAsk(LocalDateTime reportTime, string product, BidAskValue value) { //Relative products if (Regex.IsMatch(product, @"\+\d+$")) { throw new NotSupportedException("Relative Products are not supported"); } if (_entity.OriginalGranularity.IsTimeGranularity()) { var period = ArtesianUtils.MapTimePeriod(_entity.OriginalGranularity); if (!reportTime.IsStartOfInterval(period)) { throw new BidAskException("Trying to insert Report Time {0} with the wrong format to BidAsk {1}. Should be of period {2}", reportTime, _identifier, period); } } else { var period = ArtesianUtils.MapDatePeriod(_entity.OriginalGranularity); if (!reportTime.IsStartOfInterval(period)) { throw new BidAskException("Trying to insert Report Time {0} with wrong the format to BidAsk {1}. Should be of period {2}", reportTime, _identifier, period); } } if (BidAsks.Any(row => row.ReportTime == reportTime && row.Product.Equals(product))) { return(AddBidAskOperationResult.ProductAlreadyPresent); } BidAsks.Add(new BidAskElement(reportTime, product, value)); return(AddBidAskOperationResult.BidAskAdded); }
/// <summary> /// BidAskElement constructor /// </summary> public BidAskElement(LocalDateTime reportTime, string product, BidAskValue value) { ReportTime = reportTime; Product = product; Value = value; }