モデルの構成要素

モデルは、以下の階層構造になっています。
モデル ⇒ 計算クラス ⇒ モジュール ⇒ モジュールパラメータ・変数・関数・埋め込み関数

モデル

モデルは、計算クラスの集合で、さまざまな種類の保険契約を計算するロジックの集合を表します。
ランを行う場合は、どのモデルを用いるか指定する必要があります。
  • モデルは、1つ以上の計算クラスで構成されます

計算クラス

計算クラスは、ある種類の保険契約を計算する一連のロジックを表します。
ランを行う場合は、どの計算クラスを用いるか指定する必要があります。
  • 計算クラスは、0個以上のモジュールで構成されます
  • 他の計算クラスから、継承を行うことができます

モジュール

モジュールは、変数や関数を集めたものであり、計算ロジックを区切る役割をします。
(例:基数モジュール、レートモジュール、キャッシュフローモジュール)
また、出力を行うときには、モジュールを指定することで出力する変数を定めます。
(例:収益性出力モジュール、BS/PL出力モジュール)
  • モジュールは、0個以上のモジュールパラメータ・変数・関数・埋め込み関数で構成されます
  • モジュールにはタイムステップを1つ持つことができます
  • モジュールが配列型の変数を持つには、タイムステップを持っている必要があります

モジュールパラメータ

モジュールパラメータには以下の種類があります。

@range
タイムステップに用いる文字列を指定します
@range_last
タイムステップの終わりの値を指定します。
(例: 100を指定した場合、タイムステップは0-100になります)
  • @rangeを指定した場合には、@range_lastを指定する必要があります

変数

変数は、計算ロジックであり、またその計算結果を保持するものです。
Excelでプロジェクションを行う場合のセルや列(行)に相当します。
  • 変数は 算式文 を持ちます
  • 型により、整数型・小数型などの入る値のタイプ、スカラー値と配列のどちらかであるかを表します
  • 算式文で計算ロジックを定義します

関数

関数は、やや複雑な計算ロジックを表すためのものです。

  • 関数は返り値の ・0個以上の引数・算式文 を持ちます
  • 引数とは、関数を使う場合に括弧内に入力する値です
  • 算式文で計算ロジックを定義します。ここでは、引数を使用することができます。

埋め込み関数

埋め込み関数は、通常の機能では表せないロジックを表現するために、C#コードを直接埋め込んで計算するためのものです。

  • 複雑なロジックを表現する場合の 上級者向け機能 です
  • 埋め込み関数は返り値の型・引数・埋め込み算式文を持ちます
  • $(variable1), $($scenario) などと記述することで、他の関数・変数やシナリオ番号などを参照できます