
2.2 指标库目录管理程序的说明
随着量化研究者在自身研究中的深入,往往会积累数百甚至上千的指标计算程序。数量庞大的指标库使得用户在研究使用中有诸多的不便,因而需要建立指标库目录管理程序,用于指标库中各个指标的查找、新增、删除、分类管理等操作。它需要以下数据表作为内容来源:factor_test.xlsx,测试用指标—分类对应表,仅限测试使用,如图2.4和图2.5所示。

图2.4 指标分类表

图2.5 指标叶节点
如图2.4指标分类表所示,Sheet1是用于记录指标目录与各个子目录节点的页面。它的数据结构是N行2列的表格。第一列是上层节点,第二列是下层节点,但是第二层最多只到达基层目录,即整个树状结构的倒数第二层,并不会到达最终叶节点的因子。这么做是希望区分目录结构的信息和因子名称的信息。
如图2.5指标叶节点所示,Sheet2记录了基层目录和最终叶节点的信息。第一列是基层目录,即树状结构的倒数第二层,第二列是目录树状结构的最终叶节点,它被定义为必须是最终的因子名称。在调用因子时,如果知道因子名称,可以调用工具函数在Sheet2中查找因子;如果不知道因子名称,则可以根据需求调用以下的其他工具函数通过目录结构逐层查找。
介绍完建立指标库目录的数据结构,接下来介绍指标库目录管理程序中的各个函数。在使用这些函数以前,需要首先读取factor_test.xlsx中的数据,读取方法见下列代码。


加载完目录结构数据,接下来逐一介绍各个函数。查找目录系统函数是一个用于查询指定目录层级以下的目录结构的函数。当我们输入一个层级的某个节目录结构点后,调用查找目录系统函数将返回这个节点以下的全部目录数据和该节点以下指定层级的数据。
1.find_subcategory.m
本函数是指标库目录查询函数之一,用于在已知上层分类标签时查询下层分类的标签。




查找因子程序是用于查询指定目录下的所有因子名称的程序。当我们输入某个指定的目录节点后,程序将会逐层遍历到最终的叶节点并返回叶节点上的指标。
2.find_factor.m
本函数是在给定指标库的分类标签后,查询该分类标签下的指标名称的函数。




查询全部目录函数用于在给定目录节点后查询包含该节点的全部目录结构,返回从该节点的上层到该节点延伸的全部叶节点。
3.find_all_category.m
本函数是在给定一个分类标签后,查询相关层次所有分类标签的函数。




插入指标函数是修改目录结构的函数之一,用于在指定的目录位置插入新的因子。
4.insert_factor.m
本函数用于在现有的指标体系下插入新的指标。



插入目录函数是修改目录结构的函数之一,用于在指定的目录层级下插入新目录。
5.insert_category.m
本函数用于在现有的指标分类体系下插入新的分类结构。




删除因子函数是用于修改目录结构的叶节点即因子的函数。该函数用于给定因子名称后删除指定因子。
6.delete_factor.m
本函数用于删除因子,并更新目录结构。




删除目录函数是用于修改目录结构的函数之一。该函数用于在给定目录节点后删除该节点及节点下的所有目录。
7.delete_category.m
本函数用于删除现有目录结构中的部分分类。



