请将以下代码重构为一个段落,并保持原有的格式:

```matlab

p = Portfolio(‘AssetMean’,[0.3, 0.1, 0.5], ‘AssetCovar’,... [0.01, -0.010, 0.004; -0.010, 0.040, -0.002; 0.004, -0.002, 0.023]);

p = setDefaultConstraints(p);

plotFrontier(p, 20);

weights = estimateMaxSharpeRatio(p);

[risk, ret] = estimatePortMoments(p, weights);

hold on

plot(risk,ret,‘*r’)

p = Portfolio(‘AssetMean’,[0.3, 0.1, 0.5], ‘AssetCovar’,... [0.01, -0.010, 0.004; -0.010, 0.040, -0.002; 0.004, -0.002, 0.023]);

p = setDefaultConstraints(p);

plotFrontier(p, 20);

p = setSolver(p,‘quadprog’,‘Display’,‘off’,‘ConstraintTolerance’,1.0e-8,‘OptimalityTolerance’,1.0e-8,‘StepTolerance’,1.0e-8,‘MaxIterations’,10000);

weights = estimateMaxSharpeRatio(p);

[risk, ret] = estimatePortMoments(p, weights);

hold on

plot(risk,ret,‘*r’)

```

= Portfolio('AssetMean',[0.3, 0.1, 0.5], 'AssetCovar',[0.01, -0.010, 0.004; -0.010, 0.040, -0.002; 0.004, -0.002, 0.023],'lb', 0,'budget', 1);

plotFrontier(p, 20);

p = setSolver(p, 'fmincon', 'Display', 'off', 'Algorithm', 'sqp', ...

'SpecifyObjectiveGradient', true, 'SpecifyConstraintGradient', true, ...

'ConstraintTolerance', 1.0e-8, 'OptimalityTolerance', 1.0e-8, 'StepTolerance', 1.0e-8);

weights = estimateMaxSharpeRatio(p);

te = 0.08;

p = setTrackingError(p,te,weights);

[risk, ret] = estimatePortMoments(p,weights);

hold on plot(risk,ret,'*r');

以下是根据提供的内容完成的内容重构,并保持段落结构:

首先,我们定义了蓝筹股的瞬间值、市场风险和现金风险:

```matlab

mret = MarketMean;

mrsk = sqrt(MarketVar);

cret = CashMean;

crsk = sqrt(CashVar);

```

接着,我们计算投资组合的初始价值和风险:

```matlab

p = Portfolio('AssetList', AssetList, 'RiskFreeRate', CashMean);

p = setAssetMoments(p, AssetMean, AssetCovar);

p = setInitPort(p, 1/p.NumAssets);

[ersk, eret] = estimatePortMoments(p, p.InitPort);

```

然后,我们为投资组合设置默认约束条件:

```matlab

p = setDefaultConstraints(p);

```

接下来,我们估算投资组合的前沿权重:

```matlab

pwgt = estimateFrontier(p, 20);

[prsk, pret] = estimatePortMoments(p, pwgt);

```

然后,我们计算完全优化的投资组合的风险-收益比:

```matlab

pwgtshpr_fully = estimateMaxSharpeRatio(p,'Method','direct');

[riskshpr_fully, retshpr_fully] = estimatePortMoments(p,pwgtshpr_fully);

```

最后,我们设定投资组合的时间范围和目标权重,以及估算时间范围内的投资组合权重和收益:

```matlab

q = setBudget(p, 0, 1);

qwgt = estimateFrontier(q, 20);

[qrsk, qret] = estimatePortMoments(q, qwgt);

```

根据提供的内容,以下是重构后的代码:

```matlab

pwgtshpr_direct = estimateMaxSharpeRatio(q, 'Method', 'direct');

pwgtshpr_iter = estimateMaxSharpeRatio(q, 'Method', 'iterative'); % Default for 'TolX' is 1e-8

[riskshpr_diret, retshpr_diret] = estimatePortMoments(q, pwgtshpr_direct);

[riskshpr_iter, retshpr_iter] = estimatePortMoments(q, pwgtshpr_iter);

clf;

portfolioexamples_plot('Efficient Frontier with Capital Allocation Line', ...

{'line', prsk, pret, {'EF'}, '-r', 2}, ...

{'line', qrsk, qret, {'EF with riskfree'}, '-b', 1}, ...

{'scatter', [mrsk, crsk, ersk, riskshpr_fully, riskshpr_diret, riskshpr_iter], ...

[mret, cret, eret, retshpr_fully , retshpr_diret, retshpr_iter], {'Market', 'Cash', 'Equal', 'Sharpe fully invest', 'Sharpe diret', 'Sharpe iter'}}, ...

{'scatter', sqrt(diag(p.AssetCovar)), p.AssetMean, p.AssetList, '.r'});

```

重构后的代码与原始代码相同,只是将一些缩进进行了调整以提高代码的可读性。

请将以下代码进行重构并保持段落结构:

```matlab

maxReturn = max(qret); % 最大收益组合

minReturn = min(qret); % 最小收益组合

display(0.01 * (maxReturn - minReturn));

pwgtshpr_iter_largerTol = estimateMaxSharpeRatio(q, 'Method', 'iterative', 'TolX', 1e-4);

display(table(pwgtshpr_iter, pwgtshpr_iter_largerTol, 'VariableNames', {'Default TolX = 1e-8', 'TolX = 1e-4'}));

```

重构后的代码如下:

```matlab

% 计算最大收益和最小收益组合

maxReturn = max(qret); % 最大收益组合

minReturn = min(qret); % 最小收益组合

% 显示最大和最小收益之间的百分比差异

display(0.01 * (maxReturn - minReturn));

% 使用迭代方法估算最大夏普比率,并设置容差值为1e-4

pwgtshpr_iter_largerTol = estimateMaxSharpeRatio(q, 'Method', 'iterative', 'TolX', 1e-4);

% 显示迭代结果和变量名称

display(table(pwgtshpr_iter, pwgtshpr_iter_largerTol, 'VariableNames', {'默认容差值 TolX = 1e-8', '容差值 TolX = 1e-4'}));

```

序号 | ToleranceX_1e-8 | ToleranceX_1e-4 | 数值 |

|----|--------------|---------------|------------|

| 0 | 3.07295e-09 | 3.11629e-05 | 0.009173 |

| 1 | 3.07295e-09 | 3.11629e-05 | 0.009174 |

| 2 | 3.14526e-08 | 3.18489e-04 | 0.031008 |

| 3 | 3.14526e-08 | 3.18489e-04 | 0.031011 |

| 4 | 5.47781e-16 | 5.66877e-07 | 0 |

| 5 | 5.47781e-16 | 5.66877e-07 | 0 |

| 6 | 3.24272e-07 | 3.32224e-05 | 0 |

| 7 | 3.24272e-07 | 3.32224e-05 | 0 |

| 8 | 4.86949e-07 | 4.99289e-05 | 0 |

| 9 | 4.86949e-07 | 4.99289e-05 | 0 |

| 10 | 5.79588e-16 | 6.02465e-07 | 0 |

| 11 | 5.79588e-16 | 6.02465e-07 | 0 |

| 12 | 1.59638e-05 | 1.67345e-04 | ... |

| ...| ... | ... | ... |

AssetMean = [ 00101110; 0.0043532; 0.0137058]

AssetCovar = [ 0.00324625; 0.00022983; 0.00420395].

p = Portfolio('AssetMean', AssetMean, 'AssetCovar', AssetCovar).

p = setDefaultConstraints(p).

p = setBounds(p, 0.02, 0.5,'BoundType', 'Conditional', 'NumAssets', 3).

p = setMinMaxNumAssets(p, 2, 2).

weights = estimateMaxSharpeRatio(p,'Method','iterative')

以下是重构后的内容:

MaxIterations: 1000

AbsoluteGapTolerance: 1.0000e-07

RelativeGapTolerance: 1.0000e-05

NonlinearScalingFactor: 1000

ObjectiveScalingFactor: 1000

Display: 'off'

CutGeneration: 'basic'

MaxIterationsInactiveCut: 30

ActiveCutTolerance: 1.0000e-07

IntMainSolverOptions: [1x1 optim.options.Intlinprog]

NumIterationsEarlyIntegerConvergence: 30

ExtendedFormulation: 0

NumInnerCuts: 10

NumInitialOuterCuts: 10