private async Task initiate(BondMarket market_, SwapCurve curve_, CarbonClient cc_) { m_priceYields = market_.Bonds.Where(x => x.Value.Maturity > SettleDate) .Select(x => x.Value.CreatePriceYield(DateContext, SettleDate)); var list = new List<BondMeasureCalcSpreadsOverCurve>(); foreach (var v in m_priceYields) list.Add(await v.CreateFullMeasuresCalculator(curve_, cc_)); m_spreads = list; //m_spreads = m_priceYields.Select(x => x.CreateFullMeasuresCalculator(curve_, cc_)); m_values = m_spreads.ToDictionary(x => x.Measures.Bond.Isin, x => x.Measures); }
/// <summary> /// Returns an instance for the specified market /// </summary> /// <param name="marketName_"></param> /// <param name="cc_"></param> /// <returns></returns> public static async Task<BondMarket> Get(Market marketName_, CarbonClient cc_) { BondMarket ret; if (_cache.TryGetValue(marketName_, out ret)) return ret; ret = _cache[marketName_] = new BondMarket(marketName_); await ret.populate(cc_); return ret; }
public CMTStructure(BondMarket market_, AsOfAndSpotSettle asOf_) { Market = market_; DateContext = asOf_; workOutSections(); }
public static async Task<BondMarketPricer> Create(BondMarket market_, SwapCurve curve_, AsOfAndSpotSettle dateContext_, DateTime settleDate_, CarbonClient cc_) { var ret = new BondMarketPricer(dateContext_, settleDate_); await ret.initiate(market_, curve_, cc_); return ret; }