統合金融リ ス ク管理装置および金融取引モデル化 発明の詳細な説明
技術分野 明
本発明は、 金融取引のリ スク管理をコンピュータを用いて統合的に行 うための金融リ スク管理技術に関す田る。 更に言えば、 実際のあるいは架 空の金融取引に関すろパラメータを任意に設定し、 組み合わせることに より、 任意の金融商品を自由に設計可能であり、 該金融取引の現時点あ るいは将来における時価を算出することにより、 架空の金融商品のシミ ユ レ一シヨ ンあるいは実際の金融商品の運用 (リ スク管理) を高速に実 行できる統合金融リ ス ク管理装置、 および該統 金融リ スク管理装置に 使用することができる金融取引モデル化装置に関する。
背景技術
金融市場の多俵化に ί半って、 金融取引も多様化 ·複雑化してきており、 金融取引のリ スク管理は金融関係者およびそのユーザにとつて必須の要 件となりつつある =
特に、 解約権付きスワ ップやキャップ付きスワ ップなどの、 複数の金 融取引実体からなる複合取引に対する統合リ スク管理技術が要請されて いる。
このよ うな複合取引の基礎となる個々の取引実体のリスク管理のため には、 従来は、 個々の取引実体の種類に応じたリ スク管理モジュールの プログラミングが必要であり、 開発コス トが膨大になると共に、 新たな 金融取引に対する柔軟かつ迅速な対応が困難であるという問題点を有し
典型的な従来のリスク管理システムとしては、 あらゆる機能を実装し たものがいくつか知られている しかし、 そのようなシステムは、 例え ば為替スポッ トゃ株式スボッ 卜、 割引債、 金利スワップ、 クーポン · ス ヮップ、 通貨スワップ、 あるいはオプションといった金融取引のすべて の機能を実装する必要があるため、 膨大な開発コス 卜が必要となりその 販売コス トも膨大になってしまうという問題点を有していた:
現実の金融取引としては、 「交換」 をべ一スとするキャッシュ ' フロー 系の取引が大部分を占めているが、 従来のシステムはこのような共通性 を活用しておらず、 全体と して効率の良いシステムではなかったため、 上述のようにコス ト増を招いていた。
一方、 複合取引に対する統合的なリ スク管理技術として、 紐付け管理 と呼ばれる従来技術が知られている。
この従来技術においては、 複合取引を構成する複数の取引実体に対し て共通の紐付け番号が付与され、 データベース上でこの紐付け番号を (吏 つて複数の取引実体が 1つの複合取引として一括してリスク管理される: このよ うな従来技術において、 複合取引に対するリ スク管理のための 諸演算を実行するためには、 紐付け番号を使つて複合取引を構成する個 々の取引実体をデータべ一ス上で検索し、 検索された個々の取引実体に 対してリ スク管理演算を実行してそれぞれの演算結果をデータベースに 格納した後、 何らかの方法によって実現される上記個々の取引実体間の 関連付けに基づいてデータベース上で検索 ·集計を行う手続きが必要と なる。
従って、 従来は、 複合取引に対する統合リ スク管理システムを開発す るためのプログラミングが膨大になり、 開発コス トの増大とシステムの
0/00919 3 T
肥大化を招く という問題点を有していた。
また、 従来は、 そのよ うにして開発された統合リ スク管理システムが 実行する演算処理量も膨大であり、 統合リ スク管理システムの性能の向 上が困難であるという問題点を有していた:
さらに、 複合取引を構成する個々の取引実体の種類および個数が増加 するに従って、 それらのデータを格納するための記憶容量も増大してし まうという問題点を有していた。
上記のような問題点を解決するために、 従来は、 特に金融取引を大量 に行う金融機関等において、 大容量かつ高性能なコンピュータの導入が 必要となり、 統合リ スク管理のための設備投資および運用コス トが膨大 になってしまつていた。
本発明は、 上述の課題を解決するものであり、 その目的は、 シンプル なシステム構成を実現することにより、 金融取引に対する統合リス ク管 理システムの開 < ·運用コス 卜を低減させ、 システム性能を向上させる ことにある:
発明の開示
まず、 本明細書および図面における 「クラ ス」 「インスタンス」 「メ ソ ッ ド」 「コンテナ ' クラス」 等の用語は周知のオブジェク ト指向概念にお ける所定の機能、 構成を意味する。 なお、 上記以外の用語もオブジェク 卜指向概念における所定の機能を意味する場合がある。 また、 「参照」 と は、 参照元のプログラムが、 読み出すべきデータの格納ア ドレス情報を 直接保持しており、 該ァ ドレス情報を利用して必要なデータを読み出す ことを指す。
図 1は、 本発明の第 1の態様の原理を示すプロック図である。
本発明の第 1の態様は、 金融に関する 1つ以上の取引実体 (スワップ
^
取引、 オプション取引等) からなる複合取引 ( 1つの取引時点のみによ つて構成されてもよい) に対してリ スク管理を行う統合金融リスク管理 装置を前提とする。
1つ以上の取引実体モデル化手段 1 0 3は、 それぞれ取引実体に関す る情報を個別に格納する格納手段 1 0 2と、 取引実体に関する時価評価 演算手段 1 0 1 とを有する: この取引実体モデル化手段 1 0 3は、 例え ば、 格納手段 1 0 2が取引実体をモデル化するためのパラメータをクラ スメンバとして保持し、 時価評価演算手段 1 0 1をメ ソッ ド (GetNPVメ ソッ ド) と して ί呆持し、 ォブジ ク ト指向概念における所定のクラスの インスタンス (TContract インスタンス) を実行するモジュール (クラ スモジュール 5 0 1 R D BM Sモジュール 5 0 2 R D Bモジュール 5 0 3) である。
仮想取引手段 1 0 7は、 各取引実体モデル化手段 1 0 3を参照するた めの参照情報群 1 0 4を保有する参照情報記憶手段 1 0 5と、 所定の指 示に基づいて、 その参照情報群 1 0 4から各取引実体モデル化手段 1 0 3を順次参照し時価評価演算手段 1 0 1を実行させてその演算結果を取 得し、 その各演算結果に基づいて複合取引の特性を算出する複合取引特 性算出手段 1 0 6 とを有する。 ここで、 前述の取引実体モデル化手段 1 0 3は例えばリ ス ト構造と して実装され、 仮想取引手段 1 0 7は、 参照 情報記憶手段 1 0 5が参照情報群 1 04をリス トメンバ (リンクリスト L inkList) として保持し、 複合取引特性算出手段 1 0 6を仮想メソッド ( GetNPV) として保持し、 オブジェク ト指向概念における所定のコンテナ - クラスのインスタンス (TVirtualContractインスタンス) を実行する モジ ノレ (クラスモジュール 5 0 1 !¾081 5モジュール 5 0 2 08モジュール5 0 3 ) である。
-
なお、 金融特性算出手段 1 0 8については、 後述する。
上述の本 ¾明の第 1の態様の構成によれば、 1つ以上の取引実体から 構成される金融に関する複合取引 (複合商品) に対するリ スク管理にお いて、 従来同時に達成することが困難であった、 システムの単純化 - リ スク管理演算の高速化 ·データ圧縮という 3つの要請を同時に達成する ことが可能となる。
すなわち、 本発明の第 1の態様の構成では、 対象となる取引の種類は 問わずかつその構成要素が単一か複合かを問わずに、 全ての取引を例外 なく 1つの仮想取引手段 1 0 7によって取りまとめることができる。 こ のため、 アプリケーショ ン ' プログラマは、 取引種や構成を意識するこ となく、 ブログラミングを行う二とができる
具体的には、 取引実体モデル化手段 1 0 3力; TContrac t クラスのイン スタンスなどとして実装され、 仮想取引手段 1 0 7が TVirtua lCont rac t クラスのインスタンスなどとして実装されることにより、 全ての取引を 常に TVirtua lContrac tインスタンスなどとして認識することができる。 そして、 アプリケーション · ブログラマは、 TCon trac t クラスなどの 構造は変更することなく、 仮想取引手段 1 0 7における複合取引特性算 出手段 1 0 6を実現する TV i rtua l Contrac tィンスタンスなどにおけるメ ソッ ドを個別に開発するだけで、 様々なリスク管理機能を容易に開発す ることが可能となる。
また、 本発明の第 1の態様の構成では、 1つ以上の取引実体モデル化 手段 1 0 3力;、 仮想取引手段 1 0 7内のリ ンク リ ス ト等の参照情報群 1 0 4により参照される単純な構造を有し、 かつ、 仮想取引手段 1 0 7に 対して 1 つの指示を発行するだけで、 参照情報群 1 0 4を介して各取引 実体モデル化手段 1 0 3内の時価評価演算手段 1 0 1が独立に時価評価
g
演算を実行し、 最後に仮想取引手段 1 0 7内の複合取引特性算出手段 1 0 6が各時価評価演算結果を取りまとめる構成を有する: このため、 リ スク管理における各種演算を、 参照情報群 1. 0 4を介した各取引実体モ デル化手段 L 0 3:こ対するシーケンシャルなアクセス動作によって高速 に実行することが可能となる。
具体的には、 取引実体モデル化手段 1 0 3を、 時価評価演算手段 1 0 1 を GetNPVメ ソッ ドと して保持する TContrac t クラスのインスタンスな どとして実装し、 仮想取引手段 1 0 7を、 参照情報群 1 0 4をリ ンクリ ス トとして保持すると共に、 複合取引特性算出手段 1 0 6を仮想メソッ ド GetNPVと して保持する TV irtua lContrac tコンテナ ' クラスのインスタ ンスなどと して実装することにより、 オンメモリ上での高速リスク管理 演算が容易に実現される。
さらに、 本発明の第 1の態様の構成では、 金融取引は、 (反想取引手段 1 0 7が独立して存在する 1つ以上の取引実 (本モデル化手段 1 0 3を参 照するという構成を有するため、 例えばスワップ取引、 オプション取引 といった 1つ 1 つの取引実 ί本モデル化手段 1 0 3を複数の仮想取引手段 1 0 7に参照させることが可能となる。 すなわち、 1つの取引実体モデ ル化手段 1 0 3のデータを、 複数の金融取引のために使い回すことが可 能となる。 この結果、 同様の金融取引を大量に取り扱うような金融機関 などにおいて、 大きなデータ圧縮効果を得ることが可能となり、 コンビ ュ一タ資源の削減が可能となる。
この場合に、 例えば、 仮想取引手段 1 0 7内の複合取引特性算出手段 1 0 6に、 各演算結果に所定の変換係数を乗じて新たな演算結果を算出 するような機能を持たせることにより、 金融取引ごとに各取引実体モデ ル化手段 1 0 3に対する金融特性の微妙な差異を吸収することが可能と
なる。
図 2は、 本発明の第 2の態様の構成図である。
本発明の第 2の態様は、 所定の取引期間 (所定の時点のみをも含む) 2 0 1において金融取引対象 (通貨以外の金融商品をも含む).の受け払 いを行うことによって成立する取引 (キャッシュ ' フロー系取引) をモ デル化する金融取引モデル化装置を前提とする。 なお、 本発明の第 2の 態様の構成は、 上述の本発明の第 1の態様の構成を前提とするものでは ないが、 本発明の第 1の態様の構成における取引実体モデル化手段 1 0 3を実現する一構成である。
1つ以上の単位取引モデル化手段 2 0 7は、 金融取引対象の受け側 ( レシーブサイ ド) 2 0 2および払い側 (ペイサイ ド) 2 0 3のそれぞれ において、 所定の取引期間 2 0 1を受けあるいは払い毎に分割して得ら れる 1つ以上の単位取引期間 (CashFlowLet ) 2 0 4ごとに設けられ、 それぞれ、 単位取引に関する情報を個別に格納する単位取弓 I情報格納手 段 2 0 6 と、 その単位取引期間 2 0 4の時価評価演算手段 2 0 5を有す る: この単位取引モデル化手段 2 0 7は、 例えば、 単位取引情報格納手 段 2 0 6が単位取引期間 2 0 4の時価評価演算を行うためのバラメータ をクラスメンバと して保持し、 時価評価演算手段 2 0 5 (Get PV) をメ ソッ ドと して保持し、 オブジェク ト指向概念における所定のクラスのィ ンスタンス (TCFSwap インスタンス) を実行するモジュール (クラスモ ジュール 5 0 1、 R D B M Sモジュール 5 0 2、 R D Bモジュール 5 0 3 ) である。 上述の時価評価演算手段 2 0 5は、 例えば、 その単位取引 モデル化手段 2 0 7に対応する単位取引期間 2 0 4における、 金利、 収 益率、 または価格の 3種類の指数のいずれかに基づいて計算される将来 価値指数と、 金利、 収益率、 および価格のいずれの指数にも依存しない
g
評価値とに基づいて時価評価演算を実行する。 また、 上述の時価評価演 算手段 2 0 5は、 例えば、 その時価評価演算結果に対してさらに所定の 割引率を乗じて得られる現在価値をその時価評価演算結果とする割引率 乗算手段を含む。
取引系列モデル化手段 2 1 1は、 単位取引モデル化手段 2 0 7を参照 するための参照情報群 2 0 8を金融取引対象の受け側 2 0 2および払い 側 2 0 3のそれぞれに対応して保有する参照情報記憶手段 2 0 9と、 所 定の指示に基づいて、 金融取引対象の受け側 2 0 2および払い側 2 0 3 のそれぞれにおいて、 その参照情報群 2 0 8から各単位取引モデル化手 段 2 0 7を順次参照し時価評価演算手段 2 0 5を実行させてその演算結 果を取得し、 その各演算結果に基づいて取引系列の特性を算出する取引 系列特性算出手段 2 1 0とを有する。 ここで、 前述の単位取引モデル化 手段 2 0 7は ί列えばリ ス ト構造として実装され、 取引系列モデル化手段 2 1 1は ί列えば、 金融取引対象の受け側 2 0 2および払い側 2 0 3のそ れぞれにおける参照情報群 2 0 8をリ ス トメンバ (RecCashFlows , PayCa shFlows) として ί呆持し、 取引系列特性算出手段 2 1 0を仮想メソッド ( GetNPV) と して保持し、 オブジェク ト指向概念における所定のコンテナ - クラスのインスタンス (TCFSwap インスタンス) を実行するモジュ一 ル (クラスモジュ一ノレ 5 0 1 、 R D B M Sモジュール 5 0 2 、 R D Bモ ジュール 5 0 3 ) である。
なお、 金融特性算出手段 2 1 3については、 後述する。
上述の本発明の第 2の態様の構成によれば、 為替、 現金貸借、 債権、 株式、 商品、 金利 ·通貨スワップ、 ェクイティ ' スワップ、 コモディテ ィ - スワップをはじめとする 「交換」 をベースとする多様な金融取引を、 1つの取引系列モデル化手段 2 1 1によって統一的にモデル化すること
g
が可能となる。 より具体的には、 キャッシュ · フロー系取引実体が、 受 け側 2 0 2および払い側 2 0 3のそれぞれにおける単位取引期間 2 0 4 ごとのキャッシュ · フロー要素 (CashFlowLet ) の集合として管理され、 各要素がそれらを参照する取引系列モデル化手段 2 1 1によって取りま とめられる構成を有する.—, そして、 この参照様式が多様化されることに よって、 各種の 「交換ベースのキャッシュ ' フロー系取引」 を統一的に モデル化することが可能となるのである。
この結果、 金融取引モデル化装置のシステム構成を非常にコンパク ト なものにすることが可能となり、 開発 ·販売コス 卜の削减に大きく貢献 する- ここで金融取引対象は、 必ずしも通貨である必要はなく、 為替、 債権、 株式、 商品などであってもよい: この場合には、 単位取引モデル化手段 2 0 7における時価評価演算手段 2 0 5は、 それに対応する単位取引期 間 2 0 4において、 金融取引対象の単位 (例えば株数など) のもとでの、 金利、 収益率、 または価格に準ずる時価比率を演算することにより、 将 来価値指数を算出することができる,. すなわち本発明の第 2の態様では、 どのような単位を有する金融取引対象であっても、 「交換ベースのキヤッ シュ ' フロー系取引」 を統一的に扱えるのである。
本発明の第 2の態様の構成で、 ユーザ等による日付情報の設定に基づ いて、 所定の取引期間 2 0 1を受けあるいは払い毎に分割して 1つ以上 の単位取引期間 2 0 4を算出し、 金融取引対象の受け側 2 0 2および払 い側 2 0 3のそれぞれにおいて、 算出した単位取引期間 2 0 4ごとに、 単位取引モデル化手段 2 0 7を生成し、 受け側 2 0 2および払い側 2 0 3のそれぞれに対応する取引系列モデル化手段 2 1 1内の参照情報群 2 0 8を生成するユーザ . インタフェース手段 2 1 2 (TCFChain. Bui ldCF
メソッ ド) をさらに含むように構成することができる。
この構成により、 ユーザは、 上述した 「交換」 をベースとする多様な 金融取引を、 統一したユーザ ' インタフヱ一スを介して設計することが 可能となり、 操作性の向上に大きく貢献する:
また、 本発明の第 2の態様の構成において、 単位取引モデル化手段 2 0 7ごとに、 それがモデル化する金融取引のためのパラメータを変更し、 その変更に応じて所定の指示を発行するユーザ■ インタフェース手段 2 1 2 (マジック ' シート) をさらに含むように構成することができる: この構成により、 ユーザは、 交換ベースのキャッシュ ' フロー系取引 に対し、 非常に詳細なカスタマイズを行うことが可能となる。
図 3は、 本発明の第 3の態様の原理を示すプロック図である。
本発明の第 3の態様は、 金融に関するォブション取引をモデル化する 金融取引モデル化装置を前提とする.: なお、 本発明の第 3の態様の構成 は、 前述の本発明の第 1の態様の構成を前提とするものではないが、 本 発明の第 1の態様の構成における取引実体モデル化手段 1 0 3を実現す る一構成である:
1つ以上の原資産モデル化手段 3 0 3は、 それぞれォブション取引の 原資産に関する情報を個別に格納する格納手段 3 0 2と、 その原資産に 関する時価評価演算手段 3 0 1を有する。 この原資産モデル化手段 3 0 3は例えば、 格納手段 3 0 2が原資産をモデル化するためのバラメータ をクラスメンバとして保持し、 時価評価演算手段 3 0 1をメソッド (Get NPV) として保持し、 オブジェク ト指向概念における所定のクラスのイン スタンス (TOpt ion インスタンス) を実行するモジュール (クラスモジ ユール 5 0 1 、 R D B M Sモジュール 5 0 2、 0 8モジュール 5 0 3 ) である。
ォプションモデル化手段 3 0 8は、 各原資産モデル化手段 3 0 3を参 照するための参照情報群 3 0 4を保有する参照情報記億手段 3 0 5と、 その参照情報群 3 0 4から順次参照される各原資産モデル化手段 3 0 3 内の時価評価演算手段 3 0 1による各演算結果および/または所定の評 価モデル (ブラック ■ ショールズ ·モデルなど) 3 0 6に基づいてォプ ション取引の特性を算出するォブション取引特性算出手段 3 0 7とを有 する。 ここで、 前述の原資産モデル化手段 3 0 3は例えばリ ス ト構造と して実装され、 オプショ ンモデル化手段 3 0 8は、 参照情報群 3 0 4を リス トメンバ (Lnder l y ings ) と して保持し、 オプション取引特性算出 手段 3 0 7を仮想メソッ ド (GetNPV等) として保持し、 オブジェク ト指 向概念における所定のコンテナ · クラスのインスタンス (TOpt ion ィン スタンス) を実行するモジュール (クラスモジュール 5 0 1、 R D B M Sモジュール 5 0 2、 [¾ 0 8モジュール 5 0 3 ) である。 オプショ ンモ デル化手段 3 0 8は、 例えば、 所定の指示の発行時に、 オプション取引 に対して設定されている 日付がそのォプション取引のィン · ザ · マネ一 の状態である場合に、 参照情報群 3 0 4から各原資産モデル化手段 3 0 3を順次参照し時価評価演算手段 3 0 1を実行させてその演算結果を取 得し、 その各演算結果および所定の評価モデル 3 0 6に基づいてォプシ ョン取引の特性を算出し、 上記日付がォプション取引のァゥ ト ·ォブ - ザ 'マネーの状態である場合に、 所定の評価モデル 3 0 6のみに基づい てォプション取引の特性を算出する。
なお、 金融特性算出手段 2 1 3については、 後述する。
従来のォプションのモデル定義では、 ォプション自体の評価モデルに 原資産の特性を加味してォプションのモデルが決定されていた。 これに 対して本発明の第 3の態様の構成では、 原資産モデル化手段 3 0 3は、
ォブションの評価モデルとからは完全に分離 ·独立して設計 · 実装する 二とができ、 ォプションの本体であるォブションモデル化手段 3 0 8は、 参照情報群 3 0 4を介して上述のようにして独立して実装される任意数 の原資產モデル化手段 3 0 3を参照することができる。 すなわち、 ォプ シヨンモデル化手段 3 0 8に対して 1つの指示を発行するだけで、 参照 情報群 3 0 4を介して各原資産モデル化手段 3 0 3内の時価評価演算手 段 3 0 1 が独立に時価評価演算を実行し、 最後にォプションモデル化手 段 3 0 8内のォプション取引特性算出手段 3 0 7が、 各演算結果と所定 の評価モデル (イン · ザ . マネー時) または所定の評価モデルのみ (ァ ゥ ト ' ォブ ·ザ■ マネー) に基づいて、 オプション取引の特性を算出す ることができる- このため、 本発明の第 3の態様の構成によれば、 ォブ ション取引のシステム設計が簡略化され、 性能の向上と開発 ·販売コス 卜の削減に貢献する。
また、 本発明の第 3の態様の構成においては、 1つの原資産モデル化 手段 3 0 3のデータを、 複数のオプション取引のために使い回すことが 可能となる。 この結果、 同様のオフ :シヨ ン取引を大量に取り扱うような 金融機関などにおいて、 大きなデータ圧縮効果を得ることが可能となり、 コンピュータ資源の削减が可能となる。
さらに、 本発明の第 3の態様の構成においては、 オプションモデル化 手段 3 0 8は、 オプション取引に対して設定されている日付がそのォプ ション取引のィン ·ザ · マネーの状態である場合に、 各原資産モデル化 手段 3 0 3内の時価評価演算手段 3 0 Lによる各演算結果と所定の評価 モデル 3 0 6に基づいてォプション取引の特性を算出し、 上記日付がォ ブション取引のァゥ ト ■ ォブ■ザ ·マネーの状態である場合に、 所定の 評価モデル 3 0 6のみに基づいてォブション取引の特性を算出するよう
に構成することができる。 この結果、 イン ■ ザ · マネー/ァゥ ト ■ ォブ -ザ ·マネーの別による切替え制御が単純化され、 高性能なシステムを 構築することが可能となる。
本発明の第 4の態様は、 上述した本発明の第 1、 第 2、 または第 3の 態様の構成を前提とする。
そして、 図 1、 図 2、 または図 3の金融特性算出手段 1 0 8, 2 1 3, または 3 0 9は、 各時価評価演算手段 1 0 L , 2 0 5 , または 3 0 1に 対して、 その各時価評価演算手段による各時価評価演算時の金融特性 ( リアルタイムデータを含む) を算出し、 その金融特性を各時価評価演算 手段 1 0 1 , 2 0 5, または 3 0 1に供給する。 この金融特性算出手段 1 0 8 , 2 1 3 , または 3 0 9は、 例えば、 上記金融特性をモデル化し、 オブジェク ト指向概念における所定のクラスのインスタンス (TCntYield Curves, TCntPr iceCurves, TCntVolsCurves¾ ) ¾T夹丁す モンユーノレ ( クラスモジュール 5 0 L、 RD B MSモジュール 5 0 2、 RD Bモジュ —ル 5 0 3 ) である。 そして、 各時価評価演算手段 1 0 1, 2 0 5, ま たは 3 0 1は、 上記所定のクラスのインスタンスが保有し、 上記金融特 性を算出するための所定のメソッ ドを参照する参照情報 (DiscCurve, Pri ceCurve等リ r含む- また、 上述の本発明の第 4の態様の構成において、 上述の金融特性を 定義する金融特性定義手段をさらに含むように構成することができる。 上述の本発明の第 4の態様の構成によれば、 ユーザは、 金融取引対象 の単位、 休日除外都市、 ィール ド ' カーブ、 ブライス ' カーブ、 ボラリ ティ , カーブ等の各種金融特性を自由に時価評価演算に導入し、 設計す ることも可能となる。
本発明の第 4の態様の構成において、 金融特性算出手段 1 0 8, 2 1
3 , または 3 0 9は、 各時価評価演算手段 1 0 1 , 2 0 5, 3 0 ]„によ る各時価評価演算時の複数の単一金融特性をそれぞれ算出する複数の単 一金融特性算出手段と、 それら複数の単一金融特性を合成して新たな仮 想金融特性を算出し、 その仮想金融特性を各時価評価演算手段 1 0 1, 2 0 5 , または 3 0 1に供給する仮想金融特性算出手段とを含むように 構成することができる。 この場合、 各単一金融特性算出手段は、 例えば、 各単一金融特性をモデル化し、 オブジェク ト指向概念における複数の所 定のクラスのそれぞれのイ ンスタンス (TAbsCurve ) を実行するモジュ —ル (ク ラスモジュール 5 0 1、 1¾08]\15モジュール 5 0 2、 RD B モジュール 5 0 3 ) であり、 仮想金融特性算出手段は、 例えば、 複数の 所定のクラスが,維承する 1つの所定のスーパークラスのインスタンス (T CntVirtualCurve) を実行するモジュールである。 そして、 各時価評価演 算手段 1 0 1, 2 0 5 , または 3 0 1は、 上記スーパークラスが保有し、 仮想金融特性を算出するための所定のメ ソッ ドを参照するための参照情 報を含む- この構成;こよれば、 ユーザは、 複数の金融特性を合成してさらに効果 的な金融特性を時価評価演算に導入することが可能となる。
なお、 本発明は、 コンピュータにより使用されたときに、 上述の本発 明の各態様の構成によって実現される機能と同様の機能をコンピュータ に行わせるためのコンピュータ読出し可能記録媒体として構成すること もできる。
図面の簡単な説明
図 1は、 本発明のブロック図 (その 1)、
図 2は、 本発明のブロック図 (その 2)、
図 3は、 本発明のブロック図 (その 3)、
図 4は、 本発明の概念図、
図 5は、 本発明の実施の形態の全体構成図、
図 6は、 解約権付きスヮップの仮想取引管理の説明図、
図 7は、 ブレーンバニラ 'スワ ップの ί反想取引管理の説明図、 図 8は、 ί反想取引を実現するクラス構造図、
図 9は、 データ圧縮の説明図 (その 1)、
図 1 0は、 データ圧縮の説明図 (その 2)、
図 1 1は、 RD BMS上での仮想取引の実現構造図、
図 1 2は、 RD B上のテ一ブル構成図 (その 1 )、
図 1 3は、 TCFSwap インスタンス · イ メージと TCF クラスのデ一タ構 造図、
図 1 4は、 TCFChainクラスの属性概要を示す図、
図 1 5は、 RDB上のテーブル構成図 (その 2)、
図 1 6は、 TCF クラスの属性概要を示す図、
図 1 7は、 RD B上のテーブル構成図 (その 3)、
図 1 8は、 TCFSwap インスタンスの生成の手順の説明図、
図 1 9は、 TCFChain. BuildCFメ ゾッ ドの処理フロー、
図 20は、 TCF. Updateメ ソッ ドの処理フ口一、
図 2 1は、 取引の分類を示す図表、
図 2 2は、 TOption クラスのデータ構造とインスタンス ·イメージを 示す図、
図 2 3は、 TOpUon の属性とメ ソッ ドの概要を示す図表、
図 24は、 TPwrGadgetクラスのデータ構造図、
図 25は、 メインのコン ト口一ルバネルの画面例、
図 26は、 キャッシュ ' フロー取引を作成するための初期画面例、
図 2 7は、 金利スワップ取引を作成するための画面例 (その 1 図 2 8は、 金利スワップ取引を作成するための画面例 (その 2 図 2 9は、 金利スワップ取引を作成するための画面例 (その 3 図 3 0は、 金利スワップ取引を作成するための画面例 (その 4 図 3 1は、 金利スワップ取引を作成するための画面例 (その 5 図 3 2は、 金利スワップ取引を作成するための画面例 (その 6 図 3 3は、 金利スワップ取引を作成するための画面例 (その 7 図 3 4は、 金利スワップ取引を作成するための画面例 (その 8 図 3 5は、 金利スワップ取引を作成するための画面例 (その 9 図 3 6は、 ェクイティ · スワップ取引を作成するための画面例 (その)、
図 3 7は、 ェクイティ ' スワップ取引を作成するための画面例 (その)、
図 3 8は、 為替取引を作成するための画面例 (その 1 )、
図 3 9は、 為替取引を作成するための画面例 (その 2 )、
図 4 0は、 為替取引を作成するための画面例 (その 3 )、
図 4 1は、 "PwrGadget" 機能の初期画面例、
図 4 2は、 休日除外対象都市の定義画面例、
図 4 3は、 取引単位の定義画面例、
図 4 4は、 ィールド ■ カーブの定義画面例 (その 1 )、
図 4 5は、 ィ一ルド · カーブの定義画面例 (その 2 )、
図 4 6は、 ブライス . カーブの定義画面例 (その 1 )、
図 4 7は、 ブライス ' カーブの定義画面例 (その 2 )、
図 4 8は、 仮想カーブの定義画面例、
図 4 9は、 オプション取引において原資産であるスワップ取引を作成
ιη するための画面例、
図 5 0は、 ォブション取引の定義ウィンドウの画面例、
図 5 1は、 オプション取引を作成するための画面例 (その 1)、 図 5 2は、 オプション取引を作成するための画面例 (その 2)、 図 5 3は、 金融取引の合成手順の画面例 (その 1 )、
図 5 4は、 金融取引の合成手順の画面例 (その 2)、
図 5 5は、 金融取引の合成手順の画面例 (その 3)、
図 5 6は、 金融取引の合成手順の画面例 (その 4)、
図 5 7は、 キャッシュ · フロー系取引を作成するための初期画面例 ( 強調図) である。 発明を実施するための最良の形態
以下、 図面を参照しながら本発明の好適な実施の形態について詳細に 説明する。
図 4は、 本発明の実施の形態の概念図、 図 5は、 本発明の実施の形態 の全体構成図である。 以下、 これらの図を随時参照しながら、 本発明の 実施の形態の概念および詳細について、 順次説明する。
0. 本発明の特徴
本発明の特徴は、 以下の 6点である。
1. 複数の取引実体に対応するクラス (TCFSwap/TOption ク ラス) をとりまとめて 1つの仮想取引を実現する TVirtualContr actコンテナ ' クラスの枠組み (仮想取引管理方式)
2. キャッシュ · フロー系取引実体を、 受けサイ ド (レシ一 ブサイ ド) および払いサイ ド (ペイサイ ド) のそれぞれにおけ
る単位取引期間ごとのキャッシュ · フロー要素 (CashFlovLet ) の集合と して管理し、 各 CashFlowLet に対応する TCF クラス をと りまとめて 1つのキヤッシュ · フ口一系取引実体を実現す る TCFSwap コンテナ ' クラスの枠組み
3. 各 TCF クラス (CashFlowLet での共通化された時価評 価演算処理
4. 各 TOption (コンテナ) クラスの枠組み
5. 金融カーブ定義機能
6. リスク管理のためのパラメータ変更とそれに対するシミ ュレ一ション結果の表示を容易に行うことのできるユーザ · ィ ンタフェース 以下、 本発明に関する上記 1. 〜 6. の特徴のそれぞれについて、 本発 明の実施の形態に沿つて詳細に説明する。
• 仮想取引を実現する TVirtualContractコンテナ ' クラス
(仮想取引管理方式)
まず、 本発明の第 1の特徴である TVirtualContractコンテナ ' クラス
:ついて説明する。
1. 1 仮想取引の概念
本実施の形態では、 図 4に示されるように、 金融取引は複数の取引実 体から構成される複合取引 (複合商品) であるのが一般的であるとの前 提が仮定されている。
この前提に基づいて本実施の形態では、 コンピュータ上において金融
取引をオブジェク ト指向概念に基づいてコード化し、 オブジェク ト指向 概念に基づいて統合リ スク管理を実現する。 なお、 本発明においては、 ォブジェク ト指向概念は必湏の要件ではないが、 本発明に基づいてコン ピュータ上で統合リ スク管理システムを効率的に構築する助けとなる概 念であるため、 本実施の形態はオブジェク ト指向概念に基づくシステム 構築を例として説明する。
本実施の形態ではまず、 図 5に示されるように、 各取引実体に 1つず つ対応する TCon trac t という抽象クラスが定義される。 そして、 これら の取引実体から構成される複合取引としての金融取引が、 TCon trac t ィ ンスタンスを任意数保持できるコンテナ ' クラス TVirtua lCon trac tによ り表現される。 本実施の形態では、 このようなオブジェク ト指向概念に よって制御される金融管理を、 「仮想取引管理」 と呼び、 上述の複合取引 を仮想取引と呼ぶ。
例えば、 「解約権付きスワ ップ」 のインスタンス 'イメージにおいては、 図 6に示されるように、 1 つめの取引実体に対応する I nteres t RateSwap という名前の TCont rac t インスタンスと、 2つめの取引実 ί本に対応する 0 pt i onOnSwapという名前の TContrac t インスタンスが、 「解約権付きスヮ ッブ」 という仮想取引に対応する TVirtua l Contrac tィンスタンスの集合 要素となる。
この仮想取引管理方式は、 一見複雑であるが、 人間が金融取引実体の 集合を仮想的な複合取引と して認識する手順をコンピュータ上に忠実に 反映するものである。 すなわち、 この事例である解約権付きスワップの ような複合取引を人間が認識する場合、 まずそれがどのような取引であ るのかを示す名前 (解約権付きスワップ) すなわち集合名でその仮想取 引を認識し、 必要に応じてその構成要素 (集合要素) である取引実体に
go
関心を向けるはずである。
人間が無意識に行う、 命名による集合の認識は、 複雑な事象を単純化 して极ぅための手法である。 そして、 この手法は、 単一取引と複合取引 を区別することなく仮想取引として极ぅという本実施の形態における機 能要件を満足する上で、 不可欠な基本概念となっている。 すなわち、 こ の概念では、 金融取引の一般型が複合取引として把握される。 従って、 例えば、 単純な定型取引の 1つであるブレーンバニラ · スワップが表現 される場合においても、 図 7に示されるように、 集合要素が Interes tRat eSwapという名前の 1件のみの取引実体である、 I nterestRateSwapとレヽう 同一名の仮想取引として表現されることになる。
このよ うに、 本実施の形態では、 単純取引も複合取引と同様に仮想取 引コンテナに保持させることにより、 多種多様な金融取引の統合リスク 管理を単純なァルゴリズムで実現することが可能となる。 1 . 2 仮想取引を実現するクラス構造
本実施の形態における仮想取引の、 オブジェク 卜指向概念上でのクラ ス構造を図 5および図 8に示す。
各図中、 TCFSwap は、 各種キャッシュ · フロ一系取引のキャッシュ - フロー要素を保持するコンテナ ' クラスである。 また、 TOp t ion は、 各 種オプションを代表する抽象クラスを表している。 このように、 本実施 の形態では、 TContrac t クラスを継承する、 各種取引実体に対応するク ラスが定義される。
TVirtual Contrac tクラスは、 各種取引実体に対応する TCFSwap/TOpt ion クラスのインスタンスを保持する機能を有するコンテナ ' クラスで、 TV irtualContractインスタンスは、 そのメンノくの 1つとして、 各 TCFSwap/T
Option インスタンスのリ ス 卜構造への参照であるリンク リ ス トを保持し ている。
なお、 TCFSwap および TOption に関する各クラ ス構造については後述 する。
図 5および図 8に示されるクラス構造が持つ優れた特性は、 例えば図 6に示されるような複合取引の時価評価の演算手順を想定すると、 容易 に理解することができる:
TContract クラスは、 時価評価演算を実行する仮想メ ソ ッ ド GetNPV () を持ち、 TCFSwap クラ スと TOption クラスは共にこの仮想メ ソッ ドをォ ーバ一ライ ドしている。 このため、 TVirtualContractクラスのインスタ ンスである CancelableSwap (解約権付きスワップ) インスタンスがァク ティブになった段階で、 そのィンスタンスのリ ス ト構造に格納されてい る、 TContract クラスをそれぞれ継承する取引実体クラス TCFSwap およ 順次仮想メ ソッ ド Get P )が発行されることによ り、 解約権付きスヮッ ブの時価評価演算の解が得られる- このように本実施の形態では、 各 TCFSwap インスタンスまたは TOption インスタンスが TVirtualContractィンスタンス内のリ ンク リス トを介し て保持されることにより、 金融取引の対象が単純取引であっても複合取 引であって、 従来の紐付け管理におけるような条件分岐を一切導入する ことなく統合リスク管理のための諸演算を実行できる。 すなわち、 本実 施の形態は、 オブジェク ト指向概念における多態性が持つ高演算効率を 最大限反映させたクラス構造を有する。
3 仮想取引の優位性
仮想取引管理方式の従来技術に対する優位性は、 以下の 3点である。
1. 3. L プログラム構造の単純化
1. 3. 2 複合取引に対する演算の高速化
1. 3. 3 データ圧縮 以下に、 上記各優位性について、 順次説明する。
1. 3. 1 プログラム構造の単純化
本実施の形態では、 対象となる取引の種類は問わずかつその構成要素 が単一か複合かを問わずに、 全ての取引を例外なく 1つの TVirtualContr actインスタンスによって表現することができる。 このため、 アブリケ一 シヨ ン · プログラマは、 取引種や構成を意識することなく、 ブログラミ ングを行うことができる。
1. 3. 2 複合取引に対する演算の高速化
システムの構築手段としてォブジュク ト指向概念を導入するかしない かに関わらず、 仮想取引管理方式を導入しない場合には、 複合取引に対 する諸演算のために、 個別取引実体に対する演算の後、 何らかの方法に よって実現される個別取引実体間の関連付けに基づいて検索 ·集計を行 う手続きが必要となる。 これに対して、 仮想取引管理方式では、 上記関 連付けに相当する部分をリ ンク リ ス 卜によって実現しているため、 上記 手続を、 リンクリス 卜に登録されている各ポインタをシーケンシャルに アクセスする手続きによって代替できる。
従って、 対象となる複合取引の構成要素が多くなるほど、 すなわちそ
の複合取引が複雑になるほど、 本実施の形態の演算性能と従来技術の演 算性能との差は大きくなることが期待できる。
1. 3. 3 データ圧縮
仮想取引管理方式は、 メモリあるいはデータベース上の取引属性データ のサイズを圧縮する機能をも提供する。 以下、 単純化した事例によって、 この機能を実現する手段について説明する。
金利スワ ップを大量に取り扱う金融機関において、 日常的に発生しう るケ一スとして、 図 9に示されるような 2つの金利スヮッブ · オブジェ ク トを生成する場合を想定する- なお、 実際の金利スワ ップ契約を識別 するためには、 よ り詳細な属性情報が必要であるが、 ここでは仮想取引 のデータ圧縮効果を説明するのに必要な属性のみ設定されている。
これら 2つの契約における相違点は、 契約先と想定元本の属性内容で ある。 なお、 便宜上、 1つ目の金利スワップを InterestRateSwapOOl 、 2つ目の金利スワップを InterestRateSwap002 と命名しておく。
これら 2つのオフ"ジェク 卜の生成イメージを図 1 0に示す = この図は、 2つの TVirtualContractィンスタンスの各々力、 ame, Counterparty, otio nalConvFactorという 3つの属性データと、 TCFSwap インスタンス Intere stRateSwapへの参照を 1つ保持しているリ ンク リ ス ト (LinkList) とを 有していることを示す。 ここで、 TVirtualContractインスタンス Interes tRateSwap002 のリ ンク リ ス トに保持される InterestRateSwapインスタン スへの参照ア ドレス (SameAddress と表記されている部分) がデータ圧 縮の鍵となる。 ここには、 TVirtualContractインスタンス InterestRateS wap002 のリ ンク リ ス 卜に保持される InterestRateSwapインスタンスへの 参照ァドレスと同一のァドレスが保持されることにより、 TCFSwap ィン
スタンス InterestRateSwapの共有化が実現され、 データ圧縮が実現され ただし、 TVirtualContractインスタンス InterestRateS卿 002 のリ ン ク リ ス 卜に保持される上述の参照ァ ドレスをこのまま利用すると、 Inter estRateSwap002 インスタンスの想定元本力';、 InterestRateSwapOO 1 イン スタンスの想定元本と同じ 1 0億円になってしまう。 このため本実施の 形態では、 各 TVirtualContractク ラスには、 基準となる想定元本 (ここ では InterestRateSwapOOl インスタンスの想定元本) を各インスタンス の想定元本に変換するための变換係数 otionalConvFactorが定義される。 すなわち、 InterestRateSwapOOl インスタンスには変換係数 NotionalCon vFactorとして値 1が保持され、 InterestRateSwap002 インスタンスには 変換係数 NotionalConvFactorとして値 2が保持される。
以上説明した事例は、 契約期間、 利払い日構造、 および約定レートが 同一で、 契約先と想定元本が異なる場合においてのみデータ圧縮効果が 得られる事例であるが、 本実施の形態による仮想取引管理方式では、 要 求されるデータ圧縮効果に^;:た璣能拡張も可能である。 例えば、 先の 事例において、 2つの契約間で約定レートも異なる場合には、 図 1 0に 示される TVirtualContractクラスに、 約定レー 卜の変換係数を保持する 属性を定義すればよい。 同様にして、 変換係数あるいは関数によって再 現可能な属性を増やすことにより、 高いデータ圧縮効果を得ることが可 能である。
本実施の形態の仮想取引管理方式によるデータ圧縮は、 ハードウエア • リ ソースの節減にのみ貢献する ものではなく、 演算の高速化作用を合 わせ持つ。
例えば、 図 9の事例に示される 2件の金利スワップの金利感応度が計
0_
測される場合には、 金利スワップを構成する各利払い日ごとに発生する キャッシュ ■ フロー要素の現在価値を更新する手続きが必要となる: こ の場合に、 図 1 ◦に示される手法では、 この更新手続きが、 InterestRat eSwapOOl インスタンスに対してのみ実行さォ InterestRateSwap002 ィ ンスタンスについては、 上記更新手続きで得られた値に変換係数 N 0110 n a lConvFactorを乗算することによってその更新手続きが完了する。 一般的 にデータ圧縮は、 アプリケーショ ンの動作速度に対してネガティブ ' フ ァクタとなるが、 本実施の形態の仮想取引管理方式ではポジティブ · フ ァクタとなることが特徴である。
1. 4 RD BMSZRD Bによる仮想取引管理方式の実現手段
オブジェク ト指向概念に基づいて実装されたプログラムにおいては、 メモリ上に生成されたィ ンスタンスの永続保持には OOD BMS (ォブ ジェク トオリェンテッ ドデータべ一スマネージメントシステム) を利用 するのが自然であるが、 導入コス ト、 既存資産の活用、 安定稼働実績等 を考慮して R D BMS (リ レーショナルデータベースマネ一ジメン トシ ステム) を採用する場合も多い。 ここでは、 インスタンスの永続保持に RD BMSを用いる場合の仮想取引管理方式の実現手段を例示する。 仮想取引を R D BMSで管理するには、 RDB上に、 少なく とも以下 の 3つのインスタンスまたはリ ス トを格納するための 3つのテーブルが 必要となる。
• TVirtualContractィンスタンス
. TContract インスタンス
• TVirtualContractィンスタンス内のリ ンク リス ト
これらのテ一ブルの管理は、 R D B M Sが管理する R D B (リ レーシ ョナルデータベース) 上で一般的に利用される第三正規化を適用するこ とによって、 図 1 1に示されるように容易に実現できる。 すなわち、 外 部キ一のみで構成される中間テーブル LinkListを導入することにより、 T V'irtua lContractィンスタンスのコンテナに格納される情報を記録するこ とが可能になる。
図 1 2は、 図 5の R D B M Sモジュールによって管理さォ 図 5の R D Bモジュールに記憶される、 TV irtualContractィンスタンスを格納す る VIRTじ ALDEAL テーブル、 TContract インスタンスを格納する INDIVDEAL テ一ブノレと DEAL— KINDテーブル、 および TVirtualContrac tィンスタンス 内のリ ンク リス トを格納するための LINKLISTテーブルの各レコー ドのデ ータ構造図である。 なお、 図 5に示される R D Bモジュール上の TCFCHAI Nテーブル、 TCF テーブル、 および各 OPTIONテーブルには、 TContract ク ラスから継承される TCFSwap クラスのインスタンス、 そのインスタンス にリ ンクする TCF クラスのインスタンス、 および TContrac t クラスから 糸 ¾承される TOpt ion クラスのインスタンスが格納される力;、 これらにつ いては後述する。
VIRTUALDEAL テーブルは、 TVirtualContractインスタンスを一意に識 別するための各仮想取引インスタンス識別コード VIRTUAL— ID (図 1 1 の Virtual lD に対応する) が付与された各レコードに、 TVirtualContrac tインスタンスの内容を保持する。 図 1 2に示されるその他のフィ一ルド 名は、 ユーザによる管理の便宜のために設けられている。
INDIVDEAL テーブルの各レコードは、 TContract インスタンスを一意 に識別するための実体取引インスタンス識別コード INDIV ID (図 1 1
の Contrac t IDに対応) と、 その TCon trac t インスタンスにっきユーザが 自由に命名することのできる取引種名 ΚΙ·\Ό (図 1 1の Contract IDごとの- V ameに対応) を保持する。
DEAL— K INDテ一ブルの各レコードは、 取引種名 KINDと、 それに対応す るクラス . ライブラリ内のクラス種別 (TCFSwap クラスまたは TOpt ion クラス) を識別するためのクラス識別コード TYPEを保持する。
LINKLISTテーブルの各レコードは、 仮想取引ィンスタンス識別コード VIRTUAL— IDと実 ί本取引ィンスタンス識別コード INDIV_IDとを保持する ことによって、 VIRTUALDEAL テ一ブルが ί呆持するレコードと、 I HVDEAL テーブル · TCFCHAINテーブル/ TCF テ一ブル ·各 OPTIONテーブルのそれ ぞれ対応するレコードとを関連付ける。 この場合、 TContract クラスか ら ϋ承される各 TCFSwap クラスのインスタンスとそのインスタンスにリ ンクする各 TCF インスタンス、 および TContract クラスから継承される 各 TOpt ion クラスのインスタンスの各実 ί本情報は、 上述の INDIV— IDを 介して、 後述する TCFSwap テーブルと TCF テーブル、 および各 OPTIONテ 一ブルに保持される。
上述のテーブル構成により、 LINKLISTテーブルを介して、 INDIVDEAL テーブル上の実体取引インスタンス識別コード INDIV_IDで識別される 1つの TContract インスタンス (TCFSwap/TOption インスタンス) を、 V IRTUALDEAL テーブル上の複数の TVirtualContractインスタンスに関連付 けることが可能となり、 図 9および図 1 0で説明したデータ圧縮が可能 となる。
なお、 前述したように、 データベース管理システムとして O O D B M Sを採用する場合には、 図 5および図 1 2に示されるようなテーブル構 成を採用する必要はなく、 図 5および図 8に示されるクラス構造を直接
O O D Bに格納する二とが可能となる。
図 5および図 1 2に示される R D Bモジュールに登録されている 1つ の仮想取引に対する時価評価演算は、 以下のようにして実行される。 ステップ 1 : 図 5の R D B M Sモジュールが管理するデータアクセスメ ソッドの 1つである BookOut メソッ ドが起動されることにより、 VIRTUAL DEAL テーブルから指定された識別 IDを含むレコー ドが抽出され、 そのレ コ一 ドから仮想取引ィンスタンス識別コード VIRTUALDEAL. VIRTUAL— ID が取得される。 ステップ 2 :し INKLISTテーブルから、 上述の仮想取引インスタンス識別 コードを含むレコードが抽出されて、 そのレコードから実体取引ィンス タンス識別コード UXKLIST. INDIV— IDが取得される。 1つの仮想取引ィ ンスタンス識別コ一ドを含むレコ一ドは、 複数レコードが存在し得る。 この場合には、 複数の LINKLIST. INDIV— IDコードが取得される。 次に、 I DIVDEAL テーブルから、 各実体取引インスタンス識別コードを各レコ ―ドが抽出され、 その各レコードから各取引種名 INDIVDEAL KINDが取得 される。 ステップ 3 : DEAL— KINDテーブルから、 上記各取引種名に対応する各レ コードが抽出され、 その各レコ一ドカ、ら各クラス識別コード DEAL— KIND. TYPE が取得される = ステップ 4 : ステップ 2で LINKLISTテーブルから取得された各実体取引 インスタンス識別コード LINKLIST. INDIV IDを含む各レコー ドが、 TCFC
HAINテーブルと TCF テーブル、 または各 OPTION'テーブルから抽出され、 各レコードに含まれる各実体情報と、 ステップ 3で取得された各クラス 識別コードに基づきクラス · ライブラリから取出された各クラス定義情 報と力 ら、 メモリ上に、 各 TCFSwap インスタンスと各 TCF インスタンス、 または各 TOpt ion インスタンスが生成される。 . ステップ 5 : ステップ 1で抽出された VIRTUALDEAL テ一ブル上のレコー ドの内容に基づいて、 メモリ上に、 TVirtualContractインスタンスが生 成され、 そのインスタンス内のリンクリス トに、 上記ステップ 4で生成 された各 TCFSwap インスタンスまたは各 TOpt ion インスタンスへの参照 ァドレスが登録される。 ステップ 6 : 上述のリ ンク リ ス トから参照される各 TCFSwap インスタン スまたは TOpt ion インスタンスの仮想メ ソッ ド GetNPV ()が実行される。 このよ うにして、 本実施の形態では、 複合取引がどのような取引実体 によって構成されていよう とも、 1つの仮想メソッド GetNPV ()を実行す るだけで、 その複合取引に対する時価評価演算が実現される。
なお、 O O D B M Sが採用される場合は、 上記ステップ 1〜 5の操作 は必要なく、 上記ステップ 6を直接実行することができる。
2 . キャッシュ ' フロ一系取引実体を実現する TCFSwap コンテナ ' クラ ス
次に、 本発明の第 2の特徴である TCFSwap コンテナ ' クラスの枠組み について説明する。
2. 1 TCFSwap コンテナ ' クラスの特徴
図 8で説明したように、 本実施の形態では、 TContract クラスを継承 するキヤッシュ ■ フロー系取引実体に対応するクラスと して、 TCFSwap コンテナ ' クラスが定義される。
TCFSwap コンテ十 ' クラスの最大の特徴は、 為替、 現金貸借、 債権、 株式、 商品、 金利 ■通貨スヮップ、 ェクイティ ' スワップ、 コモディテ ィ ' スワップをはじめとする 「交換」 をベースとする多様な金融取引が、 このクラス 1つで実現されることである。 従来技術では、 これらの取引 に対して、 それぞれ対応するクラスが定義されるのが一般的であり、 実 装されている取引実体クラスに該当しない取引が新たに取り扱い対象と される場合には、 そのためのクラスを追加実装する (新たに開発する) 必要があった。 これに対して本実施の形態では、 キャッシュ ' フロー系 取引実体が、 受けサイ ド (以下、 レシーブサイ ドと呼ぶ) および払いサ ィ ド (以下、 ペイサイ ドと呼ぶ) のそれぞれにおける単位取引期間ごと のキャッシュ . フロー要素 (以下、 CashFlowLet と呼ぶ) の集合として 管理され、 各 CashFlowLet に対応する TCF クラスをとりまとめる TCFSwap コンテナ ■ クラスが用意される。 そして、 TCFSwap コンテナ ' クラスへ の各 TCF クラスの格納様式が多様化されることによって、 各種の 「交換 ベースのキャッシュ ' フロー系取引」 を実現することが可能となる。
2. 2 TCFSwap コンテナ ' クラスの構造
TCFSwa は、 CashFlowLet の集合を格納するコンテナ ■ クラスで、 そ のインスタンスのィメ一ジは図 1 3に示される。
図中、 RecCashFlowsと PayCashFlowsという名前の 2つの TCFChainクラ
スのインスタンスは、 それぞれまず、 CashFlowLet である TCF クラスの インスタンスの集合を格納するリンク構造への参照であるリ ンク リ ス ト を保持する。 RecCashFlowsインスタンスは、 受け側 (以下、 レシーブサ ィ ドと呼ぶ) の CashFlowLet 群である TCF インスタンス群に対するリ ン ク リ ス トを保持し、 PayCashFlowsインスタンスは、 払い側 (以下、 ペイ サイ ドと呼ぶ) の CashFlowLet 群である TCF インスタンス群に対するリ ンク リス トを保持する。
また上記 2つの TCFChainクラスのインスタンスは、 それぞれ、 Pricing Engine という名前の TPwrGadgetクラスからそれぞれ継承される、 DiscCu rve という名前の TCntYieldCurveクラスのインスタンスと、 PriceCurve という名前の TCntPriceCurveクラスのィンスタンスへの参照を保持する。 TPwrGadgetクラスは、 CashFlowLet ごとの時価評価演算を実現するため の金融特性の演算機能を提供するクラスであり、 ィール ド ' カーブ (デ イスカウン ト ' カーブ)、 ブライス ' カーブ (価格カーブ)、 ボラティ リ ティ · カーブ、 通貨■ 商品 ·証券等の取引単位、 および休日除外対象都 市に関する情報を任意に定義 · 生成■保持することができる。 図 1 3に は、 これらのうちィ一ルド . カーブとプライス · カーブのみを示してあ る。 すなわち、 TCntYieldCurveクラスは、 ィールド ' カーブ (デイス力 ゥント · カーブ) を定義するためのクラスであり、 そのクラスに実装さ れている GetFactor メソッ ドにより、 要求日付におけるディスカウント ' ファクターを取得することができる。 TCntPriceCurveクラスは、 プラ イス ■ カーブを定義するためのクラスであり、 そのクラスに実装されて いる GetFactor メソッ ドにより、 要求日付における価格指数を取得する ことができる。 なお、 TPwrGadgetクラスは、 仮想カーブ機能も有するが、 これについては後述する。
22
図 1 4は、 TCFChainクラスにクラスメンバ群として保持される属性群 の詳細を示す図である。 図 1 4において、 CFL i st属性は図 1 3の TCF ィ ンスタンス (CashFlowLet ) のリ ンク構造へのリ ンク リス トに対応し、 D iscCurve 属性は図 1 3の Di scCurve (TCntYieldCurve) インスタンスへ の参照に対応し、 PriceCurve属性は図 1 3の PriceCurve (TCntPr iceCurv e) インスタンスへの参照に対応する。 図 1 4に示されるその他の属性群 は、 レシーブサイ ドまたはペイサイ ドのそれぞれにおけるキャッシュ · フローの全体的な特性を決定するためのものである。
これらの属性群は、 後述するユーザ■ インタフヱ一スを介して設定さ れる。
これらの属性群は、 主と して、 金利 .通貨スワップの取引属性に類似 していることが解るはずである。 これは、 為替、 現金貸借、 債券、 株式、 商品等のスポッ ト、 フォヮ一ド取引もスヮッブの一形態と考えているこ とに他ならず、 実際殆どのキャッシュ · フローの交換に基づく取引は、 τ CF インスタンスの集合様式と、 このインスタンスの状態を決定する属性 で表現できるのである。
図 1 5は、 図 5の R D Bモジュールに格納される、 TCFChainクラスに 対応する TCFCHAINテーブルの各レコードのデ一タ構造を示す図である。 図 1 4に示されるクラスメンバ名と図 1 5に示されるフィールド名とで、 大文字と小文字の区別を除いて同じスペルを有するものが同じ情報を保 持する。 ただし、 図 1 5で、 UNITftCODE フィールドは図 1 4の Appl iedUn it メンバに対応する。 また、 図 1 5で、 INDIV— IDフィールドには、 実 体取引インスタンス識別コ一ドが格納され、 これにより図 1 2に示され る L INKL I STテーブルまたは I ND I VDEAL テーブルと TCFCHA INテ一ブルとが リンクされ、 前述の 1 . 4項での時価評価演算のステップ 4の処理が実
g3
現される。 また、 図 1 5で、 TCFCHAIN_IDフィールドには、 TCFChainィ ンスタンスの識別コー ドが格納される。 また、 図 1 5で、 SIDE— IDフィ —ルドには、 レシーブサイ ド Zべィサイ ドの区分コードが格納される。 さらに、 CashFiowLet リ ンク リ ス トを示す図 1 4に示される CFList属性 は、 メモリ上への TCFChai nインスタンスの展開時に、 INDI V— IDフィ一 ルドおよび S IDE— IDフィール ドの値に基づいて動的に生成されるもので あるため、 その属性に対応するフィールドは図 1 5の TCFCHAINテーブル には存在しない。
次に図 1 6は、 図 1 3中の右側の TCF クラスの枠内に示されるクラス メ ンバ群と して保持される属性群の詳細を示す図であって、 単位取引期 間ごとのキャ ッシュ · フロー要素についての金利、 収益率、 価格の各指 数計算を実行するために必要十分なものが定義されている。 また、 図 1 7は、 図 5の R D Bモジュールに格納される TCF ク ラスに対応する TCF テ一ブルの各レコー ドのデータ構造を示す図である。 図 1 6に示される 属性名と図 1 7に示されるフィールド名とで、 大文字と小文字の区別を 除いて同じスペルを有するものが同じ情報を保持する。 また、 図 1 7で、 TCF— IDフィール ドには、 TCF インスタンスの識別コー ドが格納される。 さらに、 図 1 7で、 INDI V— IDフィールドには実体取引インスタンス識 別コードが格納されるとともに、 TCFCHAIN— IDフィ一ルドにはその TCF インスタンスがリ ンクする TCFChai nインスタンスのサイ ド (レシ一ブサ イ ド/ペイサイ ド) の区分コードが格納される。 これにより図 1 2に示 される L I NKU STテーブルまたは I ND I VDEAL テ一ブルと TCFCHA I Nテーブル とがリンクされ、 前述した 1 . 4項での時価評価演算のステップ 4の処 理が実現される。 また、 図 1 6に示される TotalCFttPV属性と DF属性は、 メモリ上への TCF インスタンスの展開時に動的に生成されるものである
ため、 それらの属性に対応するフィールドは図 1 7の TCF テーブルには 存在しない。
ここで、 図 1 6において、 Ot iona lAmnt、 onlndexCFttFV 、 TotalCFSF V、 および TotalCFttPVは、 必ずしも金額ではなく、 場合によっては株式、 商品の取引分量を保持することもできる。
なお、 TCF クラスの仕様と しては、 必ずしも図 1 3および図 1 6に示 されるクラス構造に限定されるものではない。 例えば、 TCF クラスを基 底クラスとし、 これを継承して金利、 収益率、 価格の各指数計算に対応 するクラスを用意する方法も有り得る。 つまり、 そのインスタンス集合 で多様な金融取引を表現できるのであればよい。
2 . 3 TCFSwap/TCFChait 'TCFィンスタンスの生成
TCFSwap/TCFCha i n/TCFィンスタンスの生成手順は、 定型取引の生成手 順と非定型取引の生成手順の 2種類に分類される。
定型取引の生成手順を、 図 1 8の説明図および図 1 9の処理フローに 基づいて説明する。
ユーザが、 後述するユーザ ' イ ンタフェースを介して、 キャッシュ ' フロー系取引の生成を指示することによって、 図 1 8に示される TCFSwap インスタンスがまず生成され、 続いて、 その TCFSwap インスタンスのメ ソッ ドによって、 図 1 8に示される、 RecCashFlowsおよび PayCashFlows の 2つの TCFChainインスタンスが生成され、 さらに、 各 TCFChainインス タンスのコンス トラクタによって、 各 TCFChainインスタンス内に、 TCF インスタンス (CashFlowLet ) のリンク構造へのリンクリストとして用 いられる図 1 8に示される CFListという名前の TLi st インスタンスが生 成される。
次に、 ユーザは、 後述するユーザ ' インタフェースを介して、 TCFSwap インスタンスに保持される 2つの TCFCha i nィ ンスタンスに、 図 1 4に示 される各属性値のうち必要なものを与える。
その後、 ュ一ザは、 後述するユーザ ' インタフェースを介して、 Bu i ld CF メソッ ドの実行命令を発行する。 この結果、 図 1 8に示されるように、 RecCashFlowsお'よび' PayCashFlowsの 2つの TCFCha ィンスタンスごとに、 必要に応じて 1つ以上の TCF インスタンスが生成され、 上記 2つの TCFCh ainインスタンスの何れかに属するリ ンク リ ス ト CFU sUこリ ンク(Add (CF) )される c
図 1 9は、 TCFSwap インスタンスを介して RecCashFl owsおよび PayCash Flowsの各 TCFCha i nインスタンスに対して発行される Bui ldCF メ ソッドの 処理フローを示す図である。
まず、 ステップ 1の Generate Dates処理では、 受払日、 計算期間開始 日 Z終了日等、 取引に必要な日付群を生成する手続きが実行される。 金 融取引に必要な日付群の生成アルゴリズムは、 周知のものであるためそ のアルゴリ ズムの詳細については省略する。 その概要としては、 ユーザ によって設定された TCFChainィンスタンスの PaymCenters, FixCenters, ED ate, TDate, FDate, BDConv, EndEnd, Ad jTDate, CFFrq, ResetFrq, FixingOf fse t, Fi x ingBas i s,および Pay l n の各属性値 (図 1 4 ) に基づいて、 各キヤ ッシュ ' フロー要素の期間情報が算出される。
次に、 ステップ 2では、 図 1 4に示される CF Freq 属性値として 0 より大きい値が設定されているか否かが判定される。 ユーザは、 後述す るユーザ ' インタフェースにおいて、 各種スヮップなどのキヤッシュ · フロー系の取引を作成するときには受払頻度として 0より大きい値を設 定し、 その他の為替等の単純売買の取引を作成するときには受払頻度と
して 0を設定する。
ステツプ 2で CF Freq 属性値が 0より大きいと判定された場合には、 ステップ 3〜 6によって初回と最終回を除く各 CashFlowLet に対応する 各 TCF インスタンスが生成される。
まず、 ステップ 3では、 ステップ 1の Generate Dates処理によって生 成された期間情報と、 ユーザによって設定された受払頻度情報 (CF Freq 属性) とに基づいて受払回数 (初回と最終回を除く CashFlowLet の要素 数) が算出され、 それが TCFChainクラ ス内のメンバ変数 CFCount に設定 さ才 Lる。
次に、 ステップ 5で上記メ ンバ変数 CFCount の値が 1ずつ減算されな がら、 ステップ 6でその値が 0になったと判定されるまで、 ステップ 4 で、 TCFChainィンスタンスに設定されている属性値と算出される各指数 値とに基づいて、 1つ以上の TCF インスタンスが生成される- 具体的にはまず、 ユーザにより設定された現サイ ド (レシーブサイ ド またはペイサイ ド) の TCFChainインスタンスの Floatlndex, NotionaiAmnt の各属性 fi (図 1 4) 力 新たに生成された TCF インスタンスの Floatl ndex, otionalAmnt の各属性値 (図 1 6) として設定される。
次に、 ステップ 1の Generate Dates処理によって生成された各キヤッ シュ ■ フロー要素の期間情報と、 ステップ 5で順次更新される TCFChain インスタンスのメ ンバ変数 CFCount の値に基づき、 新たに生成された TCF Λ ンスタンスにメ才して、 DateFrom, DateTo, PreFixing, Fixing, Days, Year s,および PaymDateの各属性値 (図 1 6 ) が算出されて設定される。
次に、 ユーザにより設定された現サイ ド (レシーブサイ ドまたはペイ サイ ド) の TCFChainインスタンスの IndexVal属性値 (図 1 4) に基づい て、 新たに生成された TCF インスタンスの IntRate または Marginの各属
性値 (図 1 6 ) が設定される。 また、 Wei ght属性のデフォルト値は 1で あり、 この値は後述するマジック ■ シートを用いて個別に変更できる。 新たに生成された TCF インスタンスの属性値 NonlndexCF—FV (図 1 6 ) には 0が設定される。
また、 新たに生成された TCF インスタンスに設定された属性値 PaymDat eを引数として、 ユーザにより設定された TCFChainインスタンスの属性値 Di scCurve (図 1 4 ) に対応する Di scCurve インスタンスの GetFac tor メ ソッ ドが実行されることにより、 新たに生成された TCF インスタンス の属性値 DFが算出されて設定される。
新たに生成された TCF インスタンスの PrePrice, Price, Return, IndexC F— FV, MarginCF— FV, TotalCF— FV, TotalCF— PVの各属性値は、 後述する TCF ィンスタンスの更新手順によって計算される。
新たに生成された TCF イ ンスタンスの IJpdateCFメソッ ドは、 後述する T CF インスタンスの更新手順を実行するためのメ ソッドである。
ステップ 4において実行される上述の TCF インスタンスの生成動作が、 ステップ 4〜 6のループ処理によって繰り返し実行されることによって、 現サイ ド (レシ一ブサイ ドまたはペイサイ ド) の TCFCha inインスタンス にリンクすべき全ての TCF インスタンスが生成される。
上記ループ処理の結果、 ステップ 6でメンバ変数 CFCount の値が 0に なったと判定された場合、 または前述のステップ 2でユーザによって設 定された受払頻度に対応する属性値 CF Freq が 0であると判定された場 合には、 ステップ 7で、 ユーザによって TCFChainインスタンスの属性値 F inPrincAmntが設定されているか否か (N— ul 1であるか否か) が判定される。 ステップ 7の判定が真 (True) である場合には、 ステップ 8で最終回 の TCF インスタンスが生成される。 この生成方法は、 ステップ 4の場合
と概ね同じであるが、 ユーザにより設定された TCFChai nィンスタンスの 属性値 Fi nPrincAmnt (図 1 4 ) 力;、 新たに生成された TCF インスタンス の属性値 NonlndexCF— FV (図 1 6 ) として設定される処理が追加される: ステップ 7の判定が偽 (Fal se )である場合には、 ステップ 9で、 ユー ザによつて TCFChainィンスタンスの属性値 IniPrincAmntが設定されてい るか否か (Nul lであるか否か) が判定される。
ステップ 9の判定が偽 (Fa l se)である場合は、 特には図示しないが、 エラーとなる。
ステツフ · 9の判定が真 (True ; である場合には、 ステップ 1 0で初回 の TCF インスタンスが生成される: この生成方法は、 ステップ 4の場合 と概ね同じであるが、 ユーザにより設定された TCFCha i nィン ス タ ン スの 属性値 I n i PrincA随 t (図 1 4 ) が、 新た:;:生成された TCF イ ン スタ ンス の属性値 \onIndexCF— FV (図 1 6 ) と して設定される処理が追加される,. ステ 'ソ ブ 8またはステップ 1 0の処理の後、 ステップ 1 1 で、 現サイ ド (レシーブサイ ドまたはべィサイ ド) の TCFChainインスタンスでし: pdat eCFs メ ソッ ドが実行される このメ ソッ ドが実行されると、 その TCFCha i nィンスタンスにリンク している全ての TCF ィンスタンスに対して、 時 価評価演算を実行させるための後述するし pdateCFメソッドが発行される。 多くの銀行間取引は定型化されているため、 キャッシュ · フロー系取 引に関してはその種別によらずに、 ユーザは後述する共通のユーザ ' ィ ンタフェースを介して必要なバラメータを設定するだけで、 上述した一 連の処理によって、 その取引オブジェク トを簡単に生成することが可能 となる。
一方、 ユーザは、 非定型取引を生成したい場合には、 まず TCFCha i nィ ンスタンスを上述の定型取引の場合と同様の手順で生成した後に、 後述
するマジック · シ一卜と呼ばれるユーザ · インタフェースを使って、 目 的とする取引の性質を反映させるように TCFインスタンス群の属性を簡単 に変更し、 または TCFィンスタンスを個別生成して TCFChainィンスタンス に追加することができる: この場合、 変更または追加後には、 ユーザは 明示的に前述したし pdateCFs メソッ ドの実行を指示することになる。
このような非定型取引の代表例は、 想定元本の増減額方式に規則性の ないァモチ /アキュムレ一シヨン ' スワップである。 ただし、 この場合 も利払日、 計算期間等の構成には規則性が存在する場合が殆どであるた め、 ユーザは、 Bu i l dCFメ ソ ッ ドを発行後、 規則に該当しなレ、 TCFインス タンスの属性のみを修正することで足りるはずである。 従って、 TCFイン スタンスを個別生成するケースは、 極めて不規則なキヤッシュ ' フロー 構成の取引に限定される。
以上示したように、 TCFCha クラスは、 実際の金融取引で利用頻度の 高い定型取引のためのキヤッシュ · フロー集合を自動生成するためのテ ンプレートとしても機能することがわかる。 また、 TCFChai nクラスの役 割は、 あくまで TCFインスタンス集合を一括生成することであり、 ここに 保持される属性値がリスク計測の諸演算に利用されることはない。 そし て、 TCFCha i nクラスはキャ ッシュ ' フローの交換に基づく多様な取引の 差異を吸収するためのクラスであるということができる。
3 . TCF インスタンスの更新メソッド:
TCF クラスに実装される Upda teメソッドは、 そのクラスが対応する単 位取引期間における時価評価演算を実行する機能である。 このメソッド は、 例えばユーザが後述するユーザ · ィンタフェースを介して任意のパ ラメ一タを変更し、 リ スク管理計算を実行し直す必要が生じたときに、 T
VirtualContractィンスタンスまたは TCFSwap インスタンスにおいて GetN PV 0メ ソッ ドの実行が指示されるタイミングにおいて、 TCFCha i nクラス の UpdateCFs メソッ ドを介して起動される。 すなわち、 本実施の形態で は、 単位取引期間ごとの時価評価演算は、 各単位取引期間に対応する TCF クラスの Updateメソッドが独立して実行することになる。
この Updateメ ソッ ドは、 単位取引期間における、 金利、 収益率、 また は価格の 3種類の指数のいずれかに基づいて計算される将来価値指数と、 金利、 収益率、 および価格のいずれの指数にも依存しない評価値とに基 づいて時価評価演算を実行し、 その演算結果に対してさらに所定の割引 率を乗じて得られる現在価値をその時価評価演算結果とする。
このメ ソッ ドの特徴は、 従来取引種ごとに規定されていたキャッシュ
• フローの更新アルゴリ ズムが、 3種類の指数 「金利/収益率/価格」 だけで表現されることにある。 いずれの指数が指定された場合も、 最終 的には DateFrom (計算期間開始日) と Dat eTo (計算期間終了日) の時価 比率でキャッシュ · フロ一を決定できる c
また、 ここで金融取引対象は、 必ずしも通貨である必要はなく、 為替、 債権、 株式、 商品などであってもよい.: この場合には、 上記 Updateメ ソ ッ ドは、 それに対応する単位取引期間において、 金融取引対象の単位 ( 例えば株数など) のもとでの、 金利、 収益率、 または価格に準ずる時価 比率を演算することにより、 将来価値指数を算出することができる。 す なわち本実施の形態では、 どのような単位を有する金融取引対象であつ ても、 「交換ベースのキャッシュ ' フロー系取引」 を統一的に极ぇるので ある。
図 2 0は、 1つの TCF クラス (以下、 現 TCF クラスと呼ぶ) の Update メソッ ドの処理フローである。
まずステップ 1では、 後述するユーザ · ィンタフェースを介してユー ザによって指定された現 TCF クラスが属するサイ ドの TCFChainクラスの I ndexType 属性値 (図 1 4参照) が、 金利 (IntRate )、 収益率 (Return )、 価格 (Price ) のいずれであるかが判定される。
IndexType 属性値が金利 (IntRate ) であると判定された場合には、 まずステップ 2で、 現 TCF クラスの前期価格指数属性値 PrePrice (図 1 6参照) として 1がセッ トされる。
次に、 ステップ 3では、 後述するユーザ ' インタフェースを介してュ 一ザにより、 現 TCF クラスが属するサイ ドの TCFChainクラスの Floatlnde X属性値 (図 1 4参照) が設定されているか否かが判定される。
Floatlndex属性値が設定されていない場合は、 ステップ 4で、 現 TCF クラスにおいて、 IntRate 属性値に Years 属性値が乗算され、 その乗算 結果が現 TCF クラスの当期価格指数属性値 Price とされる。 ここで、 現 T CF クラスの IntRate 属性値は、 現 TCF クラスが属するサイ ドの TCFChain クラスの IndexVal属性値 (図 1 4参照) からコピーされたものである この IndexV'al属性 fiは、 後述するユーザ · ィンタフェースを介してユー ザにより設定される。 また、 Years 属性値は、 前述の図 1 9のステップ 4において現 TCF クラスに対して設定された、 現 TCF クラスに対応する 単位取引期間 (計算期間) の年数表示を示すものである。 この Years 属 性値は、 後述するユーザ ' インタフェースを介してユーザにより設定さ れた、 現 TCF クラスが属するサイ ドの TCFChainクラスの PaymCenters, Fix Centers, EDate, TDate, FDate, BDConv, EndEnd, AdjTDate, CFFrq, ResetFrq, F ixingOffset, FixingBasis,および Payln の各属性ィ直 (図 1 4 ) に基づい て、 前述した図 1 9のステップ 1の Generate Dates処理において計算さ れる。
このようにしてユーザが固定金利を指定した場合は、 ュ一ザが指定し た固定金利値 IntRate に計算期間年数 Ye ars を乗じて得られる値が現 TCF クラスの当期価格指数 Pri ce とされる。 そしてステップ 1 0で、 現 TCF クラスの当期価格指数属性値 Pr i ce を現 TCF クラスの前期価格指数属性 直 PrePriceで除算して得られる値が、 現 TCF クラスにおける時価比率属 性値 Return (図 1 6参照) と して得られる。 この場合、 現 TCF クラスの 前期価格指数 pr epr i c eにはステップ 2で 1がセッ トされているため、 結 局単純に、 ユーザが指定した固定金利値 I ntRate に現 TCF クラスの計算 期間年数 Years を乗じて得られる現 TCF クラスの当期価格指数 Price 力 そのまま現 TCF クラスの時価比率属性値 Re turnとされることになる。
一方、 ステップ 3で、 ユーザにより Float lndex属性値が設定されてい ると判定された場合には、 ステップ 5で、 現 TCF クラスの計算期間終了 日 DateToにおけるブライス ' カーブの値を、 現 TCF クラスの計算期間開 始日 DateFromにおけるブライス ■ カーブの値で除算して得られる値が、 現 TCF クラスの当期価格指数属性値 Pri ce とされる: 各ブライス ' 力一 ブの値は、 計算期間終了日 DateToまたは計算期間終了日 DateToを引数と して、 現 TCF クラスが属するサイ ドの TCFChainクラスが参照している Pri ceCurveインスタンス (図 1 3参照) の GetFactor メ ソッ ドを呼び出すこ とにより、 算出することができる。 プライス ' カーブは、 ユーザが後述 するュ一ザ ' インタフェースを介して定義 '指定することができる。 このようにして、 ユーザが変動金利を指定した場合は、 現 TCF クラス に対応する単位取引期間 (計算期間) におけるユーザが指定したプライ ス · カーブの時価比率が、 現 TCF クラスの当期価格指数 Price とされる。 そしてステップ 1 0で、 現 TCF クラスの当期価格指数属性値 Price を現 T CF クラスの前期価格指数属性値 PrePriceで除算して得られる値が、 現 TC
F クラスにおける時価比率属性 ί直 Returnとして得られる。 この場合、 前 期価格指数 PrePriceにはステップ 2で 1がセッ 卜されているため、 結局、 プライス ■ カーブから上記単位取引期間における時価比率として得られ る現 TCF クラスの当期価格指数 Price 力';、 そのまま現 TCF クラスの時価 比率属性値 Returnとされることになる。
前述したステップ 1で、 ユーザによって指定された IndexType 属性値 が収益率 (Return) であると判定された場合には、 まずステップ 8で、 現 TCF クラスの計算期間開始日 DateFromにおけるプライス · カーブの値 、 現 TCF クラスの前期価格指数属性値 PrePriceの値とされる。 ブライ ス . カーブ値の計算方法は、 前述したステップ 5の場合と同じである: 次に、 ステップ 9で、 現 TCF クラスの計算期間開始日 DateToにおける ブライ ス · カーブの値が、 現 TCF ク ラスの当期価格指数属性値 Price の 値とされる。 プライス ' カーブ値の計算方法は、 前述したステップ 5の 場合と同じである。
その後、 ステップ 1 0で、 現 TCF クラスの当期価格指数属性 ffiPrice を現 TCF クラスの前期価格指数属性値 PrePriceで除算して得られる値が、 現 TCF クラスにおける時価比率属性値 Returnとして得られる。
前述したステップ 1において、 ユーザによって指定された IndexType 属性値が価格 (Price ) であると判定された場合は、 まずステップ 6で、 現 TCF クラスの前期価格指数属性値 PrePriceとして 1がセッ トされる。 次に、 ステップ 7では、 現 TCF クラスの計算期間開始日 DateToにおけ るプライス ■ カーブの値が、 現 TCF クラスの当期価格指数属性値 Price の値とされる。 プライス · カーブ値の計算方法は、 前述したステップ 5 の場合と同じである。
その後、 ステップ 1 0で、 現 TCF クラスの当期価格指数属性値 Price
を現 TCF クラスの前期価格指数属性値 PrePriceで除算して得られる値が、 現 TCF クラスにおける時価比率属性値 Returnと して得られる。 この場合、 前期価格指数 PrePr i ceにはステップ 6で 1がセッ 卜されているため、 結 局、 現 TCF クラスの計算期間終了日 DateToにおけるブライス ' カーブの 値が、 そのまま現 TCF クラスの時価比率属性値 Returnとされることにな る。
以上のよ うにして、 ユーザが金利、 収益率、 価格のどの指数を指定し ても、 最終的には、 現 TCF クラスの単位取引期間における時価比率 Retur nが得られることになる,:
次に、 図 2 0のステップ 1 1においては、 上述のようにして計算され た時価比率 R e t u r nに現 T C F クラスにおける想定元本金額属性値 N 0110 n a 1 A mntを乗じて得られる値が、 現 TCF クラス;こおける指数に基づく受払金額 属性値 IndexCF— FV (図 1 6参照) とされる: 現 TCF クラスにおける想 定元本金額属性値 ot iona lAmntは、 後述するユーザ · インタフェースを 介してユーザによって設定された、 現 TCF クラスが属するサイ ドの TCFCh ainクラスの想定元本額属性値 Xot ionalAmntからコピーされたものである。 続いて、 ステップ 1 2では、 現 TCF クラスにお;ナるマージン値属性値 M arginに現 TCF クラスにおける想定元本金額属性値 Not ionalAtnntを乗じて 得られる値が、 現 TCF クラスにおけるマージンに基づく受払金額属性値 M arginCF— FV (図 1 6参照) とされる。 現 TCF クラスのマージン値属性値 Marginは、 現 TCF クラスが属するサイ ド (レシーブサイ ドまたはペイサ ィ ド) の TCFChainクラスの IndexVal属性値からコピーされたものである。 ここでユーザは、 後述するユーザ · ィンタフェースを介して現 TCF クラ スが属するサイ ドに対し変動金利を指定した場合に、 当該サイドの TCFCh ainクラスの IndexVal属性値としてマージン値を指定できる。
さらに、 ステップ 1 3では、 ステップ 1 1で算出された現 TCF クラス における指数に基づく受払金額属性値 IndexCF— FVに現 TCF クラスの We i ght属性 ί直を乗算して得られる値と、 ステップ 1 2で算出されたマージン に基づく受払金額属性値 MarginCF— FVと、 現 TCF クラスの指数とは独立 した受払金額属性値 Nonl ndexCF— FV (図 1 6参照) とが加算され、 その 加算結果が現 TCF クラスの受払総額属性値 TotalCF— FV (図 1 6参照) と される。 ここで、 現 TCF クラスの We i ght属性のデフォル ト値は 1であ るが、 ユーザは、 後述するュ一ザ ' インタフェースであるマジック · シ 一卜を用いて、 その (直を個別に変更できる- また、 現 TCF クラスの指数 とは独立した受払金額属性値 Non l ndexCF— FVは、 後述するユーザ · ィン タフエースを介してユーザにより指定される、 現 TCF クラスが属するサ ィ ドの TCFChainクラスの初期元本交換額 I n iPr incArantまたは終期元本交 換額 F i nPr i t^Amntのいずれかより コピーされたものである (図 1 9のス テッブ 8または 1 0を参照)。
最後に、 ステップ 1 4においては、 ステップ 1 3で算出された現 TCF クラスの受払総額属性値 To talCF— FVに、 現 TCF クラスのデイ スカウン ト - ファクター属性値 DF (PaymDate)が乗算され、 その乗算結果が現 TCF クラスの受払総額現在価値 TotalCF— PV (図 1 6参照) とされる。 現 TCF クラスのディスカウン ト ' ファクター属性値 DF (PaymDate)は、 現 TCF ク ラスの生成時 (図 1 9のステップ 4, 8 , 1 0参照) に、 現 TCF クラス の受払日属性値 PaymDateを引数と して、 現 TCF クラスが属するサイ ドの T CFChainクラスが参照している DiscCurve インスタンス (図 1 3参照) の GetFac tor メソッ ドを呼び出すことにより、 予め算出されているもので あり、 将来価値と しての受払総額 TotalCF— FVを現在価値に割り引くた めのファクタ一である。
このよ うにして算出された現 TCF クラスの受払総額現在価値 Tota lCF — PVは、 TCFCha inクラスの UpdateCFs メ ソッ ドを介して TVirtualContrac tインスタンスまたは TCFSwap インスタンスにおいて Get PV ()メソッドの 戻りィ直として、 TV'i rtua lContrac tィンスタンスまたは TCFSwap. インスタ ンスに返されることになる。
TVirtualContrac tィンスタンスまたは TCFSwap ィンスタンスの GetNPV ( )メソッ ドでは、 各サイ ド (レシーブサイ ドおよびペイサイ ド) ごと、 す なわち、 各 TCFCha i nクラスごとに、 それぞれに属する TCF クラスから返 された受払総額現在価値 Tota lCF— PVを加算し、 その加算結果を各サイ ドの現在価 ί直 PVと、 さらに、 各サイ ドの現在価 KPVを加算して得られる 総現在価値 NPVとを、 後述するユーザ · インタフニース上に表示する。 以上説明したようにして、 ユーザが後述するユーザ · イ ンタフェース を介して任意のパラメータを変更した場合に、 即座に新たな現在価値を 算出し直すことができ、 これにより効率的なリスク管理が実現される。 キャッシュ · フロー系取引を実現する TCFSwapクラスの構造と生成手順 について説明してきたが、 キャッシュ · フロー系取引のインスタンス生 成の実際を分類して、 以下に説明する。
既に説明した通り、 TCFSwapクラスは、 キャッシュ ' フローを交換する ほとんどの取引を生成できるが、 実際の生成に当たっては対象とする取 引を基本的な性質によって分類する必要がある。
キャッシュ ' フロー系取引は、 その性質により、 以下に示されるよう に分類される。
1)異なる種類の元本交換
ここで 「元本」 は、 TCFChainクラスに対して設定される NonlndexCFil
FV 、 す なわち、 指数に依存しないで決定されるキャッシュ · フロー という意味で用 いている。
2)同じ種類の元本の時間軸上の交換
3)異なる種類の指数により生成されるキャッシュ · フローの交換 4)指数により生成されるキャッシュ · フローと元本の時間軸上の交換 上述の分類を、 市場における代表的な取引に対応させたものが図 2 1 の表である。 表中、 株式 · 商品現先は分類番号 2と 4に現れているが、 これは、 これらの取引がどちらの形態でも表現可能であることによる。 取引に対する認識の仕方によっては、 これら以外にも分類先が変わる場 合もある。 各取引の性質を損なわずに表現できるのであれば、 必ずしも この分類に従う必要はない: また、 取引によっては、 この分類の組合せ として構成されるものもある。 通貨スワップなどは、 これに該当する取 引で、 分類番号 1 と 3の組合せとして表現できる。
4 . オプション系取引を実現する TOptionコンテナ ' クラス
次に、 本発明の第 4の特徴である TOpt i on コンテナ · クラスの枠組み について説明する。 4 . 1 TOption コンテナ · クラスの特徴
キャッシュ · フ口一系取引が、 単純なキヤッシュ · フロ一要素 (CashF lowLet) の集合様式を多様化させることで実在する多くの取引を表現し たのに対して、 ォプション系取引はメソッドを多様化することでこれを 表現する。 これは、 キャッシュ · フロー系取引の価格評価 (時価評価) 、 統一された手法で定義できるのに対して、 オプションでは、 取引種
ごとにその価格評価モデルが異なることに加え、 同一取引種に対しても 異なる評価モデルが存在することが背景となっている。
各価格評価モデルに、 異なる評価メ ソッ ドを実装することは、 抽象ォ プシヨ ン · クラス上に価格評価の仮想メ ソッ ドを用意し、 実際の価格評 価メ ソッ ドは、 これを継承するォプションの実体クラスに実装すること で容易に実現できる。
本実施の形態において実現されるオプション · クラスの際立った特徴 は、 原資産の取り扱いである。 オプショ ンの実体クラスには、 当該ォブ ションの属性に加え、 原資産を定義する属性を用意するのが一般的であ ると考えられる。 この方式では、 ί列えば次の様なオプション · クラスを 用意することになる。
1 )為替用ブラック · ショールズ · モデル ' クラス
2)株式用ブラック ' ショールズ · モデル ' クラス
3)商品用ブラック ' ショールズ · モデル ' クラス つまり、 「原資産屮評価モデル」 で 1つのォブシヨン ' クラスを定義す るわけである。 これに対して、 本実施の形態では、 原資産属性をリ ンク リス 卜への参照として抽象ォブション · クラスに実装する。 すなわち、 抽象ォブション ■ クラスは、 a)不特定の原資産インスタンスを、 b)任意 数格納するコンテナと しての役割を主に担うのである。
4 . 2 TOpt ion コンテナ · クラスのデータ構造
TOpt ion は、 抽象契約クラス TContract (図 5、 図 8参照) を継承す る抽象クラスで、 その構造とインスタンス ' イメージは図 2 2に、 各属
性とメ ソッ ドの概要は図 2 3に示す通りである。
図 2 2において、 TOption インスタンスは、 原資産クラスである TCont ract クラスの集合を格納するリ ス ト構造への参照である、 Underlyingと いう名前のリ ンク リ ス トを保持する。
また、 TOption インスタンスは、 それぞれ、 TPwrGadgetクラス力 らそ れぞれ継承される、 DiscCurve という名前の TCntYieldCurveクラスのィ ンスタンス、 およ VolaCurve とレ、う名前の TCntVolaCurve クラスのィ ンスタンスへの参照を保持する。
この図 '表カゝら明らかなように、 TOption インスタンスは、 ォプショ ンとして本質的に必要となる属性と、 不特定 ·任意数の原資産インスタ ンス (TContract ) を保持し、 原資産の可変パラ メータのうち、 どれを ス トライクと比較するかを特定後、 原資産インスタンス;こ対して必要な 計算の実行を指示する。 ここで、 可変バラメータとは、 金利 '収益率 ' 価格等の想定元本に乗ぜられる指数や、 元本の交換レート、 NTV 等、 ォ ブションのストライクと比較可能なレ一トを意味している。
4. 3 TOption コンテナ · クラスの利用の優位性
TOption コンテナ ' クラスを利用することの優位性は、 以下の 2点で ある。
4. 3. 1 コード 'サイズとクラス数の縮小化
4. 3. 2 シミ ュレーショ ンの高速化 以下に、 上記各優位性について、 順次説明する。
4 . 3 . 1 コード ' サイズとクラス数の縮小化
TOpt ion インスタンスは、 実行時に任意の原資産インスタンスを格納 できるため、 格納されたィンスタンスに存在するス トライ ク と比較可能 なパラメ一タのうち、 どれを比較対象とするかを決定する処理が必要と なる.: これが決定されると TOp t i on イ ンスタンスは、 原資産クラスのィ ンスタンスに実装されるアツ ト · ザ · マネ一 (以下、 ATM ) レベルを計 算する GetATMメ ソッ ドを呼び出す.: 二の戻り値が、 TOpt ion ィンスタン スの Ge tXPVメ ソッ ドのパラメータに渡され価格評価メ ソッ ドの実行は完 了する。
このよ う に、 TOpt ion ク ラスは、 それが保持する原資産イン スタンス に AT\1 レベルを提供するよ う指示するのみで、 実際の ΑΠ1 演算は原資産 インスタンスが実行する。 ここで重要なのは、 ATM レベルの算出は、 ォ ブショ ンの原資産となる場合にのみ必要とされるのではなく 、 それが単 体で (オプショ ン · インスタンス;こ保有されないで) 存在する場合でも ブライシング等の実行時に必要となる機能であるという事実である: つま り、 TOpt i on インスタンスは、 原資産インスタンスに予め備わつ ている メ ソッ ドを利用することで、 自身の価格評価メ ソッ ドの実装を省 力化しているのである。
また、 ATM レベルを取得する手続きが TOpt i on に実装されることによ り、 ここから継承して実装されるオプショ ンの実体クラスは、 主にその 価格評価モデルに固有の評価式のみを実装することで足りることになる つまり、 これらの実体クラスは、 メモリ上で各価格評価メ ソッ ドが格納 されるコー ド領域への参照を提供するために存在していると考えること もできる。 同様の背景で、 4 . 1項の 1 )〜3)に上げたような分類は必要 なく、 Black- Shol esクラスのみを用意することで足り、 クラス数を縮小
する効果も得られる。
4 . 3 . 2 シミュレーションの高速化
評価日付を将来のある時点に設定して、 その時点におけるオプション 価値を計算することは、 オプショ ンのリ スク分析として一般的に行われ る行為である。 本実施の形態では、 TOpt ion インスタンスの生成時に原 資産インスタンスをも生成 .保持する方式が採用されているため、 この ような将来の価格シミュレーション実行時にも良好なパフォーマンスを 提供することができる:
このようなシミュレーションで問題となるのは、 設定された将来日付 力;、 既に当該オフ-シヨ ンのイン ' ザ ' マネ一になった以降である場合で ある。 その場合には、 オプションとして価格変動分析を行うのではなく、 権利行使されたことを想定し、 そこで発生する原資産に対する価格分析 を実行しなければならない。
この際、 本実施の形態が採用する方式では、 予め原資産インスタンス が生成 ·保持されているため、 イン ·ザ ·マネ一になった段階で当該 TOp tion インスタンスが原資産インスタンスを顕在化させるだけで目的を達 することができる。 つま り、 アウ ト ' ォブ■ ザ · マネ一時には、 原資産 インスタンスは存在するものの、 同インスタンスの持つ時価は無視され T Opt ion インスタンスの時価で置き換えられ、 イン 'ザ ' マネ一になった 段階で、 今度は TOpt ion インスタンスの時価が原資産インスタンスの時 価に取って代わられる処理が実装されるのである。
この方法を採用しない場合には、 ォプションがィン ·ザ■マネーにな つた段階で原資産を生成する手続きを実行する必要があり、 演算処理と しては負荷の重いものにならざるを得ない。 この点が、 本実施の形態の
方式の優位性である。 δ . 金融カーブ定義機能
前述したように、 TCFSwap インスタンスに属する TCFChainインスタン スまたは TOption インスタンスは、 TPwrGadgetクラス力 ら糸 承される各 カーブ ' インスタンスへの参照を保持し、 これらが提供する金融カーブ 特性を利用する (図 1 3および図 2 2参照)。
TPwrGadgetクラスは、 ィールド ' カーブ (TCntYieldCurveクラス)、 ブ ライ ス ' カーブ (TCntPriceC'urveクラス)、 ボラティ リティ ' カーブ (TC ntVolaCurveクラス)、 通貨 .商品 .証券等の取引単位 (TUnit クラス)、 および休日除外対象都市 (TCenter クラス) に関する情報を任意に定義 •生成 ·保持するクラスである- 図 1 3で説明したように、 CashFlowLet である TCF クラスのインスタ ンスの集合を格納する TCFChainコンテナ ' クラスは、 DiscCurve (ディ スカウン ト · カーブ) に TCntYieldCurveインスタンス、 PriceCurve (ブ ライ ス ' カーブ) に TCntPriceCurveインスタンスへの参照を保持し、 TCn tYieldCurve、 および TCntPriceCurveに実装されている GetFactor メソッ ドにより、 それぞれ要求日付におけるデイスカウント · ファクターと価 格指数を取得する。
また、 図 2 2で説明したように、 TOption クラスは DiscCurve (ディ スカ ウン ト · カーブ) に TCntYieldCurveインスタンス、 VolaCurve (ボ ラティ リティ ' カーブ) に TCntVolaCurve インスタンスへの参照を保持 し、 GetFactor メ ソッ ドと GetVola メソッ ドにより、 それぞれディスカ ゥント · ファクターとボラティリティを取得する。
また、 本実施の形態における TPwrGadgetクラスでは、 カーブ ' インス
タンスを任意数保持できるコンテナ ■ クラス TCntVirtualCurveで表現す る 「仮想カーブ」 という手法を採用している。 仮想カーブに計算メ ソッ ドを持たせることにより、 コンテ十に保持される各カーブ ' インスタン スの GetFactor メ ソッ ドで取得したデイ スカウン 卜 · ファクタ一または 価格指数に対して、 特定の演算を実行することができる (例えば価格指 数の平均など) = このように、 本実施の形態においては、 複数の力一ブ - インス タンスを合成する機能も提供することができる。
そのほ力 特には図示しないが、 本実施の形態では、 ィール ド ' カー ブ (TCntYieldCurve) と Futures (' TCntFuturesCurve) や、 ブライ ス - カーフ (TCntPriceCurve) とア ドオン (TCntAddOn ) をそれぞれ合成す る機能も付加することができる。
6. ユーザ ' インタフェース 6. 1 ユーザ · インタフェースの全体説明
本実施の形態では、 リスク管理のためのパラメータ変更とそれに対す るシミ ュ レーション結果の表示を容易に行うことのできるユーザ · ィン タフエースが提供される。
この場合に、 l)Cash Flows, 2)0ptions, 3)Listed という 3つの分類で 入力フォームを提供するという新しい概念が採用されている。 例えば、 従来のシステムでは、 スポッ ト為替取引、 為替スワップ取引、 金利スヮ ッブ取引、 · · ■ といった取引種別ごとに入力フォーム (または画面) が 提供されていたのに対して、 本実施の形態では、 これらの取引が" Cash F lows"取引用の 1つのィンタフヱースから入力される。
金融取引の複雑化に比例してオペレーションが困難になる一般的な統
合管理システムとは異なり、 このシステムの利用者には、 目的取引の力 テゴリ一を指定するだけで、 該当するフォームにアクセスすることがで きるという格段の利 ί更性が提供される。 6 . 2 キャッシュ ' フロー取引の入力手順の概要
まず以下の説明において、 「左クリ ック」 または 「右クリ ック」 とは、 マウスの左ボタンまたは右ボタンを 1回クリ ックさせる操作を意味する。 「左ダブルクリ ック」 とは、 マウスの左ボタンを素早く 2回クリ ックさ せる操作を意味すろ: また、 「Αから Βまでマウスをドラッグアン ドドロ ップさせる」 とは、 Αの位置でマウスの左ボタンを押し下げ、 そのまま Bまでマウスカーソルを移動させ、 Bの位置で押し下げていたマウスの 左ボタンから指を離す操作を意味する。
図 2 5は、 本実施の形態のメインのコン トロールパネルである。
図 2 6は、 キヤ ッシュ · フ ロー取引を作成するための初期ウィン ドウ 画面であり、 図 5 7は、 各部分が明確になるように強調した図である。 まず、 各タブエリアについて説明する =
"Primary " タブエリアは、 取引種規定と日付生成のためのバラメータ を指定するエリァである。
"Commod i t y/ Di scoun t〃タブエリアは、 受払通貨 (あるいは商品単位) とデイスカウント ■ カーブを指定するエリァである。
"Pri nc ipa l Cash Flows タブエリアは、 想定元本に関連しない、 直接 交換される元本額を指定するエリアで、 為替、 為替スワップや通貨スヮ ップの初期、 終期交換元本を入力する場合に利用する。
"Return Propert i es ( 1)〃 タブエリアは、 想定元本に金利、 収益率、 価格の何れかの指数を乗ずることで生成されるキャッシュ ■ フローの基
本条件を指定するエリアである。 本実施の形態では、 このキャッシュ ' フローを、 "IndexCF と呼ぶ c
Return Properties (2) タフエリアは、 Return Properties (1) タブェリ ァで対応できないキヤッシュ · フロ一を极うための拡張条件を 指定するエリアであり、 非日常的な受払日、 値決日を生成させる場合等 に利用される。
"Centers" タブエリアは、 受払日と値決日の決定時に参照される休日 除外対象都市を、 レシーブサイ ドとべィサイ ドとで独立して指定するェ リァである—.
次に、 上記各タブエリア内の各アイコン、 各ボタンまたは各フィ ール ドにっき説明する。
"Primary" タブェリァ内のヘルメ ッ トアイコンから同ェリァ内のゴミ 箱アイコンまで、 マウスを ドラ ッグアン ドドロ ップさせることによ り、 現在作成しているオブジェク 卜を破棄することができる.:
"Primary" タブェリァ内のヘルメ ッ トアイコンを左ダブルク リ ックす る二とにより、 取引オブジェク トが構築、 ί呆持される c
"Primary" タブエリア内の特には図示しない握手アイコン (ヘル メ ッ トアイコンから変化したもの) から虫眼鏡アイコンまで、 マウスを ドラ ッグアンドドロップさせることにより、 取引オブジェク トの詳細を示す マジック ' シートを表示させることができる。
"Primary" タブェリァの Kind"ェリァ内のリス トフィ一ルドを左ク リ ックすることで、 取引種定義の一覧が表示され、 定義済みの取引種を選 択することができる。 取引種を選択することにより、 フォーム上の入力 必須フィールドがハイライ ト表示され、 各フィールドには初期値が代入 される。 利用者は、 このようにして呼び出された取引種定義に対して、
自由に追加 · 修正を行うことができる。
"Primary" タブエリア内の" Change Side" ボタンを左ク リ ックするこ とで、 後述する レシーブサイ ドとべイザイ ドに指定されたパラメータ群 を、 両サイ ド間で一括して入れ替えることができる。 例えば、 フォーム 上に " ドル売りノ円買い" のパラメータ群が指定されているときに、 こ のボタンがク リ ックされると、 "ドル買い/円売り " のパラメータ設定状 態に切り替わる。
"Primary" タブエリアの" Data Generation" エリア内の" Business Day Con ' フ ィールドでは、 休日除外方式を指定することができ、 \lodifie cT、 "following", "Preceding", または" X。 Adus 'を指定できる: ここ で設定された値は、 レシーブ廿ィ ドおよびべィサイ ドの各 TCFChainクラ スの BDConv属性値 (図 1 4参照) と して設定される::
"Primary" タブエリアの" Data Generation" エリア内の Centers" フ ィール ドには、 休日除外対象都巿を表示することができる。 これらの都 巿情報は、 後述する PwrGadget〃 機能によって予め定義しておく ことが できる: 二この設定値は、 レシーブサイ ドおよびぺィサィ ドの各 TCFCha i nクラスの PaymCenters 属性値 (図 1 4参照) と して設定される。
"Primary" タブエリアの" Data Generation" エリア内の" Today" フィ 一ルドには、 評価基準日 (取引日 Z本日) を指定することができる。
"Primary" タブエリアの" Data Generat ion" エリア内の" Spot"フィー ゾレドには、 スポッ ト 日 (Spot Date/Settlement Date ) を指定すること ができる。
"Primary" タブエリアの" Data Generation" エリア内の〃 Effective" フィールドには、 実効日 (Effective Date) を指定することができる。 ここで設定された値は、 レシ一ブサイ ドおよびペイサイ ドの各 TCFChain
クラスの EDate 属性値 (図 i 4参照) として設定されるつ
"Primary" タブエリアの" Data Generation" エリア内の" Stu 'フィー ル ドには、 スタブ指定時の次回受け払い日を指定することができる。 こ こで設定された値は、 レシーブサイ ドおよびべイザイ ドの各 TCFChainク ラスの FDate 属性値 (図 1 4参照) として設定される。
"Primary" タブエリ アの" Data Generation" エリア内の Maturity フ ィールドには、 満期日 (Termination Date) を指定することができる。 二こで設定された値は、 レシーブサイ ドおよびペイサイ ドの各 TCFChain クラスの TDate 属性値 (図 1 4参照) として設定される:
"Primary" タブエリ アの" Data Generation" エリア内の" EndEncTチェ ックボッ ク スでは、 月末ロール指定を指定することができる: こ二で設 定された値は、 レシーブサイ ドおよびペイサイ ドの各 TCFChainクラスの E ndEnd属性値 (図 1 4参照) として設定される。
"Primary" タブエリアの" Data Generation" エリア内の" AdjMty"チェ ックボックスでは、 満期日シフ ト指定を指定することができる。 こ二で 設定された値は、 レシーブサイ ドおよびべィサイ ドの各 TCFChainクラス の AdjTDate属性値 (図 1 4参照) として設定される。
続いて、 "Commodity/Discount〃タブエリァ内の" Rec (+)"ニリァおよび" Pay (- エリア内の各" Commodity" フィールドでは、 受払通貨または商品 単位を指定することができる。 これらの通貨または単位は、 後述する金 融特性の定義機能 PwrGadge 機能) によって予め定義しておく こと ができる。 ここで設定された値は、 Rec(+)"エリアまたは" Pay(-)"エリ ァに対応するレシ一ブサイ ドまたはペイサイ ド (以下、 対象サイ ドと呼 ぶ) に対応する TCFChainクラスの AppliedUnit 属性値 (図 1 4参照) と して設定される。
CotnmodityZDiscoutU"タブェリァ内の" Rec(+ 'ェリァおよび" Pay(- ) エリア内の各 DiscCurve〃 フィール ドでは、 レシーブサイ ドまたはべィ サイ ドのそれぞれにおけるキヤッシュ · フロー群を割り引くためのィー ノレド · カーブを指定することができろ。 また、 対象取引がスボッ ト為替 である場合であって、 "Primary" タブエリアの" Data Generation エリ ァ内の" Today" フィールドに設定される評価基準日が本日である場合に は、 上記ェリァ内の" Stub"フィールドに設定されるスポッ ト日から本日 まで割り引くためのカーブを指定することができる。 これらのカーブは、 後述する金融特性の定義機能 ("PwrGadget" 機能) :こよって予め定義し ておく ことができる.: ここで設定された値は、 対象サイ ドに対応する TCF Chainクラスの DiscCurve 属性 ί直 (図 1 4參照) として設定される— 次に、 "Principal Cash Flows"タブエリア内の中央の矢印ゲージは、 元本交換時の基準通貨サイ ドを規定することができる。 例えば、 Rec:"じ S D'7Pay:"JPY〃 (ドル買い/円売り) が指定されている場合に、 基準サイ ドを" Rec〃 側に指定すれば、 「1USD=L30.05JPY」 のようにドル基準が採用 され、 逆に基準サイ 卜"を "Pay" 側に指定すれば、 ! 1JPY-0.0076894USD 」 のように円基準が採用される。
上記矢印ゲージの下の第 1行目のフィールドには、 初期元本交換レ一 トが表示され、 第 2行目のフィール ドには、 終期元本交換レー トが表示 される。 上記ゲージ指定とこれらのフィール ドに表示されるレートとに 基づいて、 基準通貨に対する他方の通貨額が自動的に演算される。
"Principal Cash Flows"タブエリアの" Initial: Pay (-) /Final: Rec ( + 丫 エリアおよび" Initial: Rec. (+) /Final: Pay(- )" エリア内の各第 1行 目のフィールドには、 為替スワップおよび通貨スワップに関して、 "Prim ary" タブエリアの" Data Generation" エリア内の" Effective" フィール
ドに設定された実効日に交換される交換元本実額 (初期元本交換額) を 指定することができる,. ここで設定された値は、 対象サイ ドに対応する T CFChainクラスの IniPnncAmnt属性値 (図 1 4参照) と して設定される。
"Principal Cash Flows"タブエリアの" Initial: Pay (一)/ Final: Rec (+ )〃 エリアおよび" Initial: Rec (+) /Final: Pay (-) " エリア内の各第 2行 目のフィールドには、 為替スワップおよび通貨スワップに関して、 Prira ary" タフ、-エリアの" Data Generation" エリア内 C "\laturity"フィ—ゾレ ド に設定された満期日に交換される交換元本実額 (終期元本交換額) を指 定することができる: ニニで設定された値は、 対象サイ ドに対応する TCF Chainクラスの FinPrincAmnt属性値 (図 1 4参照) と して設定される。 次に、 "Return Properties (l) " タブエリア内の中央の矢印ゲージは、 クーポン · スワップ等を人力する場合の想定元本変換時の基準サイ ドを 規定することができる: その機能は、 "Principal Cash Flows"タブエリ ァ内の中央の矢印ゲージの場合と同様である。
上記矢印ゲージの下のフ ィール ドには、 想定元本交換レートが表示さ れる。 上記ゲージ指定とこれらのフィ一ルドに表示されるレー卜とに基 づいて、 基準通貨に対する他方の通貨額が自動的に演算される。
"Return Properties (1)〃 タブエリアの" Rec (+)"エリアおよび" Paバ-) 〃エリア内の各" Notional"ラジオボタンでは、 固定元本制 ("Fixed": "Fix ed Notional Principal") または可変元本制 ("Var": "Variable Notions 1 Principal" ) の何れかの想定元本定義を指定することができる。 ここ で設定された値は、 対象サイ ドに対応する TCFChainクラスの VarNotional 属性値 (図 1 4参照) として設定される。
"Return Properties (1)〃 タブエリアの" Rec (+)"エリアおよび" Pay (-) "エリア内の各" Notional "フィールドには、 プレーンバニラ取引の場合に
はその想定元本額、 ァモチ等の想定元本が一定でない取引の場合には初 期想定元本を指定することができる。 ここで設定された値は、 対象サイ ドに対応する TCFChainクラスの
属性値 (図 1 4参照) とし 一 e又 Λ: ォし .-,
"Return Properties (1)" タブエリアの" Rec (+Γエリアおよび" Pay (-) "エリア内の各" IndexType" ラジオボタンでは、 金利 ("Int )、 収益率 ("¾chg")、 または価格 ("Prx" ) の何れかの指数を定義することができ る: ここで設定された値は、 対象サイ ドに対応する TCFChainクラスの Ind exTvpe 属性値 (図 1 4参照) ご して設定される。
"Return Properties (1)〃 タブエリアの Rec (+) "エリアおよび" Pav (-) "エリア内の各 "Index/Value" フィール ドには、 指数値とその単位 ("%", "bp", "dec") を指定することができる。 ここで設定された値は、 対象サ ィ ドに対応十る TCFChainクラスの IndexVal属性値および IndexUnit 属性 値 (図 1 4参照) として設定される:
上記各" Index/Value フィール ドの左側の各ゲ一ジでは、 固定 ("FX" ) または変動 ( Fじ') の指数定義を指定十ることができる: ここで設定 された値は、 対象サイ ドに対応する TCFChainクラスの Floatlndex属性値 (図 1 4参照) として設定される。
"Return Properties (1)" タブエリアの" Rec (+) "エリアおよび" Pay (-) 〃エリア内の各〃 ReturnCurve フィールドでは、 レシ一ブサイ ドまたはべ ィサイ ドのそれぞれにおけるフォア一ド ·プライス ·カーブまたはィ一 ルド · カーブを指定することができる。 フォア一ド · プライス · カーブ { 、 Forward Forex , Equity Swaps , Commodity Swaps 等の取ラ|力、定 義される場合に指定される。 ィ一ルド . カーブは、 "Interest Rate Swap s" 等の取引が定義される場合に指定される。 これらのカーブは、 後述す
る金融特性の定義機能 ("PwrGadge 機能) によって予め定義しておく ことができる。 ここで設定された値は、 対象サイ ドに対応する TCFChain クラスの PriceCurve属性値 (図 1 4参照) として設定される。
"Return Properties (1) " タブエリアの" Rec ( + ) エリアおよび" Pay (-) 〃エリア内の各" D- Cut 十 C/R- Frq〃 フィールド群では、 日割り計算方式 ( "Act/360", "Act/365Fixed", "Act/Act", "30/360", "30E/360" )、 受払頻度 (支払い間隔)、 およびリセッ ト頻度を指定することができる。 ここで設 定された値は、 対象サイ ドに対応する TCFChainクラスの DayCount属性値、 CFFrq 属性値、 および ResetFrq属性値 (図 1 4参照) として設定される。
"Round/Trunc" フィール ド群では、 四捨五入 ("Rnd" /切捨て ("Tr c〃 )、 およびその実効桁を指定することができる: ここで設定された値 は、 対象サイ ド';二対応する TCFChainクラスの Rounding属性値および DecPl aces 属性値 (図 1 4参照) として設定される。
図 2 7は、 必要なパラメータをァクティべ一卜する図である。 まず画 面左下の鍵アイコンを左ク リ 'ソクした後、 所望のパラメータ上で右クリ ックして" Activ ブロバティを左クリ ックしてチヱック十る。 金利スヮ ップの場合は、 かなりの箇所がアクティブにされる。
6. 3 金利スワップ取引の作成手順
ここでは、 円と円のキャッシュ · フローの交換の金利スワップ、 いわ ゆる円 Z円スヮッブを作成する。
まず、 画面上半分の〃 Commodity/Discount〃タブェリァの Rec(+)"ェリ ァおよび" Pay (-) "ェリァ内の各" Commodity" フィ一ルドにおいて通貨を 選択する。
次に、 上記各エリア内の" DiscCurve" フィールドにおいて、 上記各選
択した通貨に対応するィール ド · カーブ特性として、 "UB0R&SWAP"を指 定する。
続いて、 画面下半分の" Return Properties (1)〃 タブエリアの" Rec (+) "エリァおよび" Paバ-)〃エリァ内の各" ReturnCurve" ブイールドにおいて、 リターン · カーブ特性として" LIB0R&SWAP"を指定する。 このリターン ■ カーブは、 フォワー ドのキャッシュ ' フロー、 すなわち将来の金利を計 算する基礎になる。
"Return Properties (1)" タブエリアの" Rec (+)"エリアおよび" Pa -) エリア内の各" D - Cnt + C/R-Frq" フィールド群には、 マーケッ 卜のコン ベンシヨンに従った各値を設定する:
このようにして作成したパラメータセッ トは、 図 2 8に示されるよう に、 画面左下の鍵アイコンの右のアイコンを左クリ ック して表示される ダイアログボックスを用いて、 名前を付与することができる, こ二では、 例えば JPY,'JPY SWP〃 という名前を付与する- この名前は、 画面左上の〃 Primary" タブェリ ァの" Kind"ェリ ァ内のリス トフィール ドに登録され、 以後その名前を選択することにより、 それに対応するパラメータセッ ト を呼び出すことができる。
ここで、 4年ものの金利スワ ップ商品を作成する。 まず、 図 2 9に示 されるように、 画面左の" Data Generation" エリア内の" Today" フィ一 ノレ ド、 "Spot"フィ一ノレ ド、 "Effective" フィール ド、 および" Maturity" フィールドを順次設定する。
次に、 図 3 0に示されるように、 画面下半分の" Return Properties (1 )" タブェリァの" Rec(+)〃ェリァおよび" Pay (-) "ェリァの各" Notional"フ ィールドに、 1 0億日本円を設定する。
また、 フィ ックスレー 卜 (固定金利) を受けて ("Return Properties
(1)" タブエリアの" Rec(+)"エリアにおいて" FX を選択)、 フロー トを払 う (同じく " Pay (-) "エリアにおいて" Fじ'を選択) という金利スワップを 設定する。 この場合さらに、 "Return Properties (1)" タブエリアの" Re c (+) "エリア内の "Index/Value" フィール ドに、 フィ ックスレートと して 例えば 1.75527%をプライシングする。 この意味は、 将来 4年間フロート の し IBOR" レートを払ってそれに対してし 75527%の固定金利を受ければ、 この取引において、 払ったお金の P Bと受けるお金の P Bが等しくなる ということになる。
その後、 図 3 0に示される画面左上の'' Primary" タブエリア内のヘル メ ッ トアイコンを左ダブルクリ ックすることによって、 そのアイコンが 図 3 1に示されるように握手アイコンに変化し、 上述のようにして定義 されたスワップに対するキャッシュ · フローオブジェク 卜が構築される。 ここでは、 前述した 2. 3項の、 TCFSwap,'TCFChain/TCFインスタンスの 生成手順が実行される。
キャッシュ ' フローオブジェク トの詳細は、 図 3 1に示される画面左 上の" Primary" タブエリア内において、 握手アイコンから虫眼鏡アイコ ンまでマウスをドラッグアンドドロップさせることにより、 図 3 2〜図 3 4に示されるように表示されるマジック · シ一トを介して確認および 変更することができる。 "REC" タブと" PAY" タブのそれぞのエリアでは、 レシーブサイ ド (受取り側) およびペイサイ ド (支払い側) のそれぞれ に関する指定期間内 (ここでは 4年間) の各キャッシュ · フロー期間の それぞれについて、 その詳細を確認および変更することができる。
ここに表示される各行は、 レシーブサイ ドおよびペイサイ ドのそれぞ れに対応する TCFChainィンスタンスから参照される各 TCF インスタンス に対応し、 各行の各フィールドは、 各 TCF インスタンスが保有する各属
性値 (図 1 6参照) に対応している。 第 1行めに手のマークが付加され ていないフィールドは、 その値を変更し新たなブライシングを行うこと ができる。 例えば、 あるキャッシュ · フロー期間における" NotionalAinnt "フィール ド ("Notionar 'フィールドに等価) の値を変更し、 "し pdate"ァ ィコンを左クリ ックすることにより、 新たなプライシングが実行される。 この場合には、 前述した 3. 項の TCF インスタンスの更新メ ソッドが実 行さ lることになる- 図 3 2〜図 3 4では、 レシーブサイ ドに関する〃 REC" タブエリアのマ ジック · シートが表示されている: 図 3 5では、 べィサイ ドに関する" PA '〃 タブエリアのマジック ' シートが表示されている,:
6. 4 ェクイティ ' スワップ取引の作成手順
次に、 Iクイティ ' スワップ取引の作成を行う- 図 3 6にその設定画 面例を示す- ここでは、 将来 4年間にわたって、 "ReturnCurve" フィー ルドに設定されている "Nikkei Forward"という リタ一ン · カーブ特性に 従うフロー ト レ一ト (変動金利) を受けて ("Return Properties (1)" タブェリァの Rec(+)"二リァにおいて '卞 を選択)、 フロー トの" LIBOR" レー トを支払う (同じく " Pay (-)"エリアにおいて" Fじ'を選択) というス ヮップを設定する。 この場合さらに、 "Return Properties (1)" タブェ リアの" Pay (-) エリア内の" Index/Value" フィールドに、 マ一ジンレー トとして例えば - 1. 10993% をブライシングすることができる。
図 3 7は、 上述のようにして作成されたェクイティ · スヮップォブジ ェク 卜のマジック ■ シー トである。 ここで、 "PrePrice フィールドの各 値は、 リターン ' カーブ特性" Nikkei Forward"によって算出されるもの である (図 2 0のステップ 8参照)。
6. δ 為替取引の作成手順
次に、 為替取引の作成を行う。 図 3 8は、 為替商品の作成画面である- ここでは、 "Principal Cash Flows〃タブエ リアの、 "Initial: .Pay (―) ,'Fi nal: Rec(+)" エリアの第 2行目のフ ィール ド (終期元本交換額フィ一ル ド) に設定された U S ドルを買う. "Principal Cash Flows〃タブエリア の中央の無名のフィ一ルドを左ダブルク リ ックすると、 現在の交換レー トが表示される。 このレートで良ければ、 "Principal Cash Flows"タブ エリ アの" initial: Rec ( + ) /Final: Pay(- )" エリ アの第 2行目のフ ィー ルド (終期元本交換額フィールド) に設定された日本円の額を支払うと いう取引になる。
図 3 9および図 4 0は、 上述のようにして作成された為替取引のマジ ック · シートである。 データ構成はスワップの場合と全く同様である力;、 為替取引の場合は、 キャ ッシュ · フローは 1件 ( 1行) のみ存在する: 為替取引の性格上、 "NotionalAm "フィール ドや、 それに基づいて計算 される " IndexCFiiFV"フィールド等には ί直は存在しない。 その代わり、 図 3 9に示されるように、 〃REC タブエリ アの" onlndexCFfiFV" フィール ドに、 "Principal Cash Flows"タブエリアの" Initial: Pay (―) /Final: R ec (+) " エリアの第 2行目のフィール ド (終期元本交換額フィール ド) に 設定された U S ドルの値が設定されている。 また図 4 0に示されるよう に、 "PAY タブエリアの" NonlndexCFiFV フィールドに、 "Principal Ca sh Flows"タブエリアの" Initial: Rec (+) /Final: Pay (-) " エリアの第 2 行目のフィール ド (終期元本交換額フィール ド) に設定された日本円の マイナス値が設定されている。 そして、 "ΝΡΓ フィールドの値は、 レシ ーブサイ ドの PV値 (図 3 9 ) とペイサイ ドゼロの PV値 (図 4 0) がバラ
ンスして、 0となる。
6. 6 金融特性の定義手順 ("PwrGadge 機能)
続いて、 各種金融特性の定義手順 ("PwrGadge 機能) について説明 する。 図 4 1は" PwrGadget" 機能の初期画面であり、 "Curve Yard"タブ エリアに、 ィ一ル ド ' カーブを定義する" Yield" 項目、 ブライス . 力一 ブを定義する" Price" 項目、 フューチャーズ · カーブを定義する" Future s" 項目、 ボラリティ · カーブを定義する" Vola"項目、 仮想カーブを定義 する" Virtual" 項目、 取引単位を定義する し— ηΐΐ"項目、 休日除外対象都 市を定義する" Center"項目が表示されている.:
"Curve Yard"タフ"エリ ァの Center"項目を左ダブルク リ ックすると、 図 4 2に示されるように、 休日除外対象都市を定義する詳細項目が表示 される。 ここでは、 都市ごとに、 休祭日を排除するための情報を定義す ることができる。
"Curve Yard"タブェリ ァの Lini 項目を左ダブルクリ ックすると、 図 4 3に示されるよ όに、 取引単位を定義する詳細項目が表示される。 こ こでは、 通貨の取引単位、 特定の会社の株の単位、 オイルの単位、 債権 等を、 自由に定義することができる。
"Curve Yard タブエリ アの" Yield 項目を左ダブルクリ ックすると、 図 4 4に示されるように、 ィールド . カーブを定義する詳細項目が表示 される。 図 4 4の Rate on Grid"タブエリアには、 "LIBOR&SWAP (JPY/JPY )〃 と名付けられたィール ド · カーブを定義するための画面が表示されて いる。 まず図 4 δの" Curve Yard"タブェリァに表示されているように、 1ヶ月おきとか 1年おきとかといぅグリ ツ ドを自由に定義することがで き、 この場合の各グリ ッ ドの属性は、 その詳細については省略するが、
WO 00/00919 Q rj PCT/JP99/03507
図 4 5の" L i nked Objec t " タブェリァにおいて定義することができる。
そして、 "Rate on Gr id"タブエリアに表示されたグリッドごとに、 " Rate 〃フィールドにレ一トを定義することができ、 これによりカーブが定義さ れたことになる。
"Rate"フィールドに対するレートは、 手動による設定も可能であるが、 例えばネッ トワークを介した定期的な取得 (デジタルフィード) によつ て設定されるように構成することもできる。
"Curve Yard〃タブエリアの〃 Pr i c e" 項目を左ダブルクリ ックすると、 図 4 6に示されるように、 フライ ス · カーブを定義する詳細項目が表示 される。 ここでは例えば、 日経インデックスというような、 直接将来の 価値が観測できるようなカーブを、 図 4 4および図 4 5で示したィール ド - カーブの場合と同様にして定義することができる。 この場合、 図 4 6の" Rate on Gri d"タブエリアの" Rate "フィールドには、 ブライス (価 格) が直接入力されることになる- 図 4 7は、 オイル等のコモディティ (商品) に対するブライス ' カー ブの定義画面である: コモディティ;こおいては、 スポッ トの価 (直と将来 の価値は関係がない。 そこで、 図 4 7の" Rate on Grid"タブエリアに示 されるように、 〃spt" グリ ッ ドのみが定義される。
"Curve Yard"タブェリァの" Virtual 項目を左ダブルクリックすると、 図 4 8に示されるように、 仮想カーブを定義する詳細項目が表示される。
ここでは、 "Curve Yard"タブエリアの" Tes 項目下に示されるように、 ィールド . カーブやプライス . カーブ等の他の複数のカーブをまとめて コンテナに登録し、 それら複数のカーブ間の関数 (演算メ ソッ ド) を定 義することにより、 新たな仮想的なカーブを定義することができる。 例 えば、 図 4 8において、 inked Objec t タブエリア内の" Cal cMet hocT
フィール ドにおいて、 カーブ間の演算を定義することができる。 例えば" Average e thod 〃メ ソッ ドは、 複数のカーブの対応する各値の平均を演算 するメソッ ドである。 また、 "SutnMethod メソッ ドは、 複数のカーブの 対応する各値の合計を演算するメ ソッ ドである, 上述のようにして定義 された仮想カーブにおいては、 そのコンテナに登録されている元のカー ブの構成レー卜等が例えば前述したデジタルフィード等により変化した 場合には、 その変化を自動的に仮想カーブにも反映させることが可能と なる。 このような仮想カーブを用いることにより、 従来なかった全く新 しい金融取引を定義することが可能となる:
6 . 7 オプション取引の作成手順
次に、 オプショ ン取引の 1つである、 スワ ップシヨ ン、 つまりスヮ ッ ブについてのォプシヨ ンを取り扱う取引の作成手順について説明する c まず、 原資産であるスワ ップを定義する 図 4 9は、 その作成画面例 である。 この例は、 2年後スタートの 4年ものという将来スタートのス ヮッブであり、 " L I BOR" のフロートレー卜を受けてフ ィ ック スレートを 支払うというスヮップの例である:
上述のようなスヮップについてのォプシヨンとは、 スタート年月 日に おいて、 契約者が、 その時点での状況を判断することにより、 そのスヮ ッブを履行するか否かを選択できる権利を有するような取引をいう。 上述のようにしてスヮップについての定義を行った後に、 前述のよう に、 図 4 9に示される画面左上の" Pr imary タブエリア内のへルメ ッ ト アイコンを左ダブルクリ ックすることにより、 そのスワップに関するキ ャッシュ ■ フロー取引がまず構築され、 上記ヘルメ ッ トアイコンが握手 アイコンに変化する。
n
by 続いて、 メインのコン ト口一ルパネルの" Opt " アイコンを左ク リ ック することにより、 図 5 0に示されるように、 オプションの定義ウィンド ゥが表示される。 そして、 スワップの定義ウィンドウ上の" Pr imary" タ ブエリァ内の握手アイコンからォブションの定義ウインドウの" Primary" タブェリァ内の人アイコンまでマウスをドラッグアンドドロッブさせる と、 オプションの定義ウィン ドウの画面表示が、 図 5 1に示されるよう に変化する。 この結果、 TOpt ion インスタンスが、 上述のようにして定 義されたスワップオブジェク トのインスタンスをコンテナに ί呆有する結 果となる。
ォプションの定義ウイン ドウにおいて各ォプションに対応したパラメ ータ設定を行った後、 そのウィン ドウの" Pr imary" タブエリア内のヘル メ ッ 卜アイコンを左ダブルクリ ックすることにより、 そのアイコンが図 δ 2に示されるように握手アイコンに変化し、 定義されたォブショ ンに 対する TOpt ion インスタンスが構築される。 この場合特に、 オプション のモデルごとにクラスが作られており、 途中のパラメータ選択によりモ デルが特定されると、 そのクラスに必要なパラメータの設定フォームが 自動的に表示される。
6 . 8 金融取引の合成手順
以上示したようにして個々に作成される金融取引は、 任意に合成する ことができ、 仮想取引を形成することができる。
今、 スヮップの定義ウィンドウゃォプションの定義ウィンドウで各ォ ブジェク トが構築されて" Primary" タブエリア内のへルメ ッ トアイコン が握手アイコンに変化した後、 メインのコン トロールパネルの" Ορΐ ' ァ イコンを左ク リ ックすることによって、 図 5 3に示されるように、 ブッ
クマネージャ (BOOK MANAGER) ウィン ドウが表示される。
そして、 スヮップまたはォプショ ンの定義ウインドウ上の" Pr i mary " タブェリ ァ内の握手アイコンからブックマネージャウィン ドウのフラス コアイコンまでマウスを ドラッグアン ドドロッブさせる操作を複数の構 築されたオブジェク トに対して行う と、 それらのオブジェク トを 1つの 仮想取引と してと りまとめることができる。
さらに、 このようにしてフラスコアイコンにおいて 1つの金融取引に と り まとめられた複合取引である仮想取引を、 ブックマネージャウイン ドウ上で、 任意に名前付けされたツリー構造と してデータベース管理す ることができる。 そのためには、 フラ スコアイコンからブックマネージ ャウィン ドウのッリ一構造上の任意のッリー要素までマウスを ドラッグ アン ド ドロ ップさせればよい: この場合に、 図 5 4に示されるように表 示される取引入力 (DEAL EN— TRY) ウィン ドウを使って、 複合取引である 金融取引に、 契約先や取引種名等の属性を設定することができる。
この結果、 例えば図 5 5に示されるようにして、 ツリー構造内に I D ( 15 )と して示される複合取引である仮想取引が保存される: これが図 2等に 示される TV i rtua lContrac tを構成する。
ここで、 上記ツリー構造内の金融取引を左ダブルク リ ックすると、 図 5 6に示されるよ うに、 2枚のマジック ' シー トが表示される。 これに より、 この金融取引が、 2つの取引実体から構成される複合取引である ことがわ力 る。
7 . 本実施の形態を実現するプログラムが記録された記録媒体について の補足
本発明は、 コンピュータにより使用されたときに、 上述の本発明の実
施の形態の各構成によって実現される機能と同様の機能をコンピュータ に行わせるためのコンピュータ読出し可能記録媒体として構成すること もできる。
この場合、 例えばフロッピィディスク、 CD— ROMディスク、 光デ イスク等の可搬型記録媒体や、 ネッ トワーク回線経由で、 本発明の実施 の形態の各種機能を実現するプログラムが、 コンピュータ本体内のメモ リにロードされて、 実行される。
図 5の構成では、 オンメモリ上の各クラスイ ンスタンスを実行するク ラスモジュール 50 丄 、 浦助記憶装置上にリ レーショナルデータベース を構築する R D Bモジュール 50 3、 およびク ラスモジュール 50 1 と RD Bモジュール 50 3との間でデータの中継を管理する RD BMSモ ジュール 5 0 2等が、 コンピュータのハ一ドウエア機能として実装され る。 RDBMSモジュール 502は、 S Q Lの発行を制御する TQueryメ ソッ ド、 ス トア ドプロシジャを制御する TStored- Procメ ソッド等を実装 する。