Пример #1
0
        public static string eqRiskPortfolio(
            [ExcelArgument(Description = "Portfolio Id ")] string ObjectId,
            [ExcelArgument(Description = "Instruments in portfolio ")] object[] instids,
            [ExcelArgument(Description = "trigger ")] object trigger)
        {
            if (ExcelUtil.CallFromWizard())
            {
                return("");
            }

            string callerAddress = "";

            callerAddress = ExcelUtil.getActiveCellAddress();

            try
            {
                List <EnergyCommodityExt> port_ = new List <EnergyCommodityExt>();

                foreach (string sid in instids)
                {
                    EnergyCommodityExt inst = OHRepository.Instance.getObject <EnergyCommodityExt>(sid);
                    port_.Add(inst);
                }

                string id = "Port@" + ObjectId;
                OHRepository.Instance.storeObject(id, port_, callerAddress);
                id += "#" + (String)DateTime.Now.ToString(@"HH:mm:ss");
                return(id);
            }
            catch (Exception e)
            {
                ExcelUtil.logError(callerAddress, System.Reflection.MethodInfo.GetCurrentMethod().Name.ToString(), e.Message);
                return(e.Message);
            }
        }
 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(EnergyCommodityExt obj)
 {
     return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr);
 }
Пример #3
0
        public static object eqInstDisplayEnergySwap(
            [ExcelArgument(Description = "id of energy ")] string ObjectId,
            [ExcelArgument(Description = "trigger ")] object trigger)
        {
            if (ExcelUtil.CallFromWizard())
            {
                return("");
            }

            string callerAddress = "";

            callerAddress = ExcelUtil.getActiveCellAddress();

            try
            {
                Xl.Range rng = ExcelUtil.getActiveCellRange();

                EnergyCommodityExt inst = OHRepository.Instance.getObject <EnergyCommodityExt>(ObjectId);
                if (inst.GetType() == typeof(EnergyFutureExt))
                {
                    PricingPeriodExt pp = (inst as EnergyFutureExt).pricingPeriod();

                    object[,] ret = new object[2, 10];
                    ret[0, 0]     = "PayDate"; ret[0, 1] = "Quantity"; ret[0, 2] = "PayCoeff"; ret[0, 3] = "RecCoeff";
                    ret[0, 4]     = "PaySprd"; ret[0, 5] = "RecSprd";
                    ret[0, 6]     = "PayDelta"; ret[0, 7] = "DiscountedPayDelta";
                    ret[0, 8]     = "RecDelta"; ret[0, 9] = "DiscountedRecDelta";

                    ret[1, 0] = pp.paymentDate().serialNumber();
                    ret[1, 1] = pp.quantity();
                    ret[1, 2] = pp.payCoeff();
                    ret[1, 3] = pp.recCoeff();
                    ret[1, 4] = pp.paySpread();
                    ret[1, 5] = pp.recSpread();
                    ret[1, 6] = pp.getuPayDelta();
                    ret[1, 7] = pp.getdPayDelta();
                    ret[1, 8] = pp.getuRecDelta();
                    ret[1, 9] = pp.getdRecDelta();

                    return(ret);
                }
                else
                {
                    double            npv = inst.NPV();
                    PricingPeriodExts pps = (inst as EnergySwapExt).pricingPeriods();

                    object[,] ret = new object[pps.Count + 1, 10];

                    ret[0, 0] = "PayDate"; ret[0, 1] = "Quantity"; ret[0, 2] = "PayCoeff"; ret[0, 3] = "RecCoeff";
                    ret[0, 4] = "PaySprd"; ret[0, 5] = "RecSprd";
                    ret[0, 6] = "PayDelta"; ret[0, 7] = "DiscountedPayDelta";
                    ret[0, 8] = "RecDelta"; ret[0, 9] = "DiscountedRecDelta";
                    for (int i = 0; i < pps.Count; i++)
                    {
                        ret[i + 1, 0] = pps[i].paymentDate().serialNumber();
                        ret[i + 1, 1] = pps[i].quantity();
                        ret[i + 1, 2] = pps[i].payCoeff();
                        ret[i + 1, 3] = pps[i].recCoeff();
                        ret[i + 1, 4] = pps[i].paySpread();
                        ret[i + 1, 5] = pps[i].recSpread();
                        ret[i + 1, 6] = pps[i].getuPayDelta();
                        ret[i + 1, 7] = pps[i].getdPayDelta();
                        ret[i + 1, 8] = pps[i].getuRecDelta();
                        ret[i + 1, 9] = pps[i].getdRecDelta();
                    }

                    return(ret);
                }
            }
            catch (Exception e)
            {
                ExcelUtil.logError(callerAddress, System.Reflection.MethodInfo.GetCurrentMethod().Name.ToString(), e.Message);
                return("#EQ_ERR!");
            }
        }