# 金融 / 金融工程 / 指数研究 / 中间函数 ## `deleteDataOutOfScopes(t_1, t_2)` 声明:function 删除多余日期 | 参数 | 类型 | 说明 | | ----- | ----------- | -------------------------- | | `t_1` | table_array | 数据表,必须含有’time’字段 | | `t_2` | table_array | 数据表,必须含有’time’字段 | 返回:table_array ### 示例 范例01:调用函数 ```tsl t1 := array(('s':0, 'time':41201), ('s':6, 'time':41202), ('s':2, 'time':41203), ('s':8, 'time':41204), ('s':2, 'time':41207), ('s':3, 'time':41208)); t2 := array(('s':2, 'time':41101), ('s':7, 'time':41202), ('s':9, 'time':41205), ('s':3, 'time':41206), ('s':5, 'time':41207), ('s':1, 'time':41209)); deleteDataOutOfScopes(t1, t2); return array(t1, t2); ``` ## `fileterValue(v, w)` 声明:function 返回找出需要过滤处理的日期 | 参数 | 类型 | 说明 | | ---- | ----------- | -------------------------- | | `v` | table_array | 数据表,必须含有’time’字段 | | `w` | array | 一维日期型时间数组 | 返回:table_array ### 示例 范例01:调用 FileterValue ```tsl v := array(('s':0, 'time':41201), ('s':6, 'time':41202), ('s':2, 'time':41203), ('s':8, 'time':41204), ('s':2, 'time':41207), ('s':3, 'time':41208)); w := array(41101, 41202, 41205, 41206, 41207, 41209); FileterValue(v, w); ``` ## `filterValueByCycle(t, beg_t, end_t, cycle_name)` 声明:function 按照周期取数据 | 参数 | 类型 | 说明 | | ------------ | ----------- | -------------------------- | | `t` | table_array | 数据表,必须含有’time’字段 | | `beg_t` | t_date_time | 日期型时间,选取开始时间 | | `end_t` | t_date_time | 日期型时间,选取截止时间 | | `cycle_name` | string | 字符串,周期函数 | 返回:table_array ### 示例 范例01:调用函数 ```tsl setSysParam(PN_Stock(), 'SZ000002'); setSysParam(PN_DATE(), intToDate(20121029)); t := nDay(20, 'time', dateToInt(sp_time()), 'c', close()); filterValueByCycle(t, intToDate(20120918), intToDate(20121029), cy_week()); return t; ``` ## `getMaxListedDate(stock_arr)` 声明:function 获取股票列表StockArr中最晚的上市日值 | 参数 | 类型 | 说明 | | ----------- | ----- | -------------- | | `stock_arr` | array | 一维字符串数组 | 返回:t_date_time ### 示例 范例01:调用函数 ```tsl return getMaxListedDate(array("SZ000920", "SH600718", "SH600900")); ``` ## `indexDataToShowable(index_table, base_value)` 声明:function 把计算存贮好的指数数据转换 | 参数 | 类型 | 说明 | | ------------- | ----------- | ----------------------------------------------- | | `index_table` | table_array | 数据表,指数结果表,必须含有’Date’,’Close’字段 | | `base_value` | real | 实数,基准值 | 返回:table_array ### 示例 范例01:调用 IndexDataToShowable ```tsl SetSysParam(PN_Stock(), 'SZ000002'); SetSysParam(PN_DATE(), IntToDate(20121026)); t := Nday(20, 'Date', sp_time(), 'Close', close()); Return array('转换前':t, '转换后':IndexDataToShowable(t, 1000)); ``` ## `indexLineMerge(bk_name, bk_value, index_name, index_value, show_type)` 声明:function 返回两个指数迭加 | 参数 | 类型 | 说明 | | ------------- | ----------- | ------------------------------------------------------ | | `bk_name` | string | 字符串,板块名称 | | `bk_value` | table_array | 数据表,计算出来的板块指数,必须含有’time’,’close’字段 | | `index_name` | string | 字符串,指数代码 | | `index_value` | table_array | 数据表,指数数值,必须含有’time’,’close’字段 | | `show_type` | integer | 用户自定义,返回类型,含义如下表: | 返回:table_array ### 示例 范例01:调用函数 ```tsl setSysParam(PN_Stock(), 'SZ000002'); setSysParam(PN_DATE(), intToDate(20121026)); bk_value := nDay(20, 'time', sp_time(), 'close', close()); setSysParam(pn_stock(), 'SH000001'); index_value := nDay(20, 'time', sp_time(), 'close', close()); return indexLineMerge('SZ000002', bk_value, 'SH000001', index_value, 1); ``` ## `kLineDataForIndex(stock_id, beg_t, end_t)` 声明:function 返回K线数据(指数专用) | 参数 | 类型 | 说明 | | ---------- | ----------- | -------------------- | | `stock_id` | string | 字符串,股票代码 | | `beg_t` | t_date_time | 日期型时间,开始日期 | | `end_t` | t_date_time | 日期型时间,截止日期 | 返回:table_array ### 示例 范例01:调用 KLineDataForIndex ```tsl Return KLineDataForIndex("SH600206", inttodate(20120618), inttodate(20120926)); ``` ## `kLineMerge(bk_name, bk_value, index_name, begt, endt, show_type)` 声明:function 返回板块指数与大盘指数迭加 | 参数 | 类型 | 说明 | | ------------ | ----------- | ------------------------------------------------------- | | `bk_name` | string | 字符串,板块名称 | | `bk_value` | table_array | 数据表,计算出来的板块指数,必须含有’time’,’close’字段 | | `index_name` | string | 字符串,指数代码 | | `begt` | t_date_time | 日期型时间,开始日期 | | `endt` | tdate_time | 日期型时间,截止日期 | | `show_type` | integer | 用户自定义,返回类型,0表示图形,1表示数据 | 返回:table_array ### 示例 范例01:调用 KLineMerge ```tsl SetSysParam(PN_Stock(), 'SH000001'); SetSysParam(PN_DATE(), IntToDate(20121026)); BkValue := nday(20, 'time', sp_time(), 'close', close()); return KLineMerge("SH000001", BkValue, "SH600718", inttodate(20120618), inttodate(20121026), 1); ``` ## `manyBkLineMerge(r, show_type)` 声明:function 返回指数叠加结果处理,用于计算复合指数的中间过程 | 参数 | 类型 | 说明 | | ----------- | ----------- | ---------------------------- | | `r` | table_array | 数据表,必须含有’value’字段 | | `show_type` | integer | 用户自定义,0为图形,1为数据 | 返回:table_array ### 示例 范例01:调用函数 ```tsl t := array( ("time":20061229, "close":2675.47), ("time":20070104, "close":2715.72), ("time":20070105, "close":2641.33), ("time":20070108, "close":2707.2), ("time":20070109, "close":2807.8), ("time":20070110, "close":2825.58), ("time":20070111, "close":2770.11), ("time":20070112, "close":2668.11), ("time":20070115, "close":2794.7), ("time":20070116, "close":2821.02), ("time":20070117, "close":2778.9), ("time":20070118, "close":2756.98)); t1 := array( ("time":20061229, "close":1000), ("time":20070104, "close":1017.56), ("time":20070105, "close":961.42), ("time":20070108, "close":978.96), ("time":20070109, "close":1022.61), ("time":20070110, "close":1017.87), ("time":20070111, "close":986.16), ("time":20070112, "close":947.22), ("time":20070115, "close":991.12), ("time":20070116, "close":988.37), ("time":20070117, "close":971.06), ("time":20070118, "close":948.98), ("time":20070119, "close":970.16)); r := array(("Name":"SH000001", "Value":t), ("Name":"复合指数", "Value" :t1)); return manyBkLineMerge(r, 1); ``` ## `setToFirstValue(t_1, t_2)` 声明:function 返回归一处理,用于在计算复合指数时,在基准数据t2的基础上对t1归一化 | 参数 | 类型 | 说明 | | ----- | ----------- | --------------------------- | | `t_1` | table_array | 数据表,必须含有’close’字段 | | `t_2` | table_array | 数据表,必须含有’close’字段 | 返回:table_array ## `volDataForIndex(stock_id, beg_t, end_t)` 声明:function 返回K线数据(指数专用) | 参数 | 类型 | 说明 | | ---------- | ----------- | -------------------- | | `stock_id` | string | 字符串,股票代码 | | `beg_t` | t_date_time | 日期型时间,开始日期 | | `end_t` | t_date_time | 日期型时间,截止日期 | 返回:table_array ### 示例 范例01:调用函数 ```tsl return volDataForIndex("SH600206", intToDate(20120618), inttodate (20120926)); ```