Example #1
0
        /// <summary>
        /// Check whether the price is within the range
        /// </summary>
        /// <param name="session"></param>
        /// <param name="checkPrice"></param>
        /// <returns></returns>
        public static bool CheckHistoricalPrice(IDalSession session, IHistoricalPrice checkPrice, out string errMessage)
        {
            bool success = true;
            errMessage = "";
            if (checkPrice != null)
            {
                IList<IHistoricalPrice> previousPrices = GetHistoricalPrices(session,
                    checkPrice.Instrument.Key, checkPrice.Date.AddDays(-5),
                    checkPrice.Date.AddDays(-1));
                if (previousPrices != null && previousPrices.Count > 0)
                {
                    Price prevPrice = previousPrices.OrderByDescending(x => x.Date).FirstOrDefault().Price;
                    if (prevPrice == null) prevPrice = checkPrice.Instrument.Get(e => e.CurrentPrice).Get(e => e.Price);

                    if (prevPrice != null)
                    {
                        decimal diff = Math.Abs((prevPrice.Quantity - checkPrice.Price.Quantity) / prevPrice.Quantity);
                        if (diff > 0.05M)
                        {
                            errMessage = string.Format("The new Price is {0}% different from the previous price.", (diff * 100).ToString("0.0"));
                            success = false;
                        }
                    }
                }
            }
            return success;
        }
 public static bool CheckNewPrice(IDalSession session, IHistoricalPrice newPrice, bool raiseErr, out string errMessage)
 {
     bool success = true;
     errMessage = "";
     if (!HistoricalPriceMapper.CheckHistoricalPrice(session, newPrice, out errMessage) && !string.IsNullOrEmpty(errMessage))
     {
         if (raiseErr)
             throw new ApplicationException(errMessage);
         else
             success = false;
     }
     return success;
 }
 public static bool CheckNewPrice(IDalSession session, IHistoricalPrice newPrice)
 {
     string errMessage;
     return CheckNewPrice(session, newPrice, true, out errMessage);
 }
Example #4
0
 public static bool Update(IDalSession session, IHistoricalPrice historicalPrice)
 {
     session.InsertOrUpdate(historicalPrice);
     return true;
 }