7.3 KiB
金融 / 金融工程 / 投资组合 / 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
Return AdjustSampleByAny(
"深证A股",
inttodate(20120916),
500,
@close(),
false,
0,
7,
9,
0,
@true);
getTrueRp()
声明:function
计算资产组合的期望收益率,与自定义的系统变量'TZZHRiMatrix'有关,调用之前先设置该系统变量。并且w的长度必须跟该系统变量的值的长度一致
返回:table_array
示例
范例01:调用 GetTrueRp
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
Return pf_CallBack1(Array(3, 4, 5), 2);
// 输出:0.3872
pf_incomeMaxCallBack(w, r)
声明:function
返回投资组合收益最大回调
| 参数 | 类型 | 说明 |
|---|---|---|
w |
array | 一维数字数组,投资品种的比例(%) |
r |
float | 实数,使用SUMT时候,使用的罚因子 |
返回:float
示例
范例01:调用 pf_IncomeMaxCallBack
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:调用函数
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:调用函数
return stocksPortfolio(
array('SH600001', 'SH600000'),
intToDate(20120721),
intToDate(20121002),
0,
0,
0,
true,
"");