# 基础算法 / 权重调整

## `sb_WeightAdjust(data, stock_upper, crn_upper, hy_upper, crn_n, fconfig, scn_upper)`

声明：function

根据给定的股票和约束，给出调整后的新权重

<!-- tags: 约束条件 限制条件 组合权重 资产配置 证券 个股 权重约束 权重调整 -->

| 参数          | 类型    | 说明                                                                                                                                                                     |
| ------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `data`        | array   | 二维表，必须包含"代码"，"加权系数"列，若存在行业约束则必须包含"行业" 列，若存在市场约束则必须包含"市场"列。其中"加权系数"列也可用"比例(%)"列代替，与框 架 Fdata 格式一致 |
| `stock_upper` | array   | 实数或者一维数组，个股权重上限(%)                                                                                                                                        |
| `crn_upper`   | real    | 实数，集中度权重上限(%)                                                                                                                                                  |
| `hy_upper`    | real    | 实数，行业权重上限(%)                                                                                                                                                    |
| `crn_n`       | integer | 整数，前 N 个票，集中度参数                                                                                                                                              |
| `fconfig`     | array   | 求解参数，用于算法调整，有以下两种设置 array('行业约束优化算法':1) 用于调整行 业约束优化算法或者 array('集中度头部压缩方式':3) 用于调整集中度优化算法                    |
| `scn_upper`   | real    | 单只证券权重上限约束                                                                                                                                                     |

返回：array

### 示例

范例01：调用示例

```tsl
endt := 20250106T;
   t := GetBKByDate('SH000300', endt);
   data := PF_Percent(t,endt,1);
   data[:,'加权系数'] := data[:,'数值'];
   return SB_WeightAdjust(data, 3, 30);
```
