Fundamentals

本記事ではシミュレーションで,ファンダメンタル価格(理論価格)を制御する仕方を述べる. ファンダメンタル価格は多変量幾何ブラウン運動として生成される.

関連するファイル:

多変量幾何ブラウン運動

多変量幾何ブラウン運動の各変数は以下のパラメータをもつ. カッコ内に JSON ファイルで用いるキーワードとともに示す.

ドリフト項は 0.0 のとき,平均回帰する時系列(トレンドなし)を生み出すが,非ゼロの値をとるとき,上昇トレンド(正),下落トレンド(負)を生みだす.

ボラティリティ項(非負)は 0.0 のとき,時系列は定数となるが,非ゼロの値をとるとき,価格時系列にバラつきを生み出す.

価格相関行列は文字通り,各変数に対応する銘柄ペアの価格時系列の相関を定める.

JSON ファイルでの指定

初期価格,ドリフト項,ボラティリティ項

最初の3項目

はマーケットの記述に組み込む(約束事). たとえば,以下のように書く.

    "market-1": {
        "class": "Market",
        "marketPrice": 300.0,
        "outstandingShares": 25000,
        "fundamentalPrice": 300.0,
        "fundamentalDrift": 0.0,
        "fundamentalVolatility": 0.001
    }

補足 FundamentalsMain でインスタンス化されるが,マーケットの定義の一部として上記3項目が宣言されることを前提としている. Main では上記3項目についてデフォルト値を設けており,上記3項目の宣言は欠落してもよい. "fundamentalPrice" のデフォルト値は "marketPrice" であり, "fundamentalDrift""fundamentalVolatility" のデフォルト値はともに 0.0 である.

注意 マーケット初期化時にファンダメンタル価格の初期値を渡す必要があるが,これは Fundamentals インスタンスの初期値とは独立している. samples/CI2002/CI2002Main.x10 ではファンダメンタル価格の初期値を marketPrice で決め打ちにしているが,samples/ShockTransfer/ShockTransferMain.x10 では "fundamentalPrice" のデフォルト値を "marketPrice" とするよう X10 コードが書かれているので,参考にしてほしい.

価格相関行列

価格相関行列(fundamentalCorrelations)はマーケットペアごとに指定する必要がある. 仮に,3つのマーケットがあるとし,

と設定したいとしよう. 以下のように行う.

	"simulation": {
		"markets": ["market-1"],
		"agents": ["agents-1"],
        "fundamentalCorrelations": {
            "pairwise": [
                ["market-1", "market-2",  0.9],
                ["market-1", "market-3", -0.1]
            ]
        },
		"sessions": []
	}

補足 "fundamentalCorrelations" の宣言そのものが欠落してもよい. Main では,相関係数のデフォルト値を設けており,未指定のマーケットペアの相関は 0.0 となる(ただし,相関の定義上,自己相関は必ず 1.0 となる). これは "pairwise": [] と等価である.