一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于ETL的投资风险指标分析平台的制作方法

2022-10-26 01:23:40 来源:中国专利 TAG:
基于etl的投资风险指标分析平台
技术领域
:1.本技术涉及计算机应用
技术领域
:,尤其涉及一种基于etl的投资风险指标分析平台。
背景技术
::2.投资风险是指投资主体为实现其投资目的而对未来经营、财务活动可能造成的亏损或破产所承担的危险。投资风险是投资主体决定是否投资所进行预测分析的最主要内容。投资风险指标可以用来衡量投资风险,为投资主体提供投资参考。目前,投资风险指标的计算依赖理论模型,没有提供工程实现的指导方案,对于已经成熟的投资风险计算系统,可定制、可扩展和可配置的能力较弱,计算过程对用户透明,导致计算的准确性很难监控。技术实现要素:3.有鉴于此,本技术的目的在于提出一种基于etl的投资风险指标分析平台。4.基于上述目的,本技术提供了一种基于etl的投资风险指标分析平台,包括自底向上依次连接的数据层、服务层和应用层,5.所述数据层包括etl引擎、源数据库、财汇数据库和投资数据库,6.所述etl引擎,被配置为对接入所述数据层的数据进行分析处理并对所述投资风险指标进行计算,与外部服务器和/或外部数据库连接;7.所述源数据库,与所述etl引擎连接,被配置为存储接入到所述数据层的投资内部数据;8.所述财汇数据库,与所述etl引擎连接,被配置为存储经由所述etl引擎进行增量同步的外部公开市场财汇数据;9.所述投资数据库,与所述etl引擎连接,被配置为存储经由所述etl引擎进行处理后的统一数据类型的所述投资内部数据;10.所述服务层包括用户基础服务、投资数据服务、作业视图服务和作业调度服务,11.所述用户基础服务,被配置为对用户和权限进行管理;12.所述投资数据服务,被配置为对投资指标计算结果进行查看;13.所述作业视图服务,被配置为对投资指标计算的状态和日志的输出进行监控,查询历史计算实例和计算结果;14.所述作业调度服务,被配置为根据作业计划生成作业实例,向所述etl引擎发出可调度的所述作业实例的相关调度指令;15.所述应用层包括用户和权限管理模块、投资报表分析模块、数据作业视图模块和数据配置管理模块,16.所述用户和权限管理模块,被配置为为用户提供用户和权限管理接口;17.所述投资报表分析模块,被配置为为用户提供投资报表分析接口;18.所述数据作业视图模块,被配置为为用户提供数据作业视图接口;19.所述数据配置管理模块,被配置为为用户提供数据配置管理接口。20.从上面所述可以看出,本技术提供的一种基于etl的投资风险指标分析平台,包括自底向上依次连接的数据层、服务层和应用层,所述数据层包括etl引擎、源数据库、财汇数据库和投资数据库,所述服务层包括用户基础服务、投资数据服务、作业视图服务和作业调度服务,所述应用层包括用户和权限管理模块、投资报表分析模块、数据作业视图模块和数据配置管理模块。本技术通过应用层的数据配置管理模块,实现了针对不同投资报表需求灵活计算编排,提高了计算模块和数据的可复用性,进而提高投资报表定制的效率和报表计算的性能。同时,通过etl引擎在投资指标计算过程中能够对数据完备性进行检查,并将数据异常和异常的原因以应用日志的方式输出给用户,提供各种中间结果表供用户详细的查看整个运算的过程。本技术提供的投资风险指标分析平台还能够通过作业调度服务根据作业计划生成作业实例,通过作业实例记录作业的动态配置,根据作业类型和作业配置可以查询指标计算的作业历史,从而查询过去的计算记录,从而实现投资指标计算的监控。附图说明21.为了更清楚地说明本技术或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。22.图1为本技术实施例的投资风险指标分析平台架构图;23.图2为本技术实施例的pdi作业计算流程的示意图;24.图3为本技术实施例的权益类收益率计算模块的计算流程的示意图;25.图4为本技术实施例的债券关键现金流计算模块计算流程的示意图;26.图5为本技术实施例的可转股票波动率和差值计算模块计算流程的示意图;27.图6为本技术实施例的可转债delta和gamma的计算模块计算流程的示意图。具体实施方式28.为使本技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本技术进一步详细说明。29.需要说明的是,除非另外定义,本技术实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本技术实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。ꢀ“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。ꢀ“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。30.如
背景技术
:所述,投资风险指标的计算通常由比较成熟的软件系统实现。现有软件系统存在以下问题:31.1)在投资指标风险计算时可配置和可扩展能力较弱,计算通常都是黑盒计算,没有提供统一模块扩展方式和配置方式。32.2)投资指标分析需要依赖于公开市场的财汇数据(如行情数据、估值数据、各类资产基本要素信息等),系统进行计算分析需要以这些数据的完整准确为前提,如果出现数据异常,通常采用一些默认的数据填充方式进行默认处理,一方面用户无法配置数据填充或者剔除的方式,另一方面用户并不能感知到数据的异常和相应的处理方式,整个指标计算的过程对用户透明,用户难以监督和衡量指标计算的准确性。33.3)现有系统大多以债券的历史行情作为债券的风险因子,进行收益率的计算,从而计算var值,然而一方面有的债券交易并不频繁,没有连续的行情数据,另一方面债券随着到期日越来越近,其市值越来越贴近市值,所以通过行情价格算出的每日收益率的变动有一部分是时间推移导致的,并不能完全反应债券损益风险。另一方面,大部分系统计算var值时将可转债和普通债券做同样的处理计算,然而可转债的主要风险来自于标的股票的价格波动,应该结合其标的股票对可转债的风险进行计算衡量。34.4)投资风险指标的计算涉及到对历史数据的处理和较为复杂的统计分析,通常是长流程的计算,目前的软件系统没有给出合理的进行计算调度和保存计算中间结果和过程日志的方案。计算完全在后台进行,或是需要用户一直处于在线状态才能看到最终结果,不方便实时监控计算过程并对多次计算的结果进行比对和调整。35.申请人在实施过程中发现针对投资风险指标的计算需要考虑以下几个方面:36.第一方面,保险公司在对投资风险进行监控的时候,需要根据具体的监控需求提供不同的投资风险报表,例如满足不同监管报送的需求,满足公司内部监控的不同需求等。这些差异性表现在以下方面:37.1)分析的资产范围不同:不同的报表分析的资产范围不同,不同报表可能需要分析不同资产类型(如次级债、企业债、上市普通股、债券型基金、货币式基金等)、会计报表科目(可供出售类、长期股权投资等)、不同管理机构(各个投行、市场委托管理人等)、不同投资组合和不同账户的风险。同时在资产筛选时需要很大的灵活性;38.2)分析的维度不同:在报表展示时需要根据不同的组合分组计算风险指标的结果,例如,39.报表①:根据各个投资管理机构划分投资组合,分析下面各个分组的投资风险,如权益类、债券类等。40.报表②:根据各个不同的账户划分投资组合,分析下面各个不同分组的投资风险,如股票、基金、债券等。41.报表③:根据境内投资和境外投资来划分投资组合,分析下面各个不同分组的投资风险,如权益类和债券型基金;42.3)需要计算的风险指标不同:如var、β、久期、凸性、剩余期限、余额等;43.4)指标的计算方式和参数要求不同:例如有的报表需要使用历史法计算var,有的报表需要参数法计算var,还有不同的置信区间和采样区间的要求,如计算β要求的市场基准不同;44.5)数据异常处理的方式不同:例如在分析计算var值时,会出现风险因子数据缺失异常的原因和比例,还可以实现数据异常处理方式的灵活配置。对于普通的债券采取现金流映射的方法,把债券拆解为多个具有关键点期限的零息票券。依据标准的利率曲线将债券的市值映射拆解到曲线的各个关键点上,基于标准利率曲线关键的即期利率的波动率来衡量各个零息票券的风险。将可转债的标的股票价格作为风险因子,使用蒙特卡洛模拟的方法来模拟股票价格波动对可转债估值的影响,通过计算delta和gamma来用股票价格波动衡量可转债价值的波动,进而计算var值。与传统债券价格作为风险因此相比,解决了行情不连续问题,并能充分衡量利率和转股风险。在进行指标计算时,各个计算模块涉及到的矩阵计算、线性回归、蒙特卡洛模拟、正态分布、规划求解和离散分析等算法都通过java和高斯存储过程进行了实现和优化,在性能上做到了很好的提升,例如原本需要两个小时的var值计算缩短为20分钟。通过作业调度系统的设计根据作业计划生成作业实例,通过作业实例记录作业的动态配置,根据作业类型和作业配置可以查询指标计算的作业历史,从而查询过去的计算记录。56.以下结合附图来详细说明本技术的实施例。57.本技术提供了一种基于etl的投资风险指标分析平台,参考图1,包括自底向上依次连接的数据层100、服务层100和应用层300,58.所述数据层100包括etl引擎1001、源数据库1002、财汇数据库1003和投资数据库1004,59.所述etl引擎1001,被配置为对接入所述数据层100的数据进行分析处理并对所述投资风险指标进行计算,与外部服务器和/或外部数据库连接;60.所述源数据库1002,与所述etl引擎1001连接,被配置为存储接入到所述数据层100的投资内部数据;61.所述财汇数据库1003,与所述etl引擎1001连接,被配置为存储经由所述etl引擎1001进行增量同步的外部公开市场财汇数据;62.所述投资数据库1004,与所述etl引擎1001连接,被配置为存储经由所述etl引擎1001进行处理后的统一数据类型的所述投资内部数据;63.所述服务层200包括用户基础服务2001、投资数据服务2002、作业视图服务2003和作业调度服务2004,64.所述用户基础服务2001,被配置为对用户和权限进行管理;65.所述投资数据服务2002,被配置为对投资指标计算结果进行查看;66.所述作业视图服务2003,被配置为对投资指标计算的状态和日志的输出进行监控,查询历史计算实例和计算结果;67.所述作业调度服务2004,被配置为根据作业计划生成作业实例,向所述etl引擎1001发出可调度的所述作业实例的相关调度指令;68.所述应用层300包括用户和权限管理模块3001、投资报表分析模块3002、数据作业视图模块3003和数据配置管理模块3004,69.所述用户和权限管理模块3001,被配置为为用户提供用户和权限管理接口;70.所述投资报表分析模块3002,被配置为为用户提供投资报表分析接口;71.所述数据作业视图模块3003,被配置为为用户提供数据作业视图接口;72.所述数据配置管理模块3004,被配置为为用户提供数据配置管理接口。73.具体的,如图1所示,整个平台包括三层,自底向上包括数据层100、服务层200和应用层300,投资的主要内部数据如各个管理人和托管行的持仓数据通过文件和外部数据库读取的方式接入到平台中,内部数据首先存储在源数据库1002,再经过etl引擎1001作业以统一的数据类型存储在投资数据库1004中,例如指标计算需要的持仓数据。74.投资的外部的公开市场财汇数据则是etl引擎1001作业以外部数据库日志同步的方式,增量同步到系统内的财汇数据库1003,这部分数据包括指标计算需要的各类资产的基本要素、行情和估值信息等。数据层100内部之间通信通过java数据库连接jdbc(javadatabaseconnectivity)。75.在一些实施例中,所述服务层200还包括作业管理数据库2005,被配置为存储投资报表计算所需的参数、作业路径和作业名称,并存储通过所述作业调度服务2004生成的作业实例,所述管理数据库2005分别与所述作业视图服务2003、所述作业调度服务2004和所述用户基础服务2001通过jdbc进行通信。76.在一些实施例中,所述数据层100还包括作业日志库1005,被配置为存储所述etl引擎1001对数据进行分析处理的日志信息,分别与所述etl引擎1001和所述作业视图服务2003连接。作业日志库1005与所述etl引擎1001通过jdbc进行通信,作业视图服务2003通过http请求能够调取所述作业日志库1005中的数据。用户可以看到详细的计算日志,包括完整性校验、数据剔除原因、比例、填充处理方式等,以及所有的中间结果表,从而能够监督核对整个计算过程的准确性。77.需要说明的是,本实施例中的etl引擎1001为pdi,pdi是一款开源的、元数据驱动的etl工具,是开源etl工具里功能比较强大的一个。管理员首先进行作业计划的配置,将特定报表指标计算作业所需的默认参数、需要调度的作业路径和名称等存储在作业管理数据库2005的作业计划表中。每一个投资报表的计算对应一种作业计划,调度不同的pdi作业,etl引擎1001通过手动调度和自动调度根据作业计划生成相应的作业实例,每个作业实例可能有不同的参数配置,每个作业实例的相关参数均存储在作业实例表中。78.用户通过投资报表分析模块3002选择特定的报表、计算日期和相关的计算配置参数,通过调用后台的作业调度服务2004向etl引擎1001发出调度指令,作业调度服务2004根据作业计划和传入的参数进行作业实例记录的生成,将作业实例存储在作业管理数据库2005中,之后将配置参数和需要调度的作业名称传入etl引擎1001。etl引擎1001通过调用指定作业的各个计算模块进行数据的分析处理,并将处理的日志信息存储在作业日志库1005中,将作业的成功和失败的状态发送到公共服务的消息队列中,作业调度服务2004依据此消息来更新作业实例的状态。另一方面用户在指标计算过程中可以经前端调用作业视图服务2003实时的监控指标计算的状态和日志的输出,在计算结束后通过调用投资数据服务2002查看相应的投资计算结果。同时,可以通过作业视图服2003查询历史的计算实例和对应的查询结果,根据每次计算的通用唯一识别码uuid,可以导出中间结果表进行中间数据的核验。79.需要说明的是,作业调度服务2004通过quarz进行固定时间间隔的轮询,每次轮询查询可调度的作业实例,根据作业实例查询对应的作业启动策略(如是否有前置依赖作业等),如果确定作业可以启动,根据作业标识从应用上下文获取对应的作业执行bean,作业执行bean会根据指标计算的配置请求进行pdi作业调度的请求组装,作业调度服务2004根据组装好的请求map,通过pdi客户端向pdi发起http请求进行pdi作业的启动。80.在一些实施例中,所述服务层200还包括投资应用数据库2006和用户基础数据库2007,所述投资应用数据库2006被配置为存储所述投资指标计算结果,与所述投资数据服务2002连接;所述用户基础数据库2007被配置为存储所述用户的基础数据,与所述用户基础服务2001连接。81.具体的,用户在调用投资数据服务2002查询相应投资计算结果时,投资数据服务2002从所述投资应用数据库2006中调取相应的投资计算结果。用户通过数据配置管理应用3004调用服务层200的用户基础服务2001对用户信息和权限进行修改,将修改的用户信息和权限存储在所述用户基础数据库2007中。82.在一些实施例中,所述投资风险指标至少包括投资资产的在险价值var、到期收益率、剩余期限、资产组合的系统性风险指标β、久期和凸性。83.具体的,投资资产的在险价值var有历史法、参数法、蒙特卡洛模拟法等多种计算方式。市场正常波动下,某一金融资产或证券组合的最大可能损失。到期收益是指将债券持有到偿还期所获得的收益,包括到期的全部利息。到期收益率是投资购买债券的内部收益率,即可以使投资购买债券获得的未来现金流量的现值等于债券当前市价的贴现率。剩余期限是指所投的可变利率或者浮动利率债券以计算日至利率调整日的实际剩余天数。资产组合的系统性风险指标β是衡量资产组合的系统性风险险,β越大,代表组合相对市场基准的波动性越大,风险,β越小,说明组合相对于市场基准的波动越小。久期是衡量债券的平均还款周期,组合久期越小,债券的风险越小。凸性用来衡量债券涨多跌少的程度,凸性越高越好。84.在一些实施例中,参考图2,当所需计算的投资风险指标为通过参数法计算的投资资产的在险价值var时,所述etl引擎作业流程至少包括以下计算模块:85.持仓分析模块401,被配置为对输入的所述投资数据库2002中的持仓表进行持仓分析,输出临时持仓表;86.计算初始化模块402,被配置为将通过所述持仓分析模块401输出的所述临时持仓表中的个券信息和财汇的公开市场数据进行关联查询,输出经过更新的临时持仓表;87.权益类收益率计算模块403,被配置为根据通过所述计算初始化模块402输出的所述临时持仓表和获取的财汇表,计算每日波动率并输出波动率表和更新的所述临时持仓表;88.债券中间表计算模块404,被配置为通过获取的债券估值表对所述权益类收益率计算模块403输出的所述临时持仓表进行更新,并输出债券中间表和更新后的所述临时持仓表;89.债券曲线映射计算模块406,被配置为通过获取的样本券表、债券信用评级调高调低表对所述债券中间表计算模块404输出的所述债券中间表进行更新,并输出经过更新的所述债券中间表;90.债券关键现金流计算模块407,被配置为根据获取到的利率曲线表和债券现金流预估表以及通过所述债券曲线映射计算模块406输出的所述债券中间表,通过计算输出关键现金流表,同时,对所述债券中间表计算模块404模块输出的所述临时持仓表进行更新并输出;91.普通债券收益率计算模块408,被配置为根据所述利率曲线表通过计算输出波动率表,同时,对所述债券关键现金流计算模块407输出的所述临时持仓表进行更新并输出;92.债券损益矩阵计算模块410,被配置为根据所述波动率表、所述关键现金流表以及通过所述普通债券收益率计算模块408输出的所述临时持仓表,通过计算输出债券损益矩阵表;93.可转股票波动率和差值计算模块411,被配置为根据通过普通债券收益率计算模块408输出的所述临时持仓表,通过计算输出可转债中间表和更新的所述临时持仓表;94.可转债delta和gamma的计算模块412,被配置为通过计算对所述可转债中间表进行更新并输出;95.可转债损益矩阵计算模块413,被配置为根据通过所述可转债delta和gamma的计算模块输出的所述可转债中间表、所述波动率表和通过所述可转股票波动率和差值计算模块411输出的所述临时持仓表,通过计算输出权益类损益表;96.var值参数法计算模块415,被配置为根据通过所述可转股票波动率和差值计算模块411输出的所述临时持仓表、所述波动率表、所述关键现金流表和所述可转债中间表,通过计算输出计算结果表。97.需要说明的是,投资风险指标的计算过程主要涉及三类报表的读取和写入,分别为持仓表、中间表和财汇数据表。持仓表是主要的事实表,投资风险分析需要从持仓表中获取自定义的不同组合和分组下资产的持仓数据。中间表是各个中间结果表,计算模块间通过中间表传递数据,每个计算模块将各类资产的数据进行处理并以统一的格式存储在中间表中,屏蔽了后续计算对不同资产类型的差异化处理,计算结果也可以为多个模块进行复用,降低了各个计算模块的逻辑耦合性,提高了运算性能,增强了指标分析的可扩展性。财汇数据表来自公开市场数据,包括各类资产的基本要素信息、结构化条款、估值和行情数据,是投资风险指标分析重要的数据源。财汇数据大多来自外部系统,通过某种方式进行增量的数据同步更新到本系统中,如果数据同步发生问题或者外部系统本身数据有问题会严重影响计算的准确性和健壮性。此外,还包括日志表,日志表包括应用日志表和系统日志表。每个计算模块如果检测到了数据异常,会将数据异常原因和填充方式都会输出到应用日志中,供用户和管理员查看。系统日志表则是记录了分析程序执行的日志和异常信息。98.每个计算模块调用传入的都是统一的参数,如表1所示,99.表1计算模块输入参数列表[0100][0101]表1中的配置选项configuration包括如表2所示:[0102]表2配置选项列表[0103][0104]需要说明的是,持仓表是投资数据库重要的事实表,记录了各个管理人、托管行管理的各类资产的持仓信息,如表3所示。其中对于投资风险分析比较重要的字段包括资产类型、会计报表科目、证券名称、证券代码、市场类型、持仓日期、币种、数据来源、持仓市值和账面价值。[0105]表3持仓表[0106][0107][0108]债券中间表记录了需要分析的债券需要的基本信息,如债券基本要素信息、计算时点的估值信息,还有部分的指标数据,如久期、凸性等,如表4所示。[0109]表4债券中间表[0110][0111]临时持仓表和持仓表不同,临时持仓表是不同投资风险分析报表根据不同的资产筛选条件、组合和分组划分需求而生成的中间表,后续的投资风险分析都是从临时持仓表中获取需要分析的各个组合分组下的个券持仓数据的。临时持仓表中同时记录了个券是否剔除计算和剔除计算的原因。剔除计算的原因包括无法获取财汇证券内码、股票未上市、股票已经退市、债券已经到期等,如表5所示。[0112]表5临时持仓表[0113][0114][0115]波动率表,用于存储指标计算需要的风险因子,包括股票的每日的对数收益率、基金的每日对数收益率、可转债标的股票的价差和对数收益率,以及债券映射到的标准曲线的关键期限的即期利率每日收益率,如表6所示。[0116]表6波动率表[0117][0118]关键现金流表包括两种维度的数据,如表7所示,明细数据:记录了个券拆分为以关键点为期限的零息票券的关键现金流。这部分数据和组合分组以及债券的持仓无关。汇总数据:记录了个券拆分的以关键点为期限的零息票券的关键现金流在特定的组合和分组下的风险市值。[0119]表7关键现金流表[0120]字段名称数据类型字段描述symbolvarchar(100)债券外码curve_codevarchar(20)曲线代码key_pointnumeric(10,2)曲线关键时点key_datevarchar(20)关键时点对应日期tinumeric(52,8)年化的关键期限key_valuenumeric(52,8)关键基点价值key_cashflownumeric(52,8)关键现金流position_nmnumeric(52,8)持仓数量risk_mtmnumeric(52,8)个券在特定组合分组下拆分为ti为期限零息票券的风险市值flagvarchar(1)明细:0/汇总:1uuidvarchar(64)计算批作业标识group_namevarchar(64)如果flag=1,需要填写组合名称categoryvarchar(20)如果flag=1,需要填写分组名称。target_tablevarchar(200)计算表单名称secodevarchar(60)证券内码[0121]债券损益矩阵表,用于存储债券拆分为多个零息票券的以曲线代码、关键时点、交易日为维度的历史情景市值损益,是计算历史法债券var需要的中间结果表,如表8所示。[0122]表8债券损益矩阵表[0123]字段名称数据类型长度精度字段描述curve_codevarchar(100)100曲线代码key_pointnumeric(52,8)528关键时点market_value_diffnumeric(52,8)528历史情景损益trade_datevarchar(60)60交易日日期uuidvarchar(64)64唯一标识batch_datevarchar(60)60更新时间category1varchar(20)20分组1category2varchar(20)20分组2category3varchar(20)20分组3category4varchar(20)20分组4category5varchar(20)20分组5group_namevarchar(64)64组合名称[0124]可转债中间表,用于存储可转债计算中常用的关键信息,如所标的股票计算时点的转股价格、转股比例和一些结构化的条款信息,如表9所示。[0125]表9可转债中间表[0126][0127][0128]需要说明的是,投资风险分析的范围是持仓数据。不同的报表对于持仓筛选的逻辑有所不同,所以本技术规定了统一的接口进行持仓分析,并要求持仓分析的结果统一输出到临时持仓表中,后续的风险分析计算基于临时持仓表,这样可以和不同的报表持仓分析实现进行很好的解耦。[0129]以下对各个计算模块进行详细说明:[0130]持仓分析模块401,分组和组合是两个重要的需要在持仓分析模块401扩充的数据。组合:持仓分析需要将个券根据不同的组合进行风险市值的汇总计算,并且打上正确的组合标签。比如不同投资组合的名称等。不同的个券在不同的组合下会有不同的风险市值。分组:分组一般是根据资产类型进行划分,如某个组合下的债券、股票、基金等。持仓分析模块401需要把个券归入正确的分组内并打上分组的标签供后续的分析处理。组合和分组的划分逻辑因不同的报表分析需求而不同,除了在配置中需要声明有哪些组合和分组,分组和组合对于后续的计算逻辑完全透明。[0131]所述计算初始化模块402,财汇的公开市场数据包括债券基本信息表、股票基本信息表、基金基本信息表、境外权益信息表。计算初始化操作的目的是根据将临时持仓表中的个券信息和财汇的公开市场数据进行关联查询,得到资产在财汇数据库的内码。便于后续进一步获取个券的行情、条款、估值等数据。该模块会在临时持仓表的个券记录中进一步填充其证券内码和计算类型信息。[0132]2)投资指标分析需要依赖于公开市场的财汇数据(如行情数据、估值数据、各类资产基本要素信息等),系统进行计算分析需要以这些数据的完整准确为前提,如果出现数据异常,通常采用一些默认的数据填充方式进行默认处理,一方面用户无法配置数据填充或者剔除的方式,另一方面用户并不能感知到数据的异常和相应的处理方式,整个指标计算的过程对用户透明,用户难以监督和衡量指标计算的准确性。[0133]该模块可能输出的异常包括,无法获取证券内码、股票未上市、基金未上市。如果发现这些异常,需要将是否剔除字段设置为1,并记录相应的剔除原因(这里的剔除不是真正的剔除,后续计算模块需要根据读取的配置决定是否对这部分数据进行填充)。[0134]权益类收益率计算模块403,财汇表包括股票行情表、指数行情表、股票除权因子表、境外权益行情表、基金衍生表。参考图3,该模块首先根据不同的计算类型来获取境内、境外的股票、基金的行情数据和复权因子数据,再根据行情和复权因子数据得到股票、基金的每日复权后价格序列(采样时间区间从配置参数中读取,比如1年、3年等),之后计算每日波动率。[0135]对于没有缺失每日复权后价格的情况,收益率=ln(当天复权后价格/前一天复权后价格)。[0136]对于缺失复权因子数据的情况可以根据配置读取以两种方式处理:[0137]方式1:都填充,即不论数据缺失的原因为何,缺失的股票(基金)的收益率都以配置的填充方式进行填充,例如:境内股票收益率填充方式包括两种,其中一种以当日沪深300指数的收益率取代,另一种以恒生指数取代;境外股票收益率以标普指数的收益率取代。境内基金的收益率填充方式包括两种,其中一种以上证基金指数的收益率取代,另一种以恒生指数取代;境外基金收益率以标普指数的收益率取代。境内债券型基金收益率以中债基金指数收益率取代。[0138]方式2:大面积停牌股剔除计算,如果是大面积行情数据的缺失,即缺失数据占总数据量超过一定的阈值(阈值从配置参数中读取),则对于所有的交易日剔除该股票(基金)。如果缺失数据比例没有超过一定的阈值,则参考方式1进行收益率数据的填充。[0139]在应用日志中输出缺失数据的情况和可能原因供用户参考,包括股票(基金)上市时间(缺失原因可能是基金在采样区间内才上市),股票停牌的事件(停牌造成数据缺失)。在应用日志中,还输出了整体的个券剔除(填充)比例,如境内股票剔除(填充)80%,境外股票剔除(填充)2%,这些统计数据能够帮助用户和管理员发现数据处理的异常,如果剔除或填充比例过大,也可能是财汇数据不完整导致,数据运维人员可以进一步查看异常的原因。对于剔除的权益类资产,需要在临时持仓表中的剔除字段设置为1,并记录相应的剔除原因。[0140]债券中间表计算模块404,该模块仅处理临时持仓表中未剔除的债券(根据计算类型判断)。债券中间表一方面从债券估值表中获取计算需要的债券的基本要素信息和估值信息,另一方面如果债券估值表提供了个券的久期、凸性等风险指标数据,也会直接存储在债券中间表中。该模块可能输出的异常主要是债券无估值数据、债券已经到期,如果发现这些异常,需要将是否剔除字段设置为1,并记录相应的剔除原因。[0141]债券曲线映射计算模块406,该模块只计算债券中间表中未剔除的债券。之所以要获取曲线信息是因为债券的主要风险因子是利率期限结构,利率期限结构可以通过关键点来描述,而关键点利率和零息票债券可以相互转换,系统需要匹配出可以近似刻画该债券即期利率变化的标准曲线,并将每个债券的现金流映射到标准曲线的关键点上,从而把债券拆解为多个不同关键期限的零息票券,从而进行后续的风险计算分析,如var、标准差等。[0142]本模块根据债券评级、债券类型和相关业务规则获取对应的标准即期利率曲线,并把评级、曲线代码输出到债券中间表中,为计算var和标准差做准备。[0143]曲线匹配的具体实现逻辑如下:首先根据样本券表获取债券对应的即期利率曲线。如果在样本券表中无法获取到对应的曲线,根据规则映射得到对应的利率曲线。[0144]债券关键现金流计算模块407,参考图4,该模块根据债券对应的标准即期利率曲线(利率曲线表)和计算出的利差,将债券拆分为多个关键点期限的零息票券(其风险市值为关键现金流),将计算得到的个券的关键现金流和其对应的关键期限、曲线代码以明细类型输出存储到债券关键现金流表中。[0145]本模块可能输出的异常包括现金流获取异常,利差计算失败等。可能的原因是财汇的关键现金流数据不完整或者取值有异常,造成不满足利差计算规划解的取值范围。如果发现这些异常,需要将是否剔除字段设置为1,并记录相应的剔除原因。[0146]如图4所示,债券关键现金流计算模块407中的计算流程包括:计算未来现金流、获取关键点期限对应的即期利率、利差计算、计算零息票券的关键点即期收益率矩阵、计算关键基点价值、计算关键现金流、输出剔除信息、输出关键现金流。[0147]未来现金流和支付时间可以从财汇的债券现金流预估表获取。其中,未来现金流的期限ti要从日期转化为年,具体转换方式如下:ti=(第i个未来结息日日期-计算时点)/365。[0148]获取关键点期限对应的即期利率,根据债券中间表得到曲线编码后在债券收益率曲线中查询对应历史日行情的关键点即期利率。根据关键点得到对应的计算时点的日期,比如计算日期为2018/8/30,对应的关键点为:[0149]2019/2/282019/8/302020/8/302021/8/302023/8/302025/8/302028/8/302033/8/302038/8/302048/8/30。[0150]对应的关键期限ti=(第i个关键点日期-计算时点)/365,对应上面的时点,关键期限为:[0151]0.49863013712.0027397263.0027397265.0027397267.00547945210.0082191815.010958920.0136986330.02191781。[0152]利差计算,当采用即期利率曲线为债券定价时,得到的债券理论价格会和市场价格存在一定的差异,那么在所有的贴现利率上加上z利差(z-spread),使得计算的理论价格等于市场价格。具体计算公式如下:[0153][0154]利用规划求解的方式计算出利差。其中,期限为i的即期利率根据即期利率曲线的关键点插值得到:期限为i的即期利率=trend(左边关键点即期利率:右边关键点即期利率,左边关键点期限:右边关键点期限,期限ti)。[0155]计算零息票券的关键点即期收益率矩阵,计算期限为i的零息票券在关键点为t的 1bp即期利率和-1bp即期利率。[0156]如果t=0:[0157]期限为i的零息票券在关键点0时刻 1bp即期利率=关键期限为0的即期利率 0.0001;期限为i的零息票券在关键点0时刻-1bp即期利率=关键期限为0的即期利率-0.0001;[0158]如果t=i:[0159]期限为i的零息票券在关键点t时刻 1bp即期利率=关键期限为t的即期利率 0.0001;期限为i的零息票券在关键点t时刻-1bp即期利率=关键期限为t的即期利率-0.0001;[0160]如果t≠i:[0161]期限为i的零息票券在关键点t时刻 1bp即期利率=关键期限为t的即期利率;期限为i的零息票券在关键点t时刻-1bp即期利率=关键期限为t的即期利率。[0162]计算关键基点价值,具体的计算公式如下:[0163]期限为i的零息债券t时刻(未来结息日)的现金流折现(即期利率向上变动1bp)=该零息债券t时刻未来现金流*exp(-trend(期限为i的零息债券左边关键时点 1bp即期利率:期限为i的零息债券右边关键时点 1bp即期利率,左边关键点期限:右边关键点期限,t)-利差)*t;[0164]期限为i的零息债券t时刻(未来结息日)的现金流折现(即期利率向下变动1bp)=该零息债券未来现金流*exp(-trend(期限为i的零息债券左边关键点-1bp即期利率:期限为i的零息债券右边关键点-1bp即期利率,左边关键点期限:右边关键点期限,t)-利差)*t;[0165]关键点i的关键基点价值=(期限为i的零息债券的各个时刻关键现金流折现(即期利率向下变动1bp)加总-期限为i的零息债券的各个时刻现金流折现(即期利率向上变动1bp)加总)/2*0.001*10000。[0166]计算关键现金流,关键点现金流=关键基点价值/关键点时间点*10000。[0167]普通债券收益率计算模块408,该模块仅处理债券中间表中未剔除的债券。普通债券的风险因子为利率期限结构,所以普通债券的收益率计算可以转为其拆分的零息票券的即期收益率计算。本模块根据债券中间表中记录的个券对应的曲线代码获取曲线在关键期限的即期利率,从而计算出普通债券的收益率数据,并将收益率数据和对应的曲线代码、期限存储在波动率表中。收益率计算公式为:[0168]期限为t的零息债券t时刻历史波动率=ln(exp(-关键点t的t时刻即期利率*t)/exp(-关键点t的t-1时刻即期利率*t))。[0169]该模块可能出现的异常是曲线的即期利率行情数据不完整,该模块会将改券剔除并对异常进行日志输出,通常是财汇数据同步不完整导致。[0170]债券损益矩阵计算模块410,该模块仅处理临时持仓表中未剔除的债券。该模块根据配置中的组合分组计算个券拆分的零息票券在特定组合和分组下的持仓市值,结合历史日的个券对应曲线的波动率计算出的个券拆分的零息票券在组合分组下的历史损益,将结果存储在债券损益矩阵表中。具体计算逻辑如下:对于每个配置的组合分组下的每个曲线:[0171]期限为t的零息债券当前风险市值=曲线对应的所有债券在该组合分组下的持仓数量总和*期限为t的零息债券的关键现金流。将该结果以汇总类型存储在关键现金流表中作为中间结果。[0172]期限的t的零息债券t时刻历史情景市值=期限为t的零息债券的当前风险市值*exp(sqrt(前瞻天数)*期限为t的零息债券t时刻历史波动率);[0173]期限为t的零息债券t时刻历史情景损益=期限为t的零息债券t时刻历史情景市值‑ꢀ期限为t的零息债券当前风险市值。[0174]可转股票波动率和差值计算模块411,参考图5所示的计算流程,包括可转债临时表生成、获取有效可转债的内码与对应股票内码、根据股票内码集合获取股票行情、提出完全无行情可转债与其标的股票、根据股票内码集合获取股票除权因子、计算股票除权后价格、可转债标的股票对数波动率计算和填充、可转债标的股票差值波动率计算和填充、可转债标的股票年化波动率计算和输出波动率矩阵。[0175]该模块仅处理临时持仓表中未剔除的可转换和可交换债券。该模块的功能是通过关联财汇数据准备可转债var值计算需要的基本信息如转股比例、转股内码、转股相关的结构化条款参数(可转换期、可回售期和转换触发比例、转换触发天数等),该模块将计算出的标的股票差值收益率存储在权益类波动矩阵中,将计算得到的σ存储在可转债中间表中,供后续计算使用,同时检查数据的完备性。[0176]其中,可转债标的股票波动率σ计算公式如下:[0177][0177]为ui的平均值,是标的股票价格的对数收益率,n表示过去一年的交易天数。[0178]该模块可能输出的异常信息有,没有预估的现金流、转股股票无行情数据、转股的股票未上市、债券已经到期、无有效转股内码、无法获取转股比例等。需要在临时持仓表和可转债中间表中标注未剔除计算并注明原因。[0179]可转债delta和gamma的计算模块412,该模块仅处理临时可转债中间表中未剔除的可转换和可交换债券。delta为可转债价值对标的股票价格的一阶敏感度,gamma为可转债价值对标的股票价格的二阶敏感度。可转债的损益可以表示为dvp=delta*ds 0.5*gamma*(ds^2),该模块计算delta和gamma的目的是为了通过股票的波动率衡量可转债的波动率。该模块通过蒙特卡洛模拟的方法模拟股票价格的变动,从而计算出delta和gamma,将delta和gamma存储在可转债中间表中,供后续可转债的损益计算使用。详细的计算流程如图6所示包括:获取所有有效可转债基础信息、可转债浮动利率获取、可转债现金流获取、模拟每只可转债标的股票价格、计算转股价值、计算持有价值、倒推计算(标准、上升、下降)可转债价值、计算delta和gamma、输出delta和gamma。[0180]具体的,上述算法描述如下:[0181]1)参数准备:[0182]步长δt=1/250(每季度,实际可以按天计算),可转债中间表获取波动率σ,选取对应信用评级的企业债即期利率的1年期为无风险利率,连续利率r=ln(无风险利率 1);[0183]有条件赎回股票价格=有条件赎回触发比例*当前节点股价,[0184]有条件回售股票价格=有条件回售触发比例*当前节点股价,[0185]其中,当前转股价格要在可转债转股信息表中选取相对计算时点最新的转股价格。[0186]2)股票价格的模拟:[0187](1)生成一组正态随机数,个数=(可转债到期日–计算时点)/365*250节点(上取整);[0188](2)zi,t 1表示该节点t第i次模拟的正态分布随机数;[0189](3)如果股票波动率》1.1,修正为1.1,如果股票波动率《0.9,修正波动率为0.9;[0190](4)当前节点股票价格=上节点股票价格*股票波动率;[0191](5)某一期现金流的节点映射为(付息日–计算时点)/365*250(上取整)。[0192]3)转换价值的计算:将股价*转换比例得到各个节点的转换价值;[0193]4)预期持有价值的计算:采用从后往前的方式,将下一期的可转债价值根据连续利率折到现在;[0194]5)可转债价值计算:最后一期的价格即为到期赎回的价格,[0195]如果达到有条件赎回条件且在可转股期内,债券价值=max(min(包含利息的赎回价格,预期持有价值 当期现金流),转换价值);[0196]如果达到有条件回售条件且在可转股期内,债券价值=max(预期持有价值 当期现金流,转换价值,包含利息的回售价格);[0197]如果未达到有条件赎回和回售条件且在可转股期内,债券价值=max(转换价值,预期持有价值 当期现金流);[0198]如果不在可转股期内,债券价值=预期持有价值 当期现金流。[0199]6)重复n次(1000次)模拟取可转债价值的平均值得到v(s);[0200]7)调整当前时间的股价为s*(1 0.005)和s*(1-0.005),重复1)-6)的步骤计算出来债券的价格v(s δ),v(s-δ)然后根据公式计算出delta和gamma。[0201]其中,有条件赎回条件满足的标志是:[0202]1)计算节点时间处于可赎回期,即计算节点时间《锁定赎回起始日,或者计算节点时间》锁定赎回截止日;[0203]2)在最近的n天中有m天股票价格高于当前转股价格的x%,[0204]其中,n=有条件赎回触发天数,m=有条件赎回满足天数,x=有条件赎回触发比例;[0205]有条件回售条件满足的标志是:[0206]1)计算节点时间处于可回售期,即计算节点时间《锁定回售起始日,或者计算节点时间》锁定回售截止日;[0207]2)在最近的n天中有m天股票价格低于当前转股价格的x%,[0208]其中,n=有条件回售触发天数,m=有条件回售满足天数,x=有条件回售触发比例。[0209]转股期需要满足:[0210]当前计算节点》转换起始日,当前计算节点《转换结束日。[0211]可转债损益矩阵计算模块413,该模块仅处理临时可转债中间表中未剔除的可转换和可交换债券。可转债t日的损益=delta*ds 0.5*gamma*(ds^2),ds为t日的可转债标的股票差值收益率。该模块将计算出的t日损益结果存储在权益类损益表中,供后续历史法计算var值使用。[0212]var值参数法计算模块415,对于每个配置的组合和分组:[0213]从权益类损益表中获取该组合中各个证券的市值以及每个证券t日的收益率,计算每个证券市值占该组合市值的百分比,以及该组合的组合标准差;[0214]组合标准w为各证券市值占组合市值的权重向量,在计算权重向量的时候,注意债券应该计算所拆解的零息票券的持仓,而可转债因考虑到delta对权重的影响,在这里不详细阐述。[0215]δi,j为组合的两只证券的协方差,δ为协方差矩阵,由δi,j组成,[0216][0217]其中,xt,yt分别为组合中两只证券x、y在第t天的收益率,为证券x在这n天收益率的平均值,为证券y在这n天收益率的平均值,[0218][0219]τ为前瞻天数,za为逆累计正态分布函数值,mtm为组合市值,计算得到各个组合分组的var/mtm,记录在计算结果表中,如表10所示。[0220]表10计算结果表[0221][0222]在一些实施例中,当所需计算的投资风险指标为经历史法计算的投资资产的在险价值var时,所述etl引擎作业流程至少包括以下计算模块:[0223]持仓分析模块401,被配置为对输入的所述投资数据库2002中的持仓表进行持仓分析,输出临时持仓表;[0224]计算初始化模块402,被配置为将通过所述持仓分析模块401输出的所述临时持仓表中的个券信息和财汇的公开市场数据进行关联查询,输出经过更新的临时持仓表;[0225]权益类收益率计算模块403,被配置为通过所述计算初始化模块402输出的所述临时持仓表获取计算类型、地区与证券类型,计算每日波动率并输出波动率表和更新的所述临时持仓表;[0226]债券中间表计算模块404,被配置为通过获取的债券估值表对所述权益类收益率计算模块403输出的所述临时持仓表进行更新,并输出债券中间表和更新后的所述临时持仓表;[0227]债券曲线映射计算模块406,被配置为通过获取的样本券表、债券信用评级调高调低表对所述债券中间表计算模块404输出的所述债券中间表进行更新,并输出经过更新的所述债券中间表;[0228]债券关键现金流计算模块407,被配置为根据获取到的利率曲线表和债券现金流预估表以及通过所述债券曲线映射计算模块406输出的所述债券中间表,通过计算输出关键现金流表,同时,对所述债券中间表计算模块404模块输出的所述临时持仓表进行更新并输出;[0229]普通债券收益率计算模块408,被配置为根据所述利率曲线表通过计算输出波动率表,同时,对所述债券关键现金流计算模块407输出的所述临时持仓表进行更新并输出;[0230]权益类资产损益矩阵计算模块409,被配置为根据所述波动率表以及通过所述普通债券收益率计算模块408输出的所述临时持仓表,通过计算输出权益类损益矩阵表;[0231]债券损益矩阵计算模块410,被配置为根据所述波动率表、所述关键现金流表以及通过所述普通债券收益率计算模块408输出的所述临时持仓表,通过计算输出债券损益矩阵表;[0232]可转股票波动率和差值计算模块411,被配置为根据通过普通债券收益率计算模块408输出的所述临时持仓表,通过计算输出可转债中间表和更新的所述临时持仓表;[0233]可转债delta和gamma的计算模块412,被配置为通过计算对所述可转债中间表进行更新并输出;[0234]可转债损益矩阵计算模块413,被配置为根据通过所述可转债delta和gamma的计算模块412输出的所述可转债中间表、所述波动率表和通过所述可转股票波动率和差值计算模块输出的所述临时持仓表,通过计算输出权益类损益表;[0235]var值历史法计算模块414,被配置为根据获取的债券损益表、所述权益类损益表和通过所述可转股票波动率和差值计算模块411输出的所述临时持仓表,通过计算输出计算结果表。[0236]具体的,本实施例中与通过参数法计算投资资产的在险价值var相比,不同的计算模块为权益类资产损益矩阵计算模块409和var值历史法计算模块414,其他计算模块均相同。下面这两个计算模块进行说明:[0237]权益类资产损益矩阵计算模块409,该模块仅处理临时持仓表中未剔除的债券。该模块根据配置中的组合分组计算个券在特定组合和分组下的持仓市值,结合历史日的波动率计算出的个券在组合分组下的历史损益,将结果存储在权益类损益矩阵表中,如表11所示。[0238]表11权益类损益矩阵表[0239][0240]具体计算逻辑如下:[0241]对于每个组合分组:[0242]第i只股票(基金)的t日历史情景市值=当前持仓市值(账面余额)*exp(sqrt(前瞻天数)*历史对数收益率);[0243]第i只股票(基金)的t日历史情景损益=第i只股票的t日历史情景市值-当前持仓市值(账面余额)。[0244]var值历史法计算模块414,对于每个配置的组合和分组:[0245]从债券损益表和权益损益表中获得所有t日的损益进行加总,把损益序列按照升序排列,取第n个样点为var值,其中n=下取整((1-α)*样点个数);[0246]从临时持仓表中将未剔除的债券风险市值进行加总得到mtm;[0247]计算得到各个组合分组的var/mtm;[0248]该模块将计算出的var值和var/mtm都存储在计算结果表中。[0249]在一些实施例中,当所需计算的投资风险指标为资产组合的系统性风险指标β时,所述etl引擎作业流程至少包括以下计算模块:[0250]持仓分析模块401,被配置为对输入的所述投资数据库中的持仓表进行持仓分析,输出临时持仓表;[0251]计算初始化模块402,被配置为将通过所述持仓分析模块401输出的所述临时持仓表中的个券信息和财汇的公开市场数据进行关联查询,输出经过更新的临时持仓表;[0252]权益类收益率计算模块403,被配置为通过所述计算初始化模块402输出的所述临时持仓表获取计算类型、地区与证券类型,计算每日波动率并输出波动率表和更新的所述临时持仓表;[0253]组合β计算模块418,被配置为根据所述波动率表、获取的指数行情表和通过所述权益类收益率计算模块403输出的所述临时持仓表,通过计算输出β中间表和计算结果表。[0254]具体的,本实施例中的前三个计算模块与前述计算模块相同,这里不再赘述。下面对组合β计算模块418进行说明。[0255]组合β计算模块418,该模块只选择未被剔除的股票和基金进行计算,并根据配置获取组合分组的市场基准。根据资本资产定价模型:[0256]e(ri)=rf βi[e(rm)-rf][0257]x(t)=rm(t)-rf(市场组合的超额收益)[0258]y(t)=rp(t)-rf(组合资产的超额收益)[0259]其中,e(ri)为资产i的预期回报率,βi为资产i的系统性风险,也即β系数,e(rm)为时长m的预期市场回报率,e(rm)-rf为市场风险溢价,rm(t)为t日的市场基准对数收益率,rp(t)为个券的t日的对数收益率,rf为无风险利率,从配置中获取。β为y对于x一元线性回归的斜率,其中x为自变量,y为应变量,根据最小二乘法:[0260]β=sxy/sxx[0261][0262][0263]其中,n表示采样区间的交易日数,xi表示第i日市场基准组合的超额收益,yi表示分析的该组合资产第i日的超额收益,该模块将计算出的个券β存储在β中间表中,如表12所示。[0264]表12β中间表[0265][0266]在一些实施例中,当所需计算的投资风险指标为久期时,所述etl引擎作业流程至少包括以下计算模块:[0267]持仓分析模块401,被配置为对输入的所述投资数据库2002中的持仓表进行持仓分析,输出临时持仓表;[0268]计算初始化模块402,被配置为将通过所述持仓分析模块401输出的所述临时持仓表中的个券信息和财汇的公开市场数据进行关联查询,输出经过更新的临时持仓表;[0269]债券中间表计算模块404,被配置为通过获取的债券估值表对所述权益类收益率计算模块403输出的所述临时持仓表进行更新,并输出债券中间表和更新后的所述临时持仓表;[0270]债券到期收益率计算模块405,被配置为根据获取到的债券现金流预估表对所述债券中间表计算模块404输出的所述债券中间表进行更新,输出更新后的所述债券中间表;[0271]债券久期计算模块416,被配置为根据通过所述债券到期收益率计算模块405输出的所述债券中间表、通过所述债券中间表计算模块404输出的所述临时持仓表和获取的债券现金流预估表,通过计算输出更新的所述债券中间表和计算结果表。[0272]具体的,本实施例中的前三个计算模块前述计算过程中的计算模块相同,这里不再赘述。下面对债券到期收益率计算模块405和债券久期计算模块416进行说明。[0273]债券到期收益率计算模块405,该模块只计算债券中间表中未剔除的债券。[0274]计算过程如下:[0275]根据:全价=现金流折现,计算到期收益率。[0276][0277]已知未来现金流和对应年化期限ti以及年付息频率,利用java规划求解函数计算出到期收益率。[0278]该模块将计算出的到期收益率存储在债券中间表中,可能输出的异常包括现金流获取异常,利差计算失败等。可能的原因是财汇的关键现金流数据不完整或者取值有异常,造成不满足利差计算规划解的取值范围。如果发现这些异常,需要将是否剔除字段设置为1,并记录相应的剔除原因。[0279]债券久期计算模块416,该模块首先计算个券的麦考林久期和修正久期,如果在债券中间表中已经有从财汇估值表中获取的麦考林久期和修正久期数据,则跳过该个券计算,如果债券中间表没有则根据债券现金流期限结构和到期收益率计算麦考林久期和修正久期。[0280]麦考林久期和修正久期的具体计算公式如下:[0281]麦考林久期其中,pvcfi为t时刻的现金流的现值,t为现金流支付的时间(化为年为单位);n为债券到期之前利息支付的次数。price为债券现金流贴现值的总和。[0282]第i期的现金流现值=第i期现金流/((1 到期收益率/年付息频率)^(ti*年付息频率));第i期的未来现金流期限ti=(i-1)/年付息频率 剩余付息期限;剩余付息期限(年)=(下一结息日-计算时点)/((下一结息日-上一结息日)*年付息频率));上一结息日)*年付息频率));修正久期其中macdur为麦考林久期,r为到期收益率。[0283]组合久期是由每个组合和分组下各个债券久期的市值加权得到,计算公式为[0284][0285]其中,adp为组合久期,adj为各个债券的修正久期,wj为各个债券在各个组合分组中的市值权重,n表示债券总数。该模块将计算的个券的久期存储到债券中间表中,将各个组合分组的久期存储在计算结果表中。[0286]在一些实施例中,当所需计算的投资风险指标为凸性时,所述etl引擎作业流程至少包括以下计算模块:[0287]持仓分析模块401,被配置为对输入的所述投资数据库2002中的持仓表进行持仓分析,输出临时持仓表;[0288]计算初始化模块402,被配置为将通过所述持仓分析模块401输出的所述临时持仓表中的个券信息和财汇的公开市场数据进行关联查询,输出经过更新的临时持仓表;[0289]债券中间表计算模块404,被配置为通过获取的债券估值表对所述权益类收益率计算模块403输出的所述临时持仓表进行更新,并输出债券中间表和更新后的所述临时持仓表;[0290]债券到期收益率计算模块405,被配置为根据获取到的债券现金流预估表对所述债券中间表计算模块404输出的所述债券中间表进行更新,输出更新后的所述债券中间表;[0291]债券凸性计算模块417,被配置为根据所述债券现金流预估表、通过所述债券到期收益率计算模块405输出的所述债券中间表和通过债券中间表计算模块404输出的所述临时持仓表,通过计算输出更新的债券中间表和计算结果表。[0292]具体的,本实施例中的前四个计算模块与前述计算模块相同,这里不再赘述。下面对债券凸性计算模块417进行说明。[0293]债券凸性计算模块417,该模块首先计算个券的凸性,如果在债券中间表中已经有从财汇估值表中获取的凸性数据,则跳过该个券计算,如果债券中间表没有则根据债券现金流期限结构和到期收益率计算凸性。[0294]凸性是衡量债券涨多跌少的程度,具体计算公式如下:[0295][0296]其中,pvcfi为t时刻的现金流的现值,p为年付息频率,t为现金流支付的时间(化为年为单位),n为债券到期之前利息支付的次数,price为债券现金流贴现值的总和,yld为到期收益率。[0297]第i期的现金流现值=第i期现金流/((1 到期收益率/年付息频率))^(ti*年付息频率)),其中,第i期的未来现金流期限ti=(i-1)/年付息频率 剩余付息期限,剩余付息期限(年)=(下一结息日-计算时点)/((下一结息日-上一结息日)*年付息频率))。上一结息日)*年付息频率))。[0298]组合的凸性是对于每个组合分组中的各个债券凸性的市值加权得到[0299][0300]其中,acp为组合凸性,acj为各个债券的凸性,wj为各个债券在各个组合分组中的市值权重。该模块将计算的个券的凸性存储到债券中间表中,将各个组合分组的久期存储在第五结果表中。[0301]需要说明的是,上述对本技术的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。[0302]所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本技术的范围(包括权利要求)被限于这些例子;在本技术的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本技术实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。[0303]尽管已经结合了本技术的具体实施例对本技术进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。本技术实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本技术实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本技术的保护范围之内。当前第1页12当前第1页12
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献