示例#1
0
        public static string Calibration_FwdCurveCollection_MakeFromCalibrationProblem(string baseHandle, string fwdCurveConstructorHandle, bool useAd)
        {
            if (ExcelDnaUtil.IsInFunctionWizard())
            {
                return("No calulation in wizard.");
            }

            CalibrationFunctions.FwdCurveCollection_MakeFromCalibrationProblem(baseHandle, fwdCurveConstructorHandle, useAd);
            return(baseHandle);
        }
示例#2
0
        public static string Calibration_DiscCurve_MakeFromCalibrationProblem(string baseHandle, string curveCalibProblemHandle, string calibSpecHandle, bool useAd)
        {
            if (ExcelDnaUtil.IsInFunctionWizard())
            {
                return("No calulation in wizard.");
            }

            CalibrationFunctions.DiscCurve_MakeFromCalibrationProblem(baseHandle, curveCalibProblemHandle, calibSpecHandle, useAd);
            return(baseHandle);
        }
示例#3
0
        public static string Calibration_FwdCurveCalibrationProblem_Make(string baseHandle, string discCurveHandle, object[] curveCalibHandles, object[] fwdCurveTenors, string calibSpecHandle)
        {
            string[]     problemNamesString = curveCalibHandles.Cast <string>().ToArray();
            string[]     tenorsString       = fwdCurveTenors.Cast <string>().ToArray();
            CurveTenor[] tenorsActual       = new CurveTenor[tenorsString.Length];

            for (int i = 0; i < tenorsString.Length; i++)
            {
                tenorsActual[i] = StrToEnum.CurveTenorConvert(tenorsString[i]);
            }

            CalibrationFunctions.FwdCurveCalibrationProblem_Make(baseHandle, discCurveHandle, problemNamesString, tenorsActual, calibSpecHandle);
            return(baseHandle);
        }
示例#4
0
        public static string Calibration_CalibrationSettings_Make(string baseHandle, double precision, double scaling, double diffStep, string interpolation, int maxIterations, double startingValues, int bfgs_m, bool useAd, bool inheritDiscSize, double stepSizeOfInheritance, object[] calibrationOrder = null)
        {
            InterpMethod interp = StrToEnum.InterpolationConvert(interpolation);

            if (calibrationOrder[0] is ExcelMissing)
            {
                calibrationOrder = null;
                CalibrationFunctions.CalibrationSpec_Make(baseHandle, precision, scaling, diffStep, interp, maxIterations, startingValues, bfgs_m, useAd, inheritDiscSize, stepSizeOfInheritance);
            }
            else
            {
                // Need to do this, since object[] cannot be cast to int[]...
                int[] intCalibrationOrder = new int[calibrationOrder.Length];
                for (int i = 0; i < calibrationOrder.Length; i++)
                {
                    intCalibrationOrder[i] = Convert.ToInt32(calibrationOrder[i]);
                }

                CalibrationFunctions.CalibrationSpec_Make(baseHandle, precision, scaling, diffStep, interp, maxIterations, startingValues, bfgs_m, useAd, inheritDiscSize, stepSizeOfInheritance, intCalibrationOrder);
            }

            return(baseHandle);
        }
示例#5
0
 public static string Calibration_CurveCalibrationProblem_Make(string baseHandle, string instrumentFactoryHandle, object[] quoteIdentifiers, object[] quoteValues)
 {
     CalibrationFunctions.CurveCalibrationProblem_Make(baseHandle, instrumentFactoryHandle, quoteIdentifiers.Cast <string>().ToArray(), quoteValues.Cast <double>().ToArray());
     return(baseHandle);
 }