# 组合优化 / 蒙特卡洛

## `tsPortfolioOptimizer_MonterCarlo`

声明：class

模拟资产组合资金路径，并查询最终资金统计、路径权重和资金分位点

<!-- tags: 汇总 数学优化 约束求解 组合权重 资产配置 投资组合 蒙特卡洛 随机模拟 -->

### `FSimulateTime`

声明：field

模拟时间（年） 20

可见性：`public`

类型：numeric

### `FInitialCapital`

声明：field

初始资金 1000000

可见性：`public`

类型：numeric

### `FSimulateNumber`

声明：field

模拟次数 1000

可见性：`public`

类型：integer

### `FTargetCapital`

声明：field

目标资金 5000000

可见性：`public`

类型：numeric

### `FAddCapital`

声明：field

每月补充资金 10000

可见性：`public`

类型：numeric

### `FSampleMethod`

声明：field

抽样方法 0

可见性：`public`

类型：integer

### `FAssetArray`

声明：field

资产代码序列

可见性：`public`

类型：array

### `FAssetReturn`

声明：field

资产月度收益率序列 nil

可见性：`public`

类型：array

### `FAssetReturnCov`

声明：field

资产收益协方差矩阵 nil

可见性：`public`

类型：array

### `FAssetExpectReturn`

声明：field

资产预期收益 nil

可见性：`public`

类型：array

### `FWeight`

声明：field

初始资产权重 nil

可见性：`public`

类型：array

### `FWeightType`

声明：field

初始权重类型选择 0

可见性：`public`

类型：integer

### `AssetOriginWeight(stocks)`

声明：function

返回资产初始权重

<!-- tags: 计算 初始权重 资产配置 -->

可见性：`public`

| 参数     | 类型  | 说明                     |
| -------- | ----- | ------------------------ |
| `stocks` | array | 一维字符串数组，资产列表 |

返回：array

### `NodeWeight(n)`

声明：function

在第 N 个节点的权重， N 的范围为 1 到 FSimulateTime*12，可根据需求自定义

<!-- tags: 计算 节点权重 资金路径 -->

可见性：`public`

| 参数 | 类型    | 说明              |
| ---- | ------- | ----------------- |
| `n`  | integer | 整数，第 N 个节点 |

### `RandMVNSampling()`

声明：function

调用 randmvn(FAssetExpectReturn, FAssetReturnCov, FSimulateTime*12)生成多元正态分布

<!-- tags: 执行 随机模拟 -->

可见性：`public`

返回：array

### `GetAnalyzeResults()`

声明：function

汇总资金路径模拟结果，包括最终资金统计、分位点和年化收益风险

<!-- tags: 查询 模拟结果 结果分析 -->

可见性：`public`

返回：array

### `GetPathweight()`

声明：function

路径权重详情

<!-- tags: 查询 组合权重 资产配置 -->

可见性：`public`

返回：array

### `GetCapitalpath()`

声明：function

获取各模拟期资金分位点构成的资金路径详情

<!-- tags: 查询 资金路径 蒙特卡洛 -->

可见性：`public`

返回：array
