最近与一些软件业的朋友有接触,他们对于金融计算系统的开发都很有兴趣,毕竟金融系统在商业上代表的是高端产品,会有比较好的收益与较高的进入障碍。然而对于一般软件公司,金融商品的评价是一道难以跨越的鸿沟。如果可以克服评价的议题,应该对软件公司在开发这类系统,有最直接的帮助。
其实,QuantLib链接库应该是他们的首选,因为它早就建好所有市场上有交易产品的评价模块,而且是比照国际大银行内部使用的水平开发的链接库。然而,以C++开发的QuantLib,对一般软件公司而言,确实也太难了。更何况他们一般使用的是Java语言,公司内部早就是满屋咖啡香,根本不可能转往C++来使用。
有鉴于此,我打算来推广Java语言的QuantLib使用体验。QuantLib的项目团队其实早就考虑到这类需要,他们已经使用SWIG当作中介的管道,将QuantLib包覆一个Java接口,允许程序员以Java Native Interface(JNI)的方式,呼叫QuantLib编译的动态链接库。项目经理Lugi的Github网页(图一),已经把QuantLib-SWIG编译所需的压缩文件放在其上。
我最近就下载了此压所檔,在Ubuntu 20.04.4版本上安装成功,并在Eclipse下Run出Java对QuantLib的呼叫(图二)。这个编译过程很简单,你只要照着Lugi的说明檔做就可以。当然,你需要先将QuantLib的链接库编译好,然后再编译这个QuantLib-SWIG包覆接口。
我之前在Windows 10下也有成功编译这个QuantLib-SWIG接口,并且也在Eclipse下成功执行同样的Java程序呼叫(图三)。相对之下,Windows下的编译其实比较困难,但是也被我试出来了。我想之后如果软件公司想要使用Java呼叫QuantLib进行金融计算,这个技术问题应该已经被我克服了。这应该也算是一个成就吧。