1. QuantLibを使ってみる
1.1 インストール
QuantLibはWindows、Mac OS X、Unix/Linuxのプラットフォームでインストールできるようですが、ここではOSがWindows環境でのインストール方法を解説します。QuantLibのサイトでもインストール方法が紹介されているので、そちらも参考にして下さい。但しその方法は、開発ツールとしてVisual Studio 2010版が出た頃に書かれたようなので、最近のVisual Studioを使う場合は、若干違いがでています。これから、最新のバージョンをインストールされる方は、以下を参考にして下さい。
1.1.1 Visual Studio のインストール
QuantLibを使うには、まずC++言語のコンパイラーを備えた開発環境が必要になります。これから始めようとする人には、Microsoftが無償で提供している統合開発環境、Visual Studio Communityを使うのがいいでしょう。その為には、まず下記にリンクを貼っている
MicrosoftのVisual Studioダウンロードサイト
に行ってください。
この解説を書いている段階(2019年4月)で、Visual Studio Communityの2019年版が出た所です。しかし現段階では、これよりもひとつ古い2017年版を使う方がいいと思います。理由は、次のセクションで説明するBoostのダウンロード可能なバイナリーファイルが、未だ2019年版に対応していない為です。Visual Studio 2019年版を使ってBoostのソースファイルから自分でビルドすれば対応可能かと思いますが、時間がかかります。
(注:その後、BoostのVersionアップがあり、Visual Studio Community 2019 にも対応できているバイナリーファイルが提供されているようなので、2019版をダウンロードして使っても問題ないと思います。
ダウンロードの具体的な方法も、Microsoftのサイトで紹介されています。
ここで、一点注意をしておくと、ダウンロード後、インストールする際、必要な“ワークロード”を選択できますが、最低限必要なのは Desktop Development with C++ (C++によるデスクトップ開発)です。それを選択する際、オプションとして提供されているWindows 8.1 SDK、及び Windows 10 SDK and UCRT SDKを念のため追加で選択しておいて下さい。 下記画面の右の方にある窓で選択できます。それ以外の、ASP.NETや.NETデスクトップ開発などのワークロードを追加で選択しても問題ありません。そのままインストールすれば、Visual Studioが使えるようになります。
ここで、C++が初めての方は、まず一定レベルの知識をつける必要があります。入門書や、Webサイトで無料の解説やTutorialが多数出ていますので、まずそこから始めて下さい。Visual Studioにも、ごく簡単な初心者用のTutorialが用意されていますが、それだけでは不十分です。基本的なレベルの知識をつけるまでに、おそらく数週間から数カ月はかかると思いますが、それが無いと、この実務編は理解不能です。
1.1.2 Boost ライブラリのインストール
QuantLibは、いくつかのテンプレートを、オープンソースであるBoostライブラリに依存しています。従ってあらかじめBoostライブラリをインストールしておく必要があります。Boostライブラリがどんなものかについては、Wikipediaをご覧下さい。ウィキペディア:ブースト
Boostライブラリをダウンロードするには、まずBoostのサイトに行きます。
そこから、最新版のライブラリをダウンロードすればいいでしょう。現時点(2019年4月)での最新版はVersion 1.70です。ダウンロードのページもURLを貼っておきます。
ここで、圧縮されたソースコードのファイルをダウンロードし、自分でビルドする方法と、すでにビルド済みのバイナリーファイルをダウンロードする方法があります。自分でビルドされたい方は、ダウンロード後に、Boostの“Getting Started”のページへ行き、そのインストラクションに従って下さい。あるいは、Googleで検索すれば、コンパイルの方法を解説したブログがいくつか発見できます。ビルドの方法はそれ程難しくありませんが、相当時間がかかります。
そうで無ければ、バイナリーファイルを直接ダウンロードして使う方が手っ取り早いです。QuantLibのインストレーションガイドも、バイナリーファイルを直接ダウンロードする方法を紹介しています。その場合は、下記URLにアクセスして下さい。(先ほどのダウンロード画面のOther Downloadsセクションにある“Prebuilt windows binaries”のリンクをクリックすれば現れます)
このページにある、最新のBoostのVersionのフォルダーをクリックして下さい。Version 1.70.0であれば、フォルダー名は1.70.0になります。そうすると、次の様な複数のインストール用exeファイルがリストされている画面出てきます。
各ファイルは、Visual Studioのバージョン毎に用意されたファイルです。ファイル名の中にある… msvc-xx.x …の部分が、Visual Studioに内包されているVisual C++コンパイラーの内部バージョン名です。お使いのVisual Studioの内部バージョンに対応するファイルを選択してダウンロードします。Visual Studio 2017版ならば14.1なので、
Boost_1_70_0-msvc-14.1-32.exe
Boost_1_70_0-msvc-14.1-64.exe
をダウンロードすればいいでしょう。32か64は、Windowsプラットフォームが32bit か64bitかの違いで選択して下さい。Windowsが64bitの場合は、両方使えます。
Visual Studio 2019版は、内部バージョンが14.2になっています。 従って、上記のリストでは、boost_1_70_0-unsupported-msv-14.2-… のファイルが対応すると思いますが、名前にunsupportedが含まれており、避けた方がいいと思います。Visual Studio 2019でBoostを使う場合は、BoostのZipファイルをダウンロードしインストール後、Visual Studio 2019を使って、ソースコードから直接自分でビルドすれば使えると思います。
(注: その後、Boostのバージョンアップがあり、現時点(2019年9月)では、Version1.71.0になっています。このVersionでは、Visual Studioの内部Version14.2に対応したBinaryファイルも提供されているので、それを使えばいいと思います。
ダウンロードの終了後、このインストール用exeファイルを走らせます。そうすると、私のPCでは、次の様な警告画面がポップアップされました。この画面の詳細情報をクリックすると、2つ目の画面が登場し、そこで実行ボタンをクリックします。
そうすると、インストールする場所を聞いてくるので、適当なパスとフォルダー名を指定すれば、そこにインストールされます。そのパス名を控えておいて下さい。
インストールが終了すると、そのフォルダーに以下の様なDirectoryとファイルが生成されます。実際のバイナリーファイルは、そこにあるlib32-msvc-14.1あるいはlib64-msvc-14.1というフォルダーの中に格納されています(上のどちらのexeファイルを実行するかによります)。
1.1.3 QuantLib のインストール
そして、最後にQuantLibをダウンロードします。まず、下記のダウンロードページに行ってください。
QuantLibのダウンロードページ現時点(2019年4月)の最新版は、Version1.15です。このページには、QuantLibの他に、QuantLib-SWIGとQuantLibXLのダウンロードファイルも用意されていますが、QuantLibを選択してください。そうすると、次のページに移ります。
TarファイルとZipファイルが用意されていますが、Windows-Visual Studioの開発環境を使う場合は、Zipファイルを選択して下さい。PC上の適当なパスとフォルダー名を指定して一旦コピーし、その後ファイルを開いて、Zipファイルを解凍します。すると、以下のようなフォルダーとファイルが展開されると思います。これでインストールは終了です。
1.1.4 QuantLib ソリューションのビルド
上記のファイルフォルダーから、QuantLib.slnという名前のソリューションファイルをダブルクリックします。そうすると、Visual Studioが自動的に立ち上がり、このファイルを開こうとします。(Visual Studioのインストールが未済なら、まず1.1.2に戻ってインストールを済ませて下さい)
その際、QuantLibに対するセキュリティー警告メッセージがポップアップしますが、“ソリューション内のすべてのプロジェクトに対して確認メッセージを表示する”ボタンを消して、OKを押します。
すると、さらに次のポップアップ画面が登場します。
他のQuantLibインストール方法の解説を見ると、どうもWindows 8.1 SDKを使わないといけないように書いていますが、私の場合は、10.0(最新のインストールされているバージョン)を選択しても問題ありませんでした。
そうすると、下記の画面になります。QuantLib.slnに格納されている約20のプロジェクトファイルがソリューションエクスプローラーに表示されます。
このプロジェクトファイルすべてに、先ほどインストールしたBoostライブラリをリンクさせる必要があります。
まず、ソリューションエクスプローラーに表示されているすべてのプロジェクトを選択します。そして、右上にあるプロパティーボタン(スパナの形)をクリックします。
すると、次の様なプロパティページがポップアップされます。ここで、
・構成(C):を“全ての構成”
・プラットフォーム(P):を“すべてのプラットフォーム”
に指定します。
次に、インクルードディレクトリに、先ほどインストールしたBoostライブラリのフォルダーを指定します。
さらに、ライブラリディレクトリにバイナリーファイルが格納されているBoostのライブラリフォルダーを指定します。Boostのフォルダーの下のlib32-mscv-14.1あるいは、lib64-mscv-14.1が該当すると思います。
プロジェクトのプロパティー設定が終われば、ビルドを開始します。DebugモードかReleaseモードが選択できますが、これからQuantLibを使ってみようとするなら、まずDebugモードでビルドしてみましょう。ツールバーで選択して下さい。プラットフォームは、Windowsのビット数に合わせ、Win32かx64を選択します。
メニューバーからビルド(B)を選択し、ソリューションのビルド、あるいは、特定のプロジェクトを選択して、そのプロジェクトだけをビルドする方法があります。ソリューション全体をビルドすると、ビルドに1~2時間かかります。
ビルドが成功すれば、出力画面に ビルド:x正常終了(xはビルドされたプロジェクトの数)という表示が出てきます。
ビルドが失敗した場合、出力画面にエラーの表示が出ます。ビルドがうまく行かない理由は様々です。QuantLibのMailing Listに、そういった様々なトラブルと対処法が、ユーザーが開発チームとの間のやりとりとして残っているので、エラーに関するキーワードを使って検索してみて下さい。
また、数多くのC4819 Warningが出力されていると思います。これは、ソースコードのコメント欄で使われている文字コードが、自身のVisual Studioでは読めないことを意味しています。コメント欄なので、プログラム自体には影響が無いので、無視していいかと思います。気になるようなら、次のPre-Processorコードをインクルードファイルに含めれば解消します。
#pragma warning(disable:4819)
これで、QuantLibのライブラリを使う準備が出来ました。では、次のセクションで、Examplesにあるいくつかのプロジェクトを走らせてみましょう。
<ライセンス表示>
QuantLibのソースコードを使う場合は、ライセンス表示とDisclaimerの表示が義務付けられているので、添付します。