# 金融 / 金融工程 / 投资组合 / Common ## `adjustSampleByAny(bk_name, beg_t, money, eval_exp, sort_dir, range_type, range_beg, range_end, percent_type, condition)` 声明:function 计算满足条件Condition的股票的EvalExp,选取值在RangeBeg跟RangeEnd之间,按照不同的RangeType类型选择股票,并分配资金 | 参数 | 类型 | 说明 | | -------------- | ----------- | -------------------------------------------------------------------------------- | | `bk_name` | striong | 字符串,板块名称 | | `beg_t` | t_date_time | 日期型时间,开始时间 | | `money` | real | 实数,初始资金 | | `eval_exp` | expression | 表达式 | | `sort_dir` | boolean | 真假,排序方向 | | `range_type` | integer | 整数,范围类型 | | `range_beg` | real | 实数,范围上限 | | `range_end` | real | 实数,范围下限 | | `percent_type` | integer | 整数,资金分配方法,用户自定义,含义如下表: 显示名 值 流通股 0 总股本 1 等资金 2 | | `condition` | expression | 表达式,条件选择 | 返回:table_array ### 示例 范例01:调用 AdjustSampleByAny ```tsl Return AdjustSampleByAny( "深证A股", inttodate(20120916), 500, @close(), false, 0, 7, 9, 0, @true); ``` ## `getTrueRp()` 声明:function 计算资产组合的期望收益率,与自定义的系统变量’TZZHRiMatrix’有关,调用之前先设置该系统变量。并且w的长度必须跟该系统变量的值的长度一致 返回:table_array ### 示例 范例01:调用 GetTrueRp ```tsl a := array(2, 3, 4, 5, 8); SetSysParam('TZZHRiMatrix', a); w := array(1, 4, 6, 3, 7); Return GetTrueRp(w); // 输出:5.19048 ``` ## `pf_callBack1(w, r)` 声明:function 投资组合的约束1:所有投资组合的比例和=1 | 参数 | 类型 | 说明 | | ---- | ----- | ------------ | | `w` | array | 一维数字数组 | | `r` | float | 实数 | 返回:integer ### 示例 范例01:调用 pf_CallBack1 ```tsl Return pf_CallBack1(Array(3, 4, 5), 2); // 输出:0.3872 ``` ## `pf_incomeMaxCallBack(w, r)` 声明:function 投资组合收益最大回调 | 参数 | 类型 | 说明 | | ---- | ----- | -------------------------------- | | `w` | array | 一维数字数组,投资品种的比例(%) | | `r` | float | 实数,使用SUMT时候,使用的罚因子 | 返回:float ### 示例 范例01:调用 pf_IncomeMaxCallBack ```tsl a := array(2, 3, 4, 5, 8); SetSysParam('TZZHRiMatrix', a); setSysParam('TZZHRp', 3); w := array(1, 4, 6, 3, 7); Return pf_IncomeMaxCallBack(w, 2); // 输出:-4.87843 ``` ## `pf_outPut(x, beg_time, end_time)` 声明:function 投资组合结果输出 | 参数 | 类型 | 说明 | | ---------- | ----------------- | ----------------- | | `x` | array,table_array | 投资品种的比例(%) | | `beg_time` | datetime | 开始时间 | | `end_time` | datetime | 截止时间 | 返回:float ## `pf_riskMinCallBack(w, r)` 声明:function 风险最小回调,兼顾风险和收益的投资组合回调,与'TZZHMethodType'该自定义的系统变量有关,计算组合方差的方法,如果为0 则为马可维兹法,此时与'MarkowitzCoMatrix'自定义的系统变量有关,1表示单指数法,此时与'SIMVarRm'自定义的系统变量有关,回调过程中是否卖空与'TZZHYxmk'有关,该函数用于投资组合中间计算风险 | 参数 | 类型 | 说明 | | ---- | ----- | -------------- | | `w` | array | 一维字符串数组 | | `r` | float | 实数 | 返回:table_array ## `portfolioByAny(stock_arr, end_t, eval_exp, sort_dir, range_type, range_beg, range_end, condition)` 声明:function 计算满足条件Condition的股票的EvalExp,选取值在RangeBeg跟RangeEnd之间,按照不同的RangeType类型选择 | 参数 | 类型 | 说明 | | ------------ | ----------- | ---------------------------------------- | | `stock_arr` | table_array | 数据表,股票列表,必须含有’代码’,’股数’ | | `end_t` | t_date_time | 日期型时间,当前时间 | | `eval_exp` | expression | 表达式 | | `sort_dir` | boolean | 真假,排序方向 | | `range_type` | integer | 整数,范围类型 | | `range_beg` | real | 实数,范围上限 | | `range_end` | real | 实数,范围下限 | | `condition` | expression | 表达式,条件选择 | 返回:table_array ### 示例 范例01:调用函数 ```tsl return portfolioByAny( array("SH600718", "SZ000920"), intToDate(20120916), @open(), 1, 0, 7, 8, @true); ``` ## `stocksPortfolio(stock_arr, beg_t, end_t, methodtype, predict_yield, max_risk, show_hist_yield, call_back)` 声明:function 股票投资组合计算及结果输出 | 参数 | 类型 | 说明 | | ----------------- | ----------- | ------------------------ | | `stock_arr` | array | 一维字符串数组,股票列表 | | `beg_t` | t_date_time | 日期型时间,开始日期 | | `end_t` | t_date_time | 日期型时间,结束日期 | | `methodtype` | intger | 用户自定义,投资组合方法 | | `predict_yield` | real | 实数,预期收益率 | | `max_risk` | real | 实数,风险限定 | | `show_hist_yield` | boolean | 布尔类型,显示历史收益率 | | `call_back` | string | 字符串,回调函数 | 返回:table_array ### 示例 范例01:调用函数 ```tsl return stocksPortfolio( array('SH600001', 'SH600000'), intToDate(20120721), intToDate(20121002), 0, 0, 0, true, ""); ```