%This Example for using users m-function Optimization_subroutine.m was created automatically by PSG Toolbox. %Function description: %maximize %linear(matrix_average_annualized_returns) %Constraint: <= parameter_bound %cdarmulti_dev(parameter_alpha,matrix_1,matrix_10,matrix_11,matrix_2,matrix_3,matrix_4,matrix_5,matrix_6,matrix_7,matrix_8,matrix_9) %Box: >= parameter_bound_1, <= parameter_bound_2 % %Input variables: % %Inputs PSG Type PSG Object Location in Problem Statement Class %matrix_1_data data matrix_1 cdarmulti_dev(parameter_alpha,matrix_1,matrix_10,matrix_11,matrix_2,matrix_3,matrix_4,matrix_5,matrix_6,matrix_7,matrix_8,matrix_9) double %matrix_1_vars vars matrix_1 cdarmulti_dev(parameter_alpha,matrix_1,matrix_10,matrix_11,matrix_2,matrix_3,matrix_4,matrix_5,matrix_6,matrix_7,matrix_8,matrix_9) cell %matrix_2_data data matrix_2 cdarmulti_dev(parameter_alpha,matrix_1,matrix_10,matrix_11,matrix_2,matrix_3,matrix_4,matrix_5,matrix_6,matrix_7,matrix_8,matrix_9) double %matrix_2_vars vars matrix_2 cdarmulti_dev(parameter_alpha,matrix_1,matrix_10,matrix_11,matrix_2,matrix_3,matrix_4,matrix_5,matrix_6,matrix_7,matrix_8,matrix_9) cell %matrix_3_data data matrix_3 cdarmulti_dev(parameter_alpha,matrix_1,matrix_10,matrix_11,matrix_2,matrix_3,matrix_4,matrix_5,matrix_6,matrix_7,matrix_8,matrix_9) double %matrix_3_vars vars matrix_3 cdarmulti_dev(parameter_alpha,matrix_1,matrix_10,matrix_11,matrix_2,matrix_3,matrix_4,matrix_5,matrix_6,matrix_7,matrix_8,matrix_9) cell %matrix_4_data data matrix_4 cdarmulti_dev(parameter_alpha,matrix_1,matrix_10,matrix_11,matrix_2,matrix_3,matrix_4,matrix_5,matrix_6,matrix_7,matrix_8,matrix_9) double %matrix_4_vars vars matrix_4 cdarmulti_dev(parameter_alpha,matrix_1,matrix_10,matrix_11,matrix_2,matrix_3,matrix_4,matrix_5,matrix_6,matrix_7,matrix_8,matrix_9) cell %matrix_5_data data matrix_5 cdarmulti_dev(parameter_alpha,matrix_1,matrix_10,matrix_11,matrix_2,matrix_3,matrix_4,matrix_5,matrix_6,matrix_7,matrix_8,matrix_9) double %matrix_5_vars vars matrix_5 cdarmulti_dev(parameter_alpha,matrix_1,matrix_10,matrix_11,matrix_2,matrix_3,matrix_4,matrix_5,matrix_6,matrix_7,matrix_8,matrix_9) cell %matrix_6_data data matrix_6 cdarmulti_dev(parameter_alpha,matrix_1,matrix_10,matrix_11,matrix_2,matrix_3,matrix_4,matrix_5,matrix_6,matrix_7,matrix_8,matrix_9) double %matrix_6_vars vars matrix_6 cdarmulti_dev(parameter_alpha,matrix_1,matrix_10,matrix_11,matrix_2,matrix_3,matrix_4,matrix_5,matrix_6,matrix_7,matrix_8,matrix_9) cell %matrix_7_data data matrix_7 cdarmulti_dev(parameter_alpha,matrix_1,matrix_10,matrix_11,matrix_2,matrix_3,matrix_4,matrix_5,matrix_6,matrix_7,matrix_8,matrix_9) double %matrix_7_vars vars matrix_7 cdarmulti_dev(parameter_alpha,matrix_1,matrix_10,matrix_11,matrix_2,matrix_3,matrix_4,matrix_5,matrix_6,matrix_7,matrix_8,matrix_9) cell %matrix_8_data data matrix_8 cdarmulti_dev(parameter_alpha,matrix_1,matrix_10,matrix_11,matrix_2,matrix_3,matrix_4,matrix_5,matrix_6,matrix_7,matrix_8,matrix_9) double %matrix_8_vars vars matrix_8 cdarmulti_dev(parameter_alpha,matrix_1,matrix_10,matrix_11,matrix_2,matrix_3,matrix_4,matrix_5,matrix_6,matrix_7,matrix_8,matrix_9) cell %matrix_9_data data matrix_9 cdarmulti_dev(parameter_alpha,matrix_1,matrix_10,matrix_11,matrix_2,matrix_3,matrix_4,matrix_5,matrix_6,matrix_7,matrix_8,matrix_9) double %matrix_9_vars vars matrix_9 cdarmulti_dev(parameter_alpha,matrix_1,matrix_10,matrix_11,matrix_2,matrix_3,matrix_4,matrix_5,matrix_6,matrix_7,matrix_8,matrix_9) cell %matrix_10_data data matrix_10 cdarmulti_dev(parameter_alpha,matrix_1,matrix_10,matrix_11,matrix_2,matrix_3,matrix_4,matrix_5,matrix_6,matrix_7,matrix_8,matrix_9) double %matrix_10_vars vars matrix_10 cdarmulti_dev(parameter_alpha,matrix_1,matrix_10,matrix_11,matrix_2,matrix_3,matrix_4,matrix_5,matrix_6,matrix_7,matrix_8,matrix_9) cell %matrix_11_data data matrix_11 cdarmulti_dev(parameter_alpha,matrix_1,matrix_10,matrix_11,matrix_2,matrix_3,matrix_4,matrix_5,matrix_6,matrix_7,matrix_8,matrix_9) double %matrix_11_vars vars matrix_11 cdarmulti_dev(parameter_alpha,matrix_1,matrix_10,matrix_11,matrix_2,matrix_3,matrix_4,matrix_5,matrix_6,matrix_7,matrix_8,matrix_9) cell %matrix_average_annualized_returns_data data matrix_average_annualized_returns linear(matrix_average_annualized_returns) double %matrix_average_annualized_returns_vars vars matrix_average_annualized_returns linear(matrix_average_annualized_returns) cell %parameter_bound_data data parameter_bound Constraint: <= parameter_bound double %parameter_alpha_data data parameter_alpha cdarmulti_dev(parameter_alpha,matrix_1,matrix_10,matrix_11,matrix_2,matrix_3,matrix_4,matrix_5,matrix_6,matrix_7,matrix_8,matrix_9) double %parameter_bound_1_data data parameter_bound_1 Box: >= parameter_bound_1, <= parameter_bound_2 double %parameter_bound_2_data data parameter_bound_2 Box: >= parameter_bound_1, <= parameter_bound_2 double % %Output variables: % %solution_str = string with solution of problem; %outargstruc_arr = array of output PSG data structures; %Load data from mat-file: load('D:\American Optimal Decisions\PSG\MATLAB_Stan\All\Portfolio_Optimization_Drawdown_Constraints_Multiple_Paths\problem_3_drawdown_multiple\Optimization_subroutine_data.mat') %Save variables from mat-file to Workspace: tbpsg_export_to_workspace(toolboxstruc_arr) %Run users m-function Optimization_subroutine: [solution_str,outargstruc_arr] = Optimization_subroutine(matrix_1_data,matrix_1_vars,matrix_2_data,matrix_2_vars,matrix_3_data,matrix_3_vars,matrix_4_data,matrix_4_vars,matrix_5_data,matrix_5_vars,matrix_6_data,matrix_6_vars,matrix_7_data,matrix_7_vars,matrix_8_data,matrix_8_vars,matrix_9_data,matrix_9_vars,matrix_10_data,matrix_10_vars,matrix_11_data,matrix_11_vars,matrix_average_annualized_returns_data,matrix_average_annualized_returns_vars,parameter_bound_data,parameter_alpha_data,parameter_bound_1_data,parameter_bound_2_data); %Extract Objective: val_obj = tbpsg_objective(solution_str, outargstruc_arr); disp(' '); disp('Objective = '); disp(val_obj); %Extract optimal solution: point_data = tbpsg_optimal_point_data(solution_str, outargstruc_arr); disp(' '); disp('Optimal point = '); disp(point_data); %Extract structure containing PSG solution reports: output_structure = tbpsg_solution_struct(solution_str, outargstruc_arr); disp(' '); disp('Structure with PSG solution = '); disp(output_structure); %Uncomment the following lines to extract solutions details: %output = tbpsg_isoptimal(solution_str, outargstruc_arr); %output = tbpsg_function_data(solution_str, outargstruc_arr); %output = tbpsg_function_names(solution_str, outargstruc_arr); %output = tbpsg_time(solution_str, outargstruc_arr); %output = tbpsg_optimal_point_vars(solution_str, outargstruc_arr); %output = tbpsg_constraints_vars(solution_str, outargstruc_arr); %output = tbpsg_slack_data(solution_str, outargstruc_arr); %output = tbpsg_dual_data(solution_str, outargstruc_arr); %output = tbpsg_vector_constraint_data(solution_str, outargstruc_arr); %output = tbpsg_vector_dual_data(solution_str, outargstruc_arr); %output = tbpsg_vector_slack_data(solution_str, outargstruc_arr); %output = tbpsg_matrix_data(solution_str, outargstruc_arr); %output = tbpsg_matrix_vars(solution_str, outargstruc_arr); %output = tbpsg_vector_data(solution_str, outargstruc_arr);