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

    }
Beispiel #2
0
    /// <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;
    }
Beispiel #3
0
 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;
 }