应用举例:VaR估计
VaR是指在正常的市场条件和给定的置信度内,用于评估和计量任何一种金融资产或证券组合在既定时期内所面临的市场风险大小和可能遭受的潜在最大价值损失。
VaR有两种使用模型:
一种是金融机构用来度量风险控制能力;
另一种是交易中评估投资组合的风险和收益。
VaR程序计算复杂度非常高,特别是Basel II市场风险管理规则对VaR的要求更严格。显然在集成了VaR的算法交易系统中,VaR的运算速度非常重要,因为在投资组合开始计算VaR到计算结果输出的时间内,投资组合是暴露在风险中的。所以,衍生品交易者和高杠杆交易者必须加速对市场风险(VaR)估计算法以避免投资损失。
现有的投资组合估计方法有两种:
一种是考查单个资产在时间区间的损失,然后将它们合并起来决定资产组合的风险。这个合并的过程要用到蒙特卡罗(Monto Carlo,MC)方法,因为合并是投资组合中各种资产联合分布函数的非线性叠加;
第二种是基于投资组合的方法则只使用MC方法估计投资组合损失的分布。
伯克利大学的学者就采用CPU和GPU的VaR算法进行了比较。在其研究中,使用了MC方法而非分析计算方法,其原因是MC方法在期权或隐含期权的投资组合分析中,分析法的损失函数分布的“尖峰厚尾”性质较难以得出,此时MC算法更准确。同时因为交易是非线性过程,这个非线性过程最终聚集的分布可以认为是资产收益率的分布。
使用GPU来做MC-VaR,其步骤为:
第一步,问题的重新表述,其目的是将数学算法转化成适于计算的浮点运算;第二步,模型选择,产生可快速收敛的伪随机序列;
第三步,基于GPU的优化,主要是优化内存的读取。
该算法在CPU和CUDA上运行的结果近些年做了比较。其CPU平台为Intel Core 9300 Quadcore CPU,有着3MB L2缓存,2.5GB时钟频率。GPU时钟平台为NVIDIA GeForce GTX280,有1GB内存,30个1.3GB的CPU。每个有8条运算单元。经过问题重构和并行化处理,得到如表16-1所示的结果。
表16-1 VaR算法GPU和CPU时间对比
由此可见,通过使用GPU,学者得到了超过CPU 495倍的运算速度。由此可以看出,金融算法在并行化之后采用GPU运算,其实时性会大大增强,进而降低了风险,增加了交易速度。在量化交易中,GPU编程可以解决运算速度瓶颈。随着显卡性能的不断提升,其应用有着巨大的潜力和前景。