项目管理¶
RiskQuantLib最为重要的功能之一是进行项目管理。这里所说的项目管理指的是构成项目的子模块。前几章我们介绍了如何利用RiskQuantLib构建和编译工程,然后在模板类里编写数据处理逻辑。如果我们就此打住,关闭所有打开的python源文件,并保存这个工程项目,它就变成了一个项目模板。子模块除了项目模板,还可以有模型模板以及工具模板。
简而言之,子模块是适用于多种情况,可以被反复使用的数据处理工程,或者计算模型,或者工具函数,子模块应该适用于不同的数据格式和数据特征。
有三种子模块类型,即工程模板,计算模型,以及计算工具。
初始化子模块¶
如果你刚刚安装了RiskQuantLib,建议在终端运行以下命令来初始化子模块:
initRQL
展示子模块¶
你可以通过以下终端命令展示所有已经存储的子模块:
listRQL
运行此命令后,可以看见所有已经在库中的子模块。你也可以指定显示的子模块的类型:
listRQL -c template
listRQL -c model
listRQL -c tool
将工程模板保存为子模块¶
你可以保存任何你想保存的RiskQuantLib工程或者文件夹,以便于日后进行使用。
你可以通过以下命令来将一个工程保存为RiskQuantLib工程模板:
saveRQL template your_project_path
当运行这条命令后,一个模板会被添加到你计算机的RiskQuantLib库文件夹里。(并不是任何工程里的RiskQuantLib文件夹,而是python中的库文件夹。)
将计算模型保存为子模块¶
这里的计算模型可以理解为统计学模型或者数值模型。它通常是个独立文件或者目录。RiskQuantLib在默认情况下提供了Copula和KMV两个模型,你也可以自定义模型并存入库中。注意,默认工具必须在执行 initRQL 命令后才会出现在库中。
使用以下命令来将模型存储在子模块库:
saveRQL model your_model_path
当运行这条命令后,一个模型子模块会被添加到你计算机的RiskQuantLib库文件夹里。(并不是任何工程里的RiskQuantLib文件夹,而是python中的库文件夹。)
将计算工具保存为子模块¶
计算工具指的是和数据类型无关的计算函数文件。类似日期函数,去除空值的函数都可以是计算工具。计算工具也可以是包含很多文件的文件夹。RiskQuantLib默认提供了包括 pptTool, wordTool, excelTool, threadTool 等计算工具。你也可以定义自己的计算工具。注意,默认工具必须在执行 initRQL 命令后才会出现在库中。
使用以下命令来将计算工具存储在子模块库:
saveRQL tool your_tool_path
当运行这条命令后,一个工具子模块会被添加到你计算机的RiskQuantLib库文件夹里。(并不是任何工程里的RiskQuantLib文件夹,而是python中的库文件夹。)
设置默认子模块¶
你可以指定一个计算模型或者计算工具为默认的子模块,如果指定为默认,那么任何使用 newRQL 创建的RiskQuantLib项目都会包含这个子模块:
dftRQL module_category module_name
module_category 可以是 model 或者 tool 。 module_name 应该是你通过 listRQL 命令看见的子模块名称或者序号。
取消默认子模块¶
你可以取消指定子模块为默认。如果取消指定默认,那么任何使用 newRQL 创建的RiskQuantLib项目都不再会包含这个子模块:
udftRQL module_category module_name
module_category 可以是 model 或者 tool 。 module_name 应该是你的新RiskQuantLib中的 Model 或者 Tool 文件夹下的文件或文件夹名称,不包括扩展名。比如 mailTool 。
安装子模块¶
你可以使用如下命令来安装一个已经存在的子模块:
tplRQL module_category module_name your_new_project_path
当运行这条命令后,子模块内的源文件会被解压到 your_new_project_path 文件路径下,你可以使用解压后的文件作为新的工程的开始。
module_category 可以是 template 或者 model 或者 tool 。 module_name 应该是你通过 listRQL 命令看见的子模块名称或者序号。
删除子模块¶
如果你想从库中删除子模块,可以使用终端命令:
delRQL module_category module_name
module_category 可以是 template 或者 model 或者 tool 。 module_name 应该是你通过 listRQL 命令看见的子模块名称或者序号。
或者如果你想删除所有的模板,你可以使用以下命令:
clearRQL
注意:小心使用这个命令,它无法被撤销。