Beispiel #1
0
        public OptimizationParameterSet GetParameters(object obj)
        {
            var parameters = new OptimizationParameterSet();
            var properties = obj.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetProperty | BindingFlags.SetProperty);

            foreach (var parameter in properties.SelectMany(property => property.GetCustomAttributes(false).OfType <OptimizationParameterAttribute>().Select(attribute
                                                                                                                                                             => new OptimizationParameter(property.Name, attribute.LowerBound, attribute.UpperBound, attribute.Step))))
            {
                parameters.Add(parameter);
            }
            return(parameters);
        }
Beispiel #2
0
        public void SetParameters(object obj, OptimizationParameterSet parameters)
        {
            var num        = 0;
            var properties = obj.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetProperty | BindingFlags.SetProperty);

            foreach (var property in properties.SelectMany(property => property.GetCustomAttributes(false).OfType <OptimizationParameterAttribute>(), (property, attribute) => property))
            {
                if (property.Name != parameters[num].Name)
                {
                    throw new Exception("Can not set parameter. Wrong parameter order.");
                }
                property.SetValue(obj, parameters[num].Value);
                num++;
            }
        }
Beispiel #3
0
 public OptimizationResult(OptimizationParameterSet parameterSet, PortfolioStatistics statistics)
 {
     OptimizationParameterSet = parameterSet;
     OptimizationStatistics   = new OptimizationStatistics(statistics);
 }