BT

F# と QuantLibによる金融アプリケーションの開発

| 作者: Anand Narayanaswamy フォローする 0 人のフォロワー , 翻訳者 編集部N フォローする 0 人のフォロワー 投稿日 2013年5月2日. 推定読書時間: 3 分 |

原文(投稿日:2013/04/26)へのリンク

QuantLibは、量的金融のモデリング、トレーディングとリスク管理用のオープンソースのライブラリでF#言語で使うことができる。QuantLibにアクセスするには、.NETコンポーネントのNQuantLib.dllとネイティブコンポーネントのNQuantLibc.dllを使わなければならない。

もし上記のライブラリファイルが利用できないなら、.libファイル、C++ソースとヘッダーファイルからそれらをからそれらを作成することができる。.libおよびヘッダファイルを取得するにはBoostをインストールする。また、BoostまたはBoostProの公式リポジトリでソースを構築することこともできる。

次のステップは、Quantlibのインストールで、.libおよびヘッダファイルをビルドする。この時Microsoft Visual C++ を使うが、公式ドキュメントに提供されている手順に従えばよい。インストール後、Quantlib-SWIGのzipファイル、 SWIGをダウンロードして、C++ラッパーファイルを生成するためにQuantLib-SWIG\CSharpディレクトリにあるswig.cmdファイルを実行する。これでVisual Studioを使用してNQuantLibc.dllとNQuantLib.dllをビルドすることができます。

Visual C++ 2012を使ってビルドしたいなら、以下のようにauto_link.hppを修正する必要がある。

auto_link.hppをオープンして以下の行を見つける。

#else
# error "unknown Microsoft compiler"

上の行の直前に以下の行を挿入する。

#elif (_MSC_VER == 1700)
# define QL_LIB_TOOLSET "vc110"

Right click on the QuantLibプロジェクトで右クリックしてプロパティを選ぶ。プロパティの構成 | 一般でターゲット名をQuantLib-vc110-mt あるいは QuantLib-vc110-mt-gdに変更する( QuantLibのリリースあるいはデバッグバージョンをビルドしているかに応じて)。

上記の回避策は、公式のMicrosoftのブログにpmcsというニックネームのF#開発者によって書かれ、製品チームによりチェックされている。

上記の手順が完了した後、参照と呼ばれるF#スクリプトディレクトリ下のディレクトリにNQuantLib.dllとNQuantLibc.dllを置く。プロジェクトを使用している場合、プロジェクトにファイルとしてNQuantLibc.dllを追加し、Newerの場合はコピーを出力へコピーに設定する。

Visual Studioを使ってF# と QuantLibで開発を始めるためにツール|オプション| F#ツール| F#インタラクティブ| 64ビットをFalseにする必要がある。またMonoDevelop, Xamarin Studioあるいは好みのテキストエディタを使うこともできる。

#I "references"
#r "NQuantLib.dll"
let date = QuantLib.Date.todaysDate()
printfn "today is: %s" (date.ISO())

上記のコード片は、F#の対話型コンソールに日付を出力する。見ての通り、我々はNQuantLib.dllを参照して、todaysDate()関数を呼んだ。

大きなプロジェクトでは、オブジェクトを適切に破棄するために、 'let'でなくキーワード 'use'も使うことができる。

use date = QuantLib.Date.todaysDate()

The F# product team led by Don Syme氏が率いるF#製品チームには、Alexandre Radicchi氏と一緒にMonoで、ライブラリファイルをコンパイルするのに必要な手順を確認し、更に欧州のコール・オプションの価格設定、日付とスケジュールなどのいくつかの追加サンプルを提供している。

Donは、QuantLibを詳しく調べることに興味をもつ人にImplementing QuantLibと題する本を薦めている。本の著者は、無料でアクセスできる全章のドラフトを提供している。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT