Exemplo n.º 1
0
        public double CalculateParRate(IFundingModel model)
        {
            var discountCurve = model.Curves[CashDiscountCurve];
            var SpotRate      = model.GetFxRate(SpotDate, MetalCCY, CashCCY);
            var t             = SpotDate.CalculateYearFraction(DeliveryDate, Basis);
            var fwd           = model.GetFxRate(DeliveryDate, MetalCCY, CashCCY);
            var ctgo          = (fwd / SpotRate - 1.0) / t;

            return(ctgo);
        }
Exemplo n.º 2
0
        public double Pv(IFundingModel model, bool updateState)
        {
            var discountCurve = model.Curves[CashDiscountCurve];
            var SpotRate      = model.GetFxRate(SpotDate, MetalCCY, CashCCY);
            var t             = SpotDate.CalculateYearFraction(DeliveryDate, Basis);
            var strike        = SpotRate * (1.0 + ContangoRate * t);
            var fwd           = model.GetFxRate(DeliveryDate, MetalCCY, CashCCY);
            var FV            = (fwd - strike) * MetalQuantity;
            var PV            = discountCurve.Pv(FV, DeliveryDate);

            return(PV);
        }
Exemplo n.º 3
0
        public double SuggestPillarValue(IFundingModel model)
        {
            var discountCurve = model.Curves[CashDiscountCurve];
            var SpotRate      = model.GetFxRate(SpotDate, MetalCCY, CashCCY);
            var t             = SpotDate.CalculateYearFraction(DeliveryDate, Basis);
            var fwd           = SpotRate * (1.0 + ContangoRate * t);
            var fxr           = fwd / SpotRate;
            var df1           = discountCurve.GetDf(SpotDate, PillarDate);
            var df2           = df1 / fxr;
            var rate          = -System.Math.Log(df2) / t;

            return(rate);
        }
Exemplo n.º 4
0
        private double GetFwd(DateTime fwdDate, double contango)
        {
            var t = SpotDate.CalculateYearFraction(fwdDate, Basis);

            return(Spot * (1.0 + contango * t));
        }
 void ReleaseDesignerOutlets()
 {
     if (Activity != null)
     {
         Activity.Dispose();
         Activity = null;
     }
     if (CurrencyPair != null)
     {
         CurrencyPair.Dispose();
         CurrencyPair = null;
     }
     if (Executing != null)
     {
         Executing.Dispose();
         Executing = null;
     }
     if (LeftSideAction != null)
     {
         LeftSideAction.Dispose();
         LeftSideAction = null;
     }
     if (LeftSideBigNumber != null)
     {
         LeftSideBigNumber.Dispose();
         LeftSideBigNumber = null;
     }
     if (LeftSideButton != null)
     {
         LeftSideButton.Dispose();
         LeftSideButton = null;
     }
     if (LeftSideNumber != null)
     {
         LeftSideNumber.Dispose();
         LeftSideNumber = null;
     }
     if (LeftSidePips != null)
     {
         LeftSidePips.Dispose();
         LeftSidePips = null;
     }
     if (Notional != null)
     {
         Notional.Dispose();
         Notional = null;
     }
     if (NotionalCCY != null)
     {
         NotionalCCY.Dispose();
         NotionalCCY = null;
     }
     if (PriceMovementDown != null)
     {
         PriceMovementDown.Dispose();
         PriceMovementDown = null;
     }
     if (PriceMovementUp != null)
     {
         PriceMovementUp.Dispose();
         PriceMovementUp = null;
     }
     if (RightSideAction != null)
     {
         RightSideAction.Dispose();
         RightSideAction = null;
     }
     if (RightSideBigNumber != null)
     {
         RightSideBigNumber.Dispose();
         RightSideBigNumber = null;
     }
     if (RightSideButton != null)
     {
         RightSideButton.Dispose();
         RightSideButton = null;
     }
     if (RightSideNumber != null)
     {
         RightSideNumber.Dispose();
         RightSideNumber = null;
     }
     if (RightSidePips != null)
     {
         RightSidePips.Dispose();
         RightSidePips = null;
     }
     if (SpotDate != null)
     {
         SpotDate.Dispose();
         SpotDate = null;
     }
     if (Spread != null)
     {
         Spread.Dispose();
         Spread = null;
     }
 }