モデルのパラメータ“価格モデルは一定の数のパラメータを持つ”と言った場合、そこには曖昧な部分があります。仮に、それらのパラメータがすべて定数であれば、曖昧な部分はありません。持ちます、と言っていいでしょう。言い換えれば、それらのパラメータが時間に依存する‘パラメトリックな式’で表現されるかも知れません。(訳注:パラメータとしての関数が、さらにいくつかのパラメータを持つことになる)。Parameterクラスは、これを考慮して設計されていますが、その結果、判りにくさも同居する事になりました。(モデルのパラメータを意味します。表現される場合の、その関数で使われるパラメータの両方で使っています。プログラムコードの設計者である我々が悪いのですが、読者の方は、これからの説明でこの2つを混同しないように注意して下さい。(その内のいくつかについてこれから説明します)。その為に取った方法は、通常とは若干異なります。)メソッドが宣言されています。(Wilmottフォーラムの参加者の誰かが、これは開発者の仕事を守る為だと言っていました。プログラムコードを分りにくくしておけば、開発者以外はメンテナンスできないという理由です。言いたい事は解りますが、それが理由ではありません)。モデルのパラメータが時間の関数形で表現される場合にその関数で使われるパラメータが保持されます。クラスのインターフェースの大半がこれらの付随するパラメータを取り扱うものです。)メソッドは、その数を返します。parameterと使い分けています。)Parameterクラスのインスタンスは、関数で使われるパラメータが取り得る値の範囲を決める制約条件も保持します。)メソッドは、保持されているパラメータがその制約条件の範囲内かどうかチェックする手段を提供しています。モデルのパラメータを、(引数として渡された時間に対応する)パラメトリックな関数の計算結果として返します。Implクラスのインスタンスに委託されています。最後に、コンストラクターが2種類宣言されています。protectedメソッドとして宣言され、派生クラスが自分自身のインスタンスを生成する際に使われます。Parameterクラスを使えるようする為です。5.4で、いくつか実際のパラメータの例を示しています。Impl内部クラスを宣言し、そのインターフェースを実装しています。};最初の派生クラスは、時間に依存しない定数パラメータをモデル化したものです。一般にモデルのパラメータと言う場合、このタイプが想定されており、かつ最も頻繁に使われるタイプです。)メソッドは、引数で指定された時間に関係なくその値を返すよう実装されています。Calibrationでは使われない事を想定しています。渡されている事でわかります)。(パラメータの値は0でない定数)の特殊なケースと考える事も可能です。最後に、三つ目のクラスは、時間に依存するパラメータのクラスです。このクラスは、時間の区間ごとに一定値をとるパラメータとしてモデル化されています。Time-gridの間と、両端の外側の値)。実装方法は、簡単な線形サーチで、Time-gridの数もそれほど多くない事を想定しています。(訳注:多くの点を通る近似曲線を引く場合、曲線のパラメータの数を多くしすぎると、Over-fittingとなり逆に予測性能を落としてしまうこと)。(例えば、時間に依存するパラメータで、別のパラメトリックな方法で導出されたもの)。これ以上、読者の方をここに留めるのはやめましょう。(まぎらわしい言い方ですが、これより間際らしくない表現を思いつきませんでした)。<ライセンス表示>QuantLibのソースコードを使う場合は、ライセンス表示とDisclaimerの表示が義務付けられているので、添付します。