数据类型

数据类型指的是类属性的值的类型,一般情况下,数据类型应该是 string, number, series, any 其中之一。但是,RiskQuantLib允许你自定义新的数据类型,比如 timeList, 或者 blank, 或者是任何你自定义名称的数据类型。

当处理复杂的数据时,自定义数据类型是非常有效的手段。有时你会有一些问题,比如为什么python中的list不再具有reduce函数,或者你想重载list的 __add__ 函数,以便于list可以以你想要的方式相加。在RiskQuantLib中,你可以通过自定义数据类型来做到这一点。

自定义数据类型的具体方式是通过 config.py 文件,如果你还有印象,我们在之前几章提到过,我们有一个像这样的设置文件:

#-|attribute: fund.yourAttribute@number, stock.anotherAttribute@string

你已经声明属性 yourAttributenumber (数字)类型的。但现在,你想新创建一个类型,名为 yourNewType, 并且让属性 anotherAttribute 的值的数据类型为你新创建的 yourNewType。我们唯一需要做的,是把 string 换为 yourNewType。并且重新运行 build.py

修改过的文件看起来像这样:

#-|attribute: fund.yourAttribute@number, stock.anotherAttribute@yourNewType

注意到我们在这些操作之前,并没有自行手动创建任何名为 yourNewType 的python类文件,不用担心,RiskQuantLib会扫描工程目录,如果它不存在,RiskQuantLib会自动创建它。当运行 build.py 进行编译之后,你可以发现数据类型的类文件处于路径 RiskQuantLib/Property/YourNewType/yourNewType.py 下。

和编译生成模板类一样,一旦数据类型类被编译创建,RiskQuantLib就 不能 自动将它的源文件删除。如果依然需要删除,你只能手动删除它。但是,如果这个数据类型不再出现于 config.py 中,那么当你重新编译工程之后,或着运行清除命令后,这个数据类型会被取消注册,这样你就无法再使用它。