financial toolbox - mathworks · はじめに 本内容は ... 11.2...

127
Financial Toolbox機能概説書

Upload: hanga

Post on 30-Apr-2018

232 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

Financial Toolbox™

機能概説書

Page 2: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

はじめに

本内容は、Windows®環境にインストールされたMATLAB® R2010b を用いて記述され

ています。Linux/Mac環境にインストールされたMATLABとは操作環境のインタフェ

ースが若干異なりますがご了承願います。

本概説書はMATLABの関数群のひとつであるFinancial Toolbox機能の紹介を目的とし

ております。本概説書の中に投資分析手法を扱っている部分がございますが、特定の

投資手法等を推奨するものではありません。したがって本概説書を利用した結果、惹

起されるいかなる事態に対しても、著者および著者の属する組織は一切責任を負いま

せんのでご了承願います。

Page 3: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

目次

1 Financial Toolbox の機能について .................................................................................. 1

2 金融データのチャート作成 ............................................................................................ 2

2.1 ローソク足チャート作成 ......................................................................................... 2

2.2 高値−安値−終値チャート(High-Low-Close Chart)作成 ............................................ 3

2.3 ボリンジャーバンドチャート作成 ........................................................................... 5

3 キャッシュフローの分析と計算 ..................................................................................... 7

3.1 プロジェクト評価 .................................................................................................... 7

3.2 減価償却 ................................................................................................................ 10

3.3 年金(アニュイティ) .............................................................................................. 14

4 確定利付証券のプライシングと利回りの計算 .............................................................. 19

4.1 債券価格と利回りの計算 ....................................................................................... 19

4.2 感応度分析 ............................................................................................................. 21

4.3 ALM(資産と負債の総合管理)の考え方 .................................................................. 26

4.4 イミュニゼーション .............................................................................................. 28

5 株式デリバティブのプライシングと分析 ..................................................................... 30

5.1 オプションの損益図の作成 .................................................................................... 30

5.2 ブラック-ショールズ・モデル .............................................................................. 31

5.3 オプションの感応度分析(グリークス) .................................................................. 34

5.4 二項モデル ............................................................................................................. 45

6 GARCH 過程 ................................................................................................................ 46

7 ポートフォリオ分析 ..................................................................................................... 56

7.1 有効フロンティア .................................................................................................. 56

7.2 最適資産配分 ......................................................................................................... 60

7.3 制約条件付き資産配分 ........................................................................................... 62

7.4 VaR(バリュー・アット・リスク) ........................................................................... 65

8 金融統計 ...................................................................................................................... 71

9 Financial Time Series Object について .......................................................................... 75

9.1 Financial Time Series Object ................................................................................... 75

9.2 Financial Time Series Object の操作 ....................................................................... 78

10 テクニカル分析 .......................................................................................................... 82

10.1 MACD (移動平均収束発散法) .............................................................................. 82

10.2 ウィリアムスのパーセント・アール(W%R) ......................................................... 84

10.3 RSI ........................................................................................................................ 88

10.4 OBV(オン・バランス・ボリューム) ..................................................................... 91

Page 4: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

11 データ操作 ................................................................................................................. 95

11.1 階差 ...................................................................................................................... 95

11.2 ボックス-コックス(Box-Cox)変換 ......................................................................... 97

11.3 移動平均 ............................................................................................................. 100

12 GUI 機能の活用 ........................................................................................................ 103

付録 A. 祝日データのインポート .................................................................................. 109

付録 B. 日付計算基準(デイカウント方式)の一覧 .......................................................... 110

付録 C. 関数一覧 ............................................................................................................ 111

[参考文献] .................................................................................................................... 122

Page 5: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

1

1 Financial Toolboxの機能について

Financial Toolbox は、ファイナンス・金融工学で用いられる数理・統計分析のための計

算環境、および計算結果をグラフ化する環境を提供します。

Financial Toolboxでは、以下の分析ツールを用意しており利用可能です。

・ 債券、デリバティブ、その他の有価証券、ならびにポートフォリオに対する価

格、利回り、感応度の計算と分析

・ Securities Industry Association(SIA)準拠の確定利付証券の価格付け、利回り、感

応度分析

・ ポートフォリオ分析とマネジメント

・ ヘッジ戦略の立案と評価

・ リスクの認識、測定、管理

・ 収益率および減価償却を含むキャッシュフローの分析と計算

・ 経済活動の分析と予測

・ 外国為替商品を含む仕組み金融商品(structured financial instruments)の開発

・ 教育および学術研究

本概説書では例題をいくつかとりあげ、Financial Toolboxの機能の一部をご紹介いたしま

す。

Page 6: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

2

2 金融データのチャート作成

株価の動きをグラフ化したものをチャートと呼びますが、Financial Toolbox を利用する

ことにより、より早く簡単にチャートを作成することができます。以下にチャートの作成

例を示します。

2.1 ローソク足チャート作成

チャートの中でも代表的なものがローソク足です。ローソク足という名称は、ある期間

の株価の動きをローソクのようなもので表すことからきています。ローソク足チャートを

見ることによりある特定期間の「始値」「高値」「安値」「終値」が分かります。

「始値」「高値」「安値」「終値」をそれぞれ縦ベクトルで用意し、ローソク足チャートを

作成する関数、candle を実行し、チャート作成を行います。

>> Open = [ 3960; 3910; 3860; 3900; 3920; 3930; 3940; 3910; 3960; 3920];

>> High = [ 3980; 3940; 3900; 3910; 3940; 3940; 3970; 3920; 3960; 3950];

>> Low = [ 3950; 3910; 3860; 3870; 3910; 3920; 3930; 3900; 3920; 3920];

>> Close = [ 3970; 3920; 3890; 3880; 3940; 3940; 3960; 3920; 3930; 3950];

>>

>> candle(High, Low, Close, Open, 'black'); % キャンドルチャート作成

>> xlim([0, 11]); % 横軸の調整

>> ylim([3850, 3990]); % 縦軸の調整

>> ylabel('株価(¥)'); % 縦軸にラベルの書き込み

>> title('ローソク足(日足)'); % タイトルの書き込み

Page 7: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

3

図 2.1

2.2 高値−安値−終値チャート(High-Low-Close Chart)作成

「高値」「安値」「終値」のチャートを描きます。高値−安値−終値チャートを描く関数、

highlow を使用してグラフを描きます。

Page 8: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

4

>> figure; % 新規Figureウィンドウの表示

>> highlow(High, Low, Close); % 高値-安値-終値チャートの作成

>> xlim([0, 11]);

>> ylim([3850, 3990]);

>> ylabel('株価(¥)');

>> title('A社の株価変動');

>> dateaxis('x', 6, '12/01');

図 2.2

座標軸の目盛りを

日付に変更する関

数 dateaxis

Page 9: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

5

2.3 ボリンジャーバンドチャート作成

ボリンジャーバンドを描く関数 bolling を使用してグラフを描きます。ボリンジャー

バンドとは真中に中心線(下の例では 15 日移動平均線)を描き、上下に第 2 標準偏差線を描

きます。第 2 標準偏差線の中に 95%の確率で日々の終値が入る、というものです。バンド(帯)

が広いところと、狭いところで、前者はボラティリティが高く、後者はボラティリティが

低いということを意味します。

>> ibm = importdata('ibm.dat'); % サンプル用の株価データの読み込み

>>

>> figure;

>> bolling(ibm(:,4), 15); % ボリンジャーバンドチャートを作成

>> xlim([0, length(ibm(:,4))]);

>> ylim([min(ibm(:,4)), max(ibm(:,4))]);

>> ylabel('株価($)');

>> title('IBMのボリンジャーバンドチャート');

>> dateaxis('x', 6, '12/31');

>> legend('原系列', '15日移動平均線', '第2標準偏差線', 'Location', ...

'NorthWest'); % 凡例の挿入

ピリオドを3つ置くと

Enter キーを押しても

実行されません。

Page 10: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

6

図 2.3

Page 11: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

7

3 キャッシュフローの分析と計算

キャッシュフローの評価と金融会計に関する関数は、金利、収益率、および年金(annuity)

に関連する支払い、将来価値および現在価値、減価償却の計算等、キャッシュフローに関

する標準的計算を行います。

ここでは例題として、樹木を育成し後に板材として売るビジネスのプロジェクト評価、

固定資産会計の減価償却、住宅ローンの返済問題について取り上げ、キャッシュフローの

分析と計算に関する関数をご紹介します。

3.1 プロジェクト評価

プロジェクトや企業の価値評価の基本は、将来発生するキャッシュフローを評価するこ

とです。そして多様なキャッシュフローの流列を評価した上で投資対象を選択することに

なります。実際にいくつか異なるキャッシュフローの評価方法が使われていますが、ここ

では下の例題をとりあげ、もっともよく使われている NPV(現在価値)と IRR(内部収益率)

による方法の2つを扱います。

【例題 3.1】

樹木を育成し後に板材として販売するプロジェクトを考えます。初年度(第0年度)

に初期費用がかかり、後は樹木が伐採されるまでキャッシュフローは発生しません。

樹木の伐採は 1 年後もしくは 2 年後かを決めることができます。1 年後にすぐ伐採す

るならば、すぐに収益を得ることができます。しかしもう 1 年待てば、樹木はさら

に成長して得られる収益はより大きくなります。この 2 つの案に関するキャッシュ

フロー流列は以下のようになると仮定します。

(A) (-1000, 2000):1 年後に伐採する。

(B) (-1000, 0, 3000):2 年後に伐採する。

この 2 つのプロジェクトのうちどちらを採択するべきでしょうか?

Page 12: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

8

1) NPV(現在価値)

NPV は、以下の式で計算されます。

n

n

r

cf

r

cf

r

cfInvestmentNPV

)1()1()1( 2

21

ここで、Investment は初期投資額(キャッシュアウトフロー)、 ncf は第 n 期の収益(キャッ

シュインフロー)、r は金利です。NPV 基準とは検討するプロジェクトの NPV を計算し、

NPV が最大になるプロジェクトに投資を行うべきという考え方です。

では例題のプロジェクト評価を行いましょう。金利を 10%として計算します。Financial

Toolbox の関数 pvvar を使用し、NPV を計算します。

以下のコマンドを実行します。

>> CashFlowA = [-1000, 2000];

>> CashFlowB = [-1000, 0, 3000];

>> r = 0.1; % 利率

>>

>> NPVA = pvvar(CashFlowA, r) % キャッシュフローから現在価値を計算

NPVA =

818.1818

>>

>> NPVB = pvvar(CashFlowB, r)

NPVB =

1.4793e+003

プロジェクト(A)に投資した場合の NPV は「818.2」、プロジェクト(B)に投資した場

合は「1479.3」と出力されました。よって NPV 基準ではプロジェクト(B)の採択が推奨

されます。

Page 13: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

9

2) IRR(内部収益率)

IRR とは、キャッシュフローの現在価値と初期投資額を一致させる割引率のことです。

数式で表すと以下の方程式を満足する r のことです。

0)1()1()1( 2

21

n

n

r

cf

r

cf

r

cfInvestment

ここで、Investment は初期投資額(キャッシュアウトフロー)、 ncf は第 n 期の収益(キャッシ

ュインフロー)です。IRR 基準とは検討するプロジェクトの内部収益率を計算し、内部収益

率が最大となるプロジェクトに投資を行うべきという考え方です。

内部収益率の計算は、Financial Toolbox の関数 irr を使用すれば以下のように簡単に計算

できます。

以下のコマンドを実行します。

>> IRRA=irr(CashFlowA) % キャッシュフローから内部収益率を算出

IRRA =

1

>> IRRB=irr(CashFlowB)

IRRB =

0.7321

プロジェクト(A)に投資した場合の内部収益率は「1」、プロジェクト(B)に投資した場合は

「0.7321」と出力されました。よって IRR 基準ではプロジェクト(A)の採択を推奨するこ

とになります。

Page 14: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

10

3.2 減価償却

固定資産の減価償却について企業が有する主な選択肢は、有形固定資産の償却について

は定額法または定率法のいずれかで行うというものです。これら以外にも級数法や生産高

比例法といった方法もありますが適用例は尐ないのが現状です。無形固定資産については

定額法が広く採用されています。よって、ここでは次の例題に基づき定額法と定率法によ

る減価償却について扱いたいと思います。

定額法による毎年の減価償却費は、[(取得原価-残存価格)÷耐用年数]となります。上

記例題に当てはめると取得原価 100 万円から残存価格 10 万円を除いた要償却費 90 万円を

耐用年数 5 年間で均等に償却していくことになるので、毎年の減価償却費は 18 万円となり

ます。

定率法は[期首の未償却残高×一定率]として算定した額を各期の減価償却費とするもの

です。耐用年数を n とすれば一定率は

n

1

1

取得価格

残存価格

となります。上記例題において一定率は 0.369 となります。

減価償却額の計算には、定額法には depstln、定率法には depfixdb を使用します。以

下のように入力します。

【例題 3.2】

第 1 年度の期首に 100 万円で取得した機械について、残存価格が取得原価の 10%、

耐用年数が 5 年として減価償却を行う。減価償却スケジュールを示しなさい。

Page 15: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

11

1) 定額法

>> Cost = 1e6;

>> Salvage = Cost * 0.1;

>> Depreciation = depstln(Cost, Salvage, 5) % 定額法で減価償却費を計算

Depreciation =

180000

>> DepreciationStream = Depreciation * ones(5,1);

>> bar(1:5, DepreciationStream); % 棒グラフのを作図

>> hold on %グラフの上書きモードを宣言

>> plot(0:5, Depreciation*[0:5], '--k');

>> grid on % グリッドの表示

>> plot(0:5, Cost - Depreciation*[0:5], ':r');

>> xlabel('年度');

>> ylabel('金額');

>> title('定額法');

>> legend('減価償却費', '減価償却累計額', '未償却残高', 'Location', 'East');

>> hold off %グラフの上書きモード解除

Page 16: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

12

図 3.1

2) 定率法

>> clear all % ワークスペース上の全ての変数をクリア

>>

>> Cost = 1e6;

>> Salvage = Cost * 0.1;

>> Depreciation = depfixdb(Cost, Salvage, 5, 5) % 定率法で減価償却費を計算

Depreciation =

1.0e+005 *

3.6904 2.3285 1.4692 0.9270 0.5849

>>

>> bar(1:5, Depreciation);

>> hold on

>> plot(0:5, [0, cumsum(Depreciation)], '--k');

Page 17: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

13

>> grid on

>> plot(0:5, [Cost, Cost - cumsum(Depreciation)], ':r');

>> xlabel('年度');

>> ylabel('金額');

>> title('定率法');

>> legend('減価償却費', '減価償却累計額', '未償却残高', 'Location', 'East');

>> hold off

図 3.2

表にまとめると、およそ以下のようになります。

Page 18: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

14

表 3.1

【単位:千円】

年度

定額法 定率法

減価

償却費

減価償却

累計額

未償却

残高

減価

償却費

減価償却

累計額

未償却

残高

1 180 180 820 369 369 631

2 180 360 640 233 602 398

3 180 540 460 147 749 252

4 180 720 280 93 841 159

5 180 900 100 58 900 100

(注)千円未満は四捨五入して表示

3.3 年金(アニュイティ)

ファイナンスでは積立預金やローンの返済等にみられるような、毎年一定額のキャッシ

ュフローが発生するものをアニュイティ(annuity、年金)と呼びます。ここでは、ローンを

返済する問題を考え、アニュイティに関する関数を紹介いたします。

元本(借入金残高)を y、毎月の返済額を p、毎回の金利を r、支払い回数を n とし、y[i]

を i 回支払いを終えた時の借入金残高とすると、毎月の返済額は以下のように計算されま

す。

1回支払いを終えた時点の借入金残高は、y[0]から支払額 p を引いたものに、利息 y[0]×r

【例題 3.3】

住宅を購入するのに 20,000,000 円を借りる必要がある。A 銀行からは 30 年、毎月

返済のローンが借りられるとする。もし金利が年率 12%(月利 1%)であるならば毎月の

返済額はいくらになるか。ただし、返済方法は元利均等返済方式とする。

また、B 銀行が 15 年の毎月 220,000 円返済のローンを貸してくれるとすれば、どちら

が得か?

Page 19: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

15

を足したものになります。式に表わすと以下のようになります。

rypyy 001

pyr 01

2 回目の支払を終えた時点の借入金残高は同じように計算すると以下のようになります。

pyry 112

右辺の y[1]に先ほど求めた y[1]を代入すると以下のようになります。

pyry 112

rpyr

ppryr

ppyrr

1101

*101

011

2

2

同じような計算を繰り返すと、以下の式を得ます。

nrSpyrnyn

,1*01 ・・・ (3,1)

ここで、 121111,1

nrrrnrS

nrS ,1 は等比級数の和なので、以下のように計算されます。

r

rnrS

n11

,1

これを式(3,1)に代入すると以下を得ます。

r

rpyrny

nn 11

*01

Page 20: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

16

ここで y[n]は、n 回支払った後の借入金残高となります。n 回支払っているので y[n]は 0

でなければなりません。

011

*01

r

rpyr

nn

p について解けば毎月の支払額が求まります。

0*11

1y

r

rrp

n

n

それでは例題 3.3 のローンの返済額を求めましょう。毎期の支払額を出力する関数

amortize を使用します。支払額を計算するためには以下のように入力します。

>> RateA = 0.12/12;

>> NumPeriods = 30*12;

>> PV = 2e7;

>> [Principal, Interest, Balance, Payment] = amortize(RateA, ...

NumPeriods, PV);

>> Payment

Payment =

2.0572e+005

よって、月々の返済額は 205,720 円となります。

また、返済スケジュールをグラフ化するためには、次のように入力します。

>> plot([1, NumPeriods], [Payment, Payment],'k', 'LineWidth', 2);

>> hold on

>> fill([1:NumPeriods, NumPeriods, 1], [Principal, 0, 0], 'b');

>> fill([1:NumPeriods, NumPeriods, 1], ...

[Principal, Payment, Payment], 'r');

>> plot(Principal, '--k', 'LineWidth', 2);

指定された領域内を

塗りつぶす fill

Page 21: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

17

>> xlim([0, NumPeriods]);

>> text(250, 30000, '元金', 'FontSize', 12, 'Color', 'white');

>> text(100, 100000, '利子', 'FontSize', 12, 'Color', 'white');

>> xlabel('Payment Month');

>> ylabel('円')

>> hold off

図 3.3

次に A 銀行と B 銀行どちらを選択すべきか調べます。

A 銀行から借入れを行うと、月支払いが 205,720 円、B 銀行だと 220,000 円なので一見 A

銀行の方が得に見えます。しかし、B 銀行の利子率を調べると B 銀行の方が得だというこ

とが分かります。実際に、B 銀行の貸出条件の利子率を調べます。関数 annurate を使用

します。次のように入力します。

グラフ内に文字を

挿入する text

Page 22: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

18

>> Rate = annurate(15*12, 220000, PV)

Rate =

0.0087

>> Rate*12

ans =

0.1041

月当たりの利子率が 0.87%、年利 10.41%となります。よって支払能力に余力があるならば、

B 銀行からの借入れも検討の対象となるでしょう。

A 銀行から借入れを行った場合の返済総額は 74,059,200 円、B 銀行の場合は 39,600,000

円となり、A 銀行から借入れを行った場合の支払い総額は B 銀行の場合の支払い総額の二

倍弱になります。

Page 23: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

19

4 確定利付証券のプライシングと利回りの計算

The Securities Industry Association(SIA)は、証券の価格付け、利回り計算、相場、時間係

数や経過利子、クーポンとみなしクーポン日付、デュレーション、コンベクシティ感応度

に関する慣例を設定しています。 Financial Toolbox は、確定利付証券の経過利子を計算し、

価格と利回りを決定し、コンベクシティとデュレーションを計算する SIA 準拠の関数を

用意しています。また、金利の期間構造を生成し、分析する関数群を含みます。

4.1 債券価格と利回りの計算

以下の条件の債券価格を計算します。Financial Toolbox の利付債の価格を計算する関数

bndprice を使用します。関数 bndprice は初回利払日を考慮するなど複雑な条件の場合

の債券価格を計算することが可能です。以下で例題を実行してみます。

[債券価格の計算]

>> Settle = '11-Nov-1992'; % 受渡日

>> Maturity = '01-Mar-2005'; % 償還日

>> IssueDate = '15-Oct-1992'; % 発行日

>> FirstCouponDate = '01-Mar-1993'; % 最初のクーポン支払日

>> CouponRate = 0.0785; % クーポン・レート

>> Yield = 0.0625; % 利回り(半年複利)

>> Period = 2; % 利払回数

>> Basis = 1; % 30/360 (SIA) 日付計算基準指定

>> [Price, AccruedInt] = bndprice(Yield, CouponRate, Settle, ...

Maturity, Period, Basis, [], IssueDate, FirstCouponDate)

Price =

113.6111

AccruedInt =

0.5669

Page 24: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

20

債券価格は、113.61、経過利子 0.57 を出力します。

次に、債券価格は分かっているが利回りが分からないという場合を考えます。利回りを求

める関数 bndyield を使用します。

[利回りの計算]

>> Yield = bndyield(Price, CouponRate, Settle, Maturity, ...

Period, Basis, [], IssueDate, FirstCouponDate)

Yield =

0.0625

最終複利利回りが 6.25%と出力されます。これは債券価格を求めるときに指定した利回り

6.25%と同一となります。

この他にも Financial Toolbox には、財務省証券の価格やゼロクーポン債のような割引有

価証券の価格を計算する関数が用意されています。

Page 25: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

21

4.2 感応度分析

債券価格 P はクーポン・レートを C、額面価格を F とすると、利付債の価格利回り y の

関数として以下の式で表わされます。

n

y

FC

y

C

y

CyP

111 2

この式を y で微分すると、

n

knk

y

nF

y

kC

ydy

dP

1 111

1

と、なります。これで利回りが動いたときに債券価格がどの程度動くかが分かります。符

合がマイナスとなっているのは金利と債券価格は逆方向に動くことを示しています。

(マコーレー・)デュレーションは、以下の式で定義されます。

)(

111

yP

y

nF

y

kC

D

n

knk

デュレーション D は、キャッシュフローの時間の加重平均となっています。デュレーショ

ンは時間の単位で、たとえば「年」となります。

デュレーションによる近似を用いて利回りの変化と債券価格の変化の関係を導出すると、

y

yD

P

y

y

P

P

P

1

となります。また、修正デュレーションは、以下の式で定義されます。

Page 26: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

22

y

DD

1mod

修正デュレーションによる近似を用いて利回りの変化と債券価格の変化の関係を導出する

と、

yDP

y

y

P

P

P

mod

となります。

デュレーションを求める関数 bnddury を使用することにより簡単に計算できます。以下

のように入力します。

>> Settle = '12-Jan-2000';

>> Maturity = '01-Oct-2001';

>> CouponRate = 0.05;

>> Yield = 0.045;

>> Basis = 0; % actual/actual

>> Period = 2;

>>

>> Price = bndprice(Yield, CouponRate, Settle, Maturity, Period, Basis);

Price =

100.8112

>>

>>

>>

【例題 4.1】

受渡日 2000 年 1 月 12 日、償還日 2001 年 10 月 1 日、クーポン・レート 5%(年 2 回

利払い)、利回り 4.5%の債券のデュレーションを計算せよ。また、計算したデュレーシ

ョンを使用し、利回りが 3.5%に低下した場合の債券価格を求めよ。

Page 27: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

23

>> [ModDuration, YearDuration, PerDuration] = bnddury(Yield, ...

CouponRate, Settle, Maturity, Period, Basis)

ModDuration =

1.6107

YearDuration =

1.6470

PerDuration =

3.2940

出力結果は上から、修正デュレーション、デュレーション、半年ベースで報告される期間

単位のデュレーションとなります。半年ベースデュレーション(PerDuration)は、年率換算

されたデュレーション(YearDuration)の倍であることに注意してください。

よって、利回り1%低下時の価格変化率と債券価格は、

>> change1 = -YearDuration * (-0.01) / (1+Yield) % 価格変化率

change1 =

0.0158

>>

>> newPrice1 = Price * (1 + change1) % 債券価格

newPrice1 =

102.4001

102.4001 となります。一方、実際の債券価格は、

>> newPrice = bndprice(Yield-0.01, CouponRate, Settle, Maturity, ...

Period, Basis) % 利回りを1%下げて債券価格を算出

Page 28: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

24

newPrice =

102.4755

102.4755 となります。

デュレーションは微分を用いて利回りの変化による債券価格の変化を直線で近似してい

るため、利回りの変化が大きくなると誤差が発生します。誤差を小さくするためにデュレ

ーションと共に用いられるのがコンベクシティです。

コンベクシティ(Convexity)とはデュレーションを利回り y で微分(債券価格 P(y)を利回

り y で 2 階微分)し、P(y)で割ることによって求めることができます。

yP の2階微分は、

n

knk

y

Fnn

y

Ckk

ydy

Pd

122

2

1

1

1

1

1

1

よってコンベクシティ Cv は以下の式で定義されます。

21

1

11

1

1

1

yP

y

Fnn

y

Ckk

Cv

n

knk

では、2階微分のコンベクシティまで考慮した利回りの変化と価格変動の関係を導出しま

す。

2'''

!2!1y

yPy

yPyPyyP (テーラー展開)

2m o d

2''

'

2

1

!2

yCvyDP

P

yyP

yyPyPyyP

Page 29: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

25

コンベクシティは、関数 bndconvy で求めることができます。以下のように入力します。

>> [YearConvexity, PerConvexity] = bndconvy(Yield, CouponRate, ...

Settle, Maturity, Period, Basis)

YearConvexity =

3.4575

PerConvexity =

13.8301

価格変化率は上記公式より、

>> change2 = -ModDuration*(-0.01) + 0.5*YearConvexity*(-0.01)^2

change2 =

0.0163

よって利回り変化による新しい価格は、

>> newPrice2 = Price * (1 + change2)

newPrice =

102.4525

となり、デュレーションのみ考慮した価格よりも精度が高くなっていることが分かります。

【例題 4.2】

例題 4.1 を条件とした債券のコンベクシティを計算せよ。また、デュレーションと

コンベクシティを使って利回りが 3.5%に下落した場合の債券価格および価格変化率

を計算せよ。

Page 30: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

26

4.3 ALM(資産と負債の総合管理)の考え方

銀行は預金などで調達した資金を、貸付や有価証券を購入し運用することにより利益を

得ています。保険会社や事業会社でも同様です。確定給付型の年金制度でも将来の年金給

付を賄うように年金資産を運用する必要があります。資産面と負債面の両方の観点から総

合的に考慮・管理することにより損失を最小化し、利益を最大化しようとすることを

ALM(資産と負債の総合管理)といいます。

狭義の ALM は、金利リスクの管理のことを指し、企業や金融機関において必要不可欠

な手法として定着しています。ALM を考慮しないで資産運用をおこなったとき、金利が低

下するとどのようなことが起こるのかを例題を通して見ましょう。

資産の価値変化率と資産は、

>> changeAsset = -5 * (-0.03) / (1 + 0.06)

changeAsset =

0.1415

>> newPriceAsset = 5000 * (1 + changeAsset)

newPriceAsset =

5.7075e+003

【例題 4.3】

利回り 6%、デュレーション 5 年の確定利付証券を 5000、利回り(金利)4%、デュレー

ション 25 年の保険債務 4000 のバランスシートを持つ A 生保を考える(自己資本は

1000)。不況のため利回りがそれぞれ 3%低下しました。A 生保のバランスシートはど

のようになるか?

Page 31: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

27

およそ 5,708 となります。一方、負債の価値変化率と負債は、

>> changeLiability = -25 * (-0.03) / (1 + 0.04)

changeLiability =

0.7212

>> newPriceLiability = 4000 * (1 + changeLiability)

newPriceLiability =

6.8846e+003

およそ 6,885 となります。

利回りの低下によって資産、負債とも増加しましたがデュレーションの違いから負債の

ほうが大きく膨らむ、という結果になります。

Page 32: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

28

4.4 イミュニゼーション

ここで利回り変化のリスクから防御をする債券ポートフォリオを構築する問題を考えま

す。この手続きは、イミュニゼーションと呼ばれます。

Step1 債券の条件を入力します。

>> Settle = '19-Aug-1999';

>> Maturity = ['15-Jun-2005'; '02-Oct-2010'; '14-Mar-2025'];

>> Face = [500; 1000; 250];

>> CouponRate = [0.07; 0.066; 0.08];

>> Yield = [0.06; 0.07; 0.075];

Step2 3 証券の債券価格、デュレーション、コンベクシティを求めます。

>> [CleanPrice, AccruedInterest] = bndprice(Yield, CouponRate, ...

Settle, Maturity, 'Face', Face);

>> DirtyPrice = CleanPrice + AccruedInterest;

>> Duration = bnddury(Yield, CouponRate, Settle, Maturity, ...

'Face', Face);

>> Convexity = bndconvy(Yield, CouponRate, Settle, Maturity, ...

'Face', Face);

【例題 4.4】

B 生保はデュレーション 10.3181、コンベクシティ 157.6346 の構造をもつ保険債務

を 100,000 抱えているとする。B 生保はこの債務の支払いに備えて投資したいと考え

ている。現在投資可能な債券は以下の3種類であるとし、保険債務をイミュナイズ

するような投資方法を求めよ。債券の取得日を 1999 年 8 月 19 日とする。

クーポン・レート 額面価格 償還日

債券 1 7.00% 500 2005 年 6 月 15 日

債券 2 6.60% 1000 2010 年 10 月 2 日

債券 3 8.00% 250 2025 年 3 月 14 日

Page 33: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

29

Step3 保険債務のデュレーション・コンベクシティと一致するような 3 証券への投資割

合を求める。

>> A = [Duration.'; Convexity.'; ones(1,3)];

>> b = [10.3181, 157.6364, 1].';

>> Weight = A¥b;

Step4 ポートフォリオのデュレーション・コンベクシティを求める。

>> PortfolioDuration = Weight.' * Duration

PortfolioDuration =

10.3181

>>

>> PortfolioConvexity = Weight.' * Convexity

PortfolioConvexity =

157.6364

Step5 求めるポートフォリオの債券数を算出する。

>> PortfolioValue = 1e5;

HedgeAmount = Weight ./ DirtyPrice * PortfolioValue

HedgeAmount =

-56.4014

71.3582

216.2038

以上より、債券 1 を 56.40 枚ショート、債券 2 を 71.36 枚ロング、債券 3 を 216.20 枚ロン

グすることにより、保険債務をイミュナイズすることが可能になることが分かります。

Page 34: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

30

5 株式デリバティブのプライシングと分析

Financial Toolbox はオプションの損益の計算、ブラック-ショールズ・モデルにもとづく

オプション価格の計算、感応度分析(グリークス)のための関数、および二項モデルに基づ

くオプション評価のための関数を備えています。

5.1 オプションの損益図の作成

Financial Toolbox の関数 opprofit を利用して、以下のように入力します。

>> S = 0:5000;

>> subplot(2,2,1); % 座標軸は2×2に配置し、左上に作図

>> Profit = opprofit(S, 3000, 100, 0, 0);

>> plot(S, Profit); grid on;

>> xlim([0, 5000]); xlabel('原資産価格(¥)');

>> ylabel('payoff'); title('コールオプションの買い');

>> subplot(2,2,2); % 右上の座標軸に作図

>> Profit = opprofit(S, 3000, 100, 1, 0);

>> plot(S, Profit); grid on;

>> xlim([0, 5000]); xlabel('原資産価格(¥)');

>> ylabel('payoff'); title('コールオプションの売り');

>> subplot(2,2,3); % 左下の座標軸に作図

>> Profit = opprofit(S, 3000, 100, 0, 1);

>> plot(S, Profit); grid on;

【例題 5.1】

株式を原資産とする行使価格 3000、プレミアム 100 のオプションについて考えま

す。原資産価格によって以下のオプションポジションをとっている場合、どのように

損益が変化するか損益図を作成しなさい。

1 コールオプションの買い

2 コールオプションの売り

3 プットオプションの買い

4 プットオプションの売り

Page 35: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

31

>> xlim([0, 5000]); xlabel('原資産価格(¥)');

>> ylabel('payoff'); title('プットオプションの買い');

>> subplot(2,2,4); % 右下の座標軸に作図

>> Profit = opprofit(S, 3000, 100, 1, 1);

>> plot(S, Profit); grid on;

>> xlim([0, 5000]); xlabel('原資産価格(¥)');

>> ylabel('payoff'); title('プットオプションの売り');

図 5.1

5.2 ブラック-ショールズ・モデル

オプション評価理論の中でもっとも有名なモデルはブラック-ショールズ・モデルです。

Financial Toolbox の関数 blsprice はブラック-ショールズ・モデルに基づくオプションの

Page 36: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

32

価格を出力します。

ブラック-ショールズ・モデルの公式は次のとおりです。

Tdd

T

TrKSd

SdKedP

KedSdC

rT

rT

12

2

1

012

201

2ln

ここで、各パラメータの意味は以下のとおり。

C :コールの価格

P :プットの価格

S0 :原資産価格

K :行使価格

r :無リスク金利

T :オプションの満期までの期間(年換算)

σ :原資産のボラティリティ

Φ(d):標準正規分布の分布関数

1)オプション価格の計算

>> [Call, Put] = blsprice(17000, 17500, 0.004, 1/12, 0.253)

Call =

293.4860

【例題 5.2】

現在の株価 17000、残存期間 1 ヶ月、行使価格 17500、無リスク利子率 0.4%、ボラ

ティリティを 25.3%(年率)とした場合の、コールオプションとプットオプションの価

格はいくらになるか?また、株価によってオプション価格がどのように変化するのか

を図示しなさい。

Page 37: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

33

Put =

787.6536

2)グラフの作成

>> S0 = 12000:22000;

>> [Call, Put] = blsprice(S0, 17500, 0.004, 1/12, 0.253);

>> subplot(2,1,1);

>> plot(S0, Call);grid on;

>> xlabel('原資産価格(¥)');ylabel('call option');

>> title('コールオプションの価格');

>> subplot(2,1,2);

>> plot(S0, Put);grid on;

>> xlabel('原資産価格(¥)');ylabel('put option');

>> title('プットオプションの価格');

図 5.2

Page 38: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

34

次に、オプション価格からインプライド・ボラティリティを求めます。この時は、blsimpv

関数を使用します。

>> Volatility = blsimpv(17000, 17500, 0.004, 1/12, 293.49, ...

[], [], [], {'Call'})

Volatility =

0.2530

このように、例題 5.2 にて算出されたコール・オプションの値を指定すれば、問題に登場

したボラティリティの値と一致することが分かります。

5.3 オプションの感応度分析(グリークス)

オプション価格の各種感応度は、通常ギリシャ文字を用いて表わされます。ここでは、

Financial Toolbox に用意されている、オプション価格の、原資産価格 S0 の変化に対する

感応度デルタ(Δ)、さらにその 2 階の感応度ガンマ(Γ)、時間 T の変化に対する感応度

セータ(Θ)、ボラティリティの σ の変化に対する感応度ベガ(κ)、金利 r の変化に対する

感応度ロー(ρ)を分析する関数を紹介します。

1) デルタ(Δ)

デルタとは原資産価格の変化に対するそのオプションのプレミアムの感応度を表わしま

す。たとえばあるオプションのデルタが 0.7 とは、原資産価格が 1%動いた場合コールオプ

【例題 5.4】

例題 5.2 の条件の株式オプションの感応度分析を行いなさい。

【例題 5.3】

現在の株価 17000、残存期間 1 ヶ月、行使価格 17500、無リスク利子率 0.4%、コール

オプションの価格が 293.49 の時のインプライド・ボラティリティはいくつか?

Page 39: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

35

ションが 0.7%動くことを意味しています。

デルタは上記ブラック-ショールズ公式を原資産価格 S0 で微分することによって求めるこ

とができ、以下のように定義されます。

コール:Δcall=Φ(1d )

プット:Δput=Φ( 1d )-1

では実際に分析してみましょう。デルタを出力するには、関数 blsdelta を使用します。

>> [CallDelta, PutDelta] = blsdelta(17000, 17500, 0.004, 1/12, 0.253)

CallDelta =

0.3610

PutDelta =

-0.6390

株価水準によってデルタはどのように変化するのかを見てみましょう。以下のようにコマ

ンドを入力します。

>> S0 = 12000:22000;

>> [CallDelta, PutDelta] = blsdelta(S0, 17500, 0.004, 1/12, 0.253, 0);

>> plot(S0, CallDelta);grid on;hold on;

>> plot(S0, PutDelta,'r'); grid on;

>> legend('CallDelta', 'PutDelta', 'Location', 'NorthWest');

>> xlabel('原資産価格(¥)');ylabel('delta');

>> title('原資産価格とデルタの関係')

>> hold off

Page 40: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

36

図 5.3

デルタは原資産価格の変化に対するオプション価格の感応度を表わしています。このた

め、オプションを 1 単位のロングポジションに対して、原資産を Δ 単位ショートすること

で価格変動リスクをなくすことができます。この考え方をデルタ・ヘッジと呼びます。

たとえばある投資家が 100 円で、デルタが 0.5 の株式コールオプションを 30 単位ロング

しているとします。オプション 30 単位で 3000 株が買えるものとすると、この投資家は 1500

株の株式をショートすることで株式の価格変化に対するオプションの価格変動リスクをヘ

ッジできることになります。

2) ガンマ(Γ)

ガンマとは原資産価格の価格変化に対するそのオプションのデルタの感応度を表わしま

す。ガンマは以下のようになります。

Page 41: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

37

TS

d

0

1'

ガンマを出力するには、関数 blsgamma を使用します。

>> Gamma = blsgamma(17000, 17500, 0.004, 1/12, 0.253)

Gamma =

3.0161e-004

株価水準によるガンマを見るには以下のように入力します。

>> S0 = 12000:22000;

>> Gamma = blsgamma(S0, 17500, 0.004, 1/12, 0.253);

>> plot(S0, Gamma); grid on;

>> xlabel('原資産価格(¥)');ylabel('gamma');

>> title('原資産価格とガンマの関係');

Page 42: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

38

図 5.4

3) セータ(Θ)

セータとは時間の変化に対するそのオプション価格の感応度を表わします。セータは以

下のように表わされます。

2

10

210

2

'

2

'

drKeT

dS

drKeT

dS

rT

put

rT

call

プット:

コール:

セータを出力するには、関数 blstheta を使用します。

Page 43: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

39

>> [CallTheta, PutTheta] = blstheta(17000, 17500, 0.004, 1/12, 0.253)

CallTheta =

-2.8130e+003

PutTheta =

-2.7430e+003

株価水準とセータの関係を見るには、以下のコマンドを入力します。

>> S0 = 12000:22000;

>> [CallTheta, PutTheta] = blstheta(S0, 17500, 0.004, 1/12, 0.253, 0);

>> plot(S0,CallTheta); grid on; hold on;

>> plot(S0,PutTheta,'r');

>> legend('CallTheta','PutTheta');

>> xlabel('原資産価格(¥)');ylabel('theta');

>> title('原資産価格とセータの関係');

>> hold off;

Page 44: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

40

図 5.5

4)ロー(ρ)

ローとは無リスク利子率の変化に対するそのオプション価格の感応度を表わします。ロ

ーは以下の式で表わされます。

2

2

dKTerho

dKTerho

rT

put

rT

call

プット:

コール:

ローを出力する関数 blsrho を使用します。

>> [CallRho, PutRho] = blsrho(17000, 17500, 1/12, 1/12, 0.253)

CallRho =

532.3095

Page 45: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

41

PutRho =

-915.9316

株価水準とローの関係を見るには、以下のコマンドを入力します。

>> S0 = 12000:22000;

>> [CallRho, PutRho]= blsrho(S0, 17500, 0.004, 1/12, 0.253, 0);

>> plot(S0,CallRho); grid on; hold on;

>> plot(S0,PutRho,'r');

>> legend('CallRho', 'PutRho', 'Location', 'NorthWest');

>> xlabel('原資産価格(¥)');ylabel('rho');title('原資産価格とローの関係');

>> hold off;

図 5.6

Page 46: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

42

5) ベガ(κ)

ベガとはボラティリティの変化に対するそのオプション価格の感応度を表わします。ベ

ガは以下の式で表わされます。

10 ' dTS

ベガを出力する関数 blsvega を使用します。

>> Vega = blsvega(17000, 17500, 0.004, 1/12, 0.253)

Vega =

1.8377e+003

株価水準とベガの関係を見るには、以下のように入力します。

>> S0 = 12000:22000;

>> Vega = blsvega(S0, 17500, 0.004, 1/12, 0.253, 0);

>> plot(S0,Vega); grid on;

>> xlabel('原資産価格(¥)');ylabel('vega');

>> title('原資産価格とベガの関係');

Page 47: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

43

図 5.7

最後にガンマが原資産価格、満期までの時間の関係でどのように変化するのか 3 次元プ

ロットを作成します。以下のように入力します。

>> s0 = 12000:100:22000; % 原資産価格を100円刻み

>> t = 1:21; %1ヵ月を21日とする

>> t = t / (21*12); % 年換算

>> [S0, T] = meshgrid(s0, t); % 3次元プロットのための配列の作成

>> Pad = ones(size(S0));

>> Gamma = blsgamma(S0, 17500*Pad, 0.004*Pad, T, 0.253*Pad);

>> CallDelta = blsdelta(S0, 17500*Pad, 0.004*Pad, T, 0.253*Pad);

>> mesh(S0, T*(21*12), Gamma, CallDelta);

>> axis([12000 22000 1 21 0 0.0015]);

>> xlabel('株価(¥)'); ylabel('満期日(日)');

>> title('Call Option Sensitivity Measures');

Page 48: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

44

図 5.8

y 軸の満期日(日)の「21」の部分を切り出せば、「2) ガンマ」で扱った原資産価格とガン

マの関係図と同じ図が得られることが分かります。

Page 49: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

45

5.4 二項モデル

二項モデルとは、オプションの原資産価格が一定期間経過したときに上昇するか下落す

るかの 2 つの状態しかない場合を想定して、オプションの価値を導出するオプション評価

モデルです。Financial Toolbox には二項モデルによってオプションの価値を計算する関数

binprice が用意されています。

>> [Price, Option] = binprice(50, 50, 0.10, 5/12, 1/12, 0.40, 0)

Price =

50.0000 56.1200 62.9892 70.6991 79.3528 89.0656

0 44.5474 50.0000 56.1200 62.9892 70.6991

0 0 39.6894 44.5474 50.0000 56.1200

0 0 0 35.3611 39.6894 44.5474

0 0 0 0 31.5049 35.3611

0 0 0 0 0 28.0692

Option =

4.4885 2.1625 0.6360 0 0 0

0 6.9597 3.7711 1.3017 0 0

0 0 10.3613 6.3780 2.6641 0

0 0 0 14.6389 10.3106 5.4526

0 0 0 0 18.4951 14.6389

0 0 0 0 0 21.9308

オプション価格は 4.49 と出力されます。

【例題 5.5】

配当のない株式の 5 ヶ月プットオプションを考える。現時点の株価 50、行使価格 50、

無リスク金利 10%(年率)、ボラティリティを 40%(年率)とします。このオプションの

価値を二項モデルにより評価せよ。オプション期間の長さを 1 ヶ月とせよ。

Page 50: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

46

6 GARCH過程

ここではIBMの株価収益率を題材にGARCH過程に関する話題を扱います。まずはデータ

をプロットします。期間は1993年8月30日から1995年9月21日(データ数は452)です。

>> data = importdata('ibm.dat');

>> Price = data(:,4);

>> Return = tick2ret(Price, [], 'Continuous');

>> plot(Return);

>> xlim([0 length(Return)]);

>> title(['収益率 19', num2str(data(1,1)),'~19', num2str(data(end,1))]);

図 6.1

ボラティリティ(標準偏差)の推移をプロットします。データ・ウィンドウの長さを 21 日間

としてボラティリティの推移を見ます。

価格から収益率へ変換す

る Financial Toolbox の関

数 tick2ret を使用し、

株価を対数収益率へ変換

しています。

Page 51: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

47

>> Volatility=zeros(452-21+1, 1); % 初期化

>> for n = 1:452-21+1

Volatility(n)=sqrt(252)*std(Return(n:n+20));% 年率化

end

>> plot(Volatility);

>> xlim([0 length(Volatility)]);

>> title('ボラティリティ(年率%)の推移');

図 6.2

上の図を見ると、ある程度の長期をとれば収益率のボラティリティは一定ではなく

(heteroskedastic)、時間を通じて変化していることが分かります。ただしボラティリティが

大きい後は大きい状態が続き、小さい後は小さい状態が続くという特徴からボラティリテ

ィの時間的変化はある程度予測可能です。ボラティリティを予測する代表的なモデルとし

て、ARCH(Auto Regressive Conditional Heteroskedasticity)モデル、そして ARCH モデルを一

般化した GARCH(generalized ARCH)モデルがあります。

Page 52: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

48

ARCH(p) / GARCH(p, q)モデル

(6.1)

ただし、 に従うとします。

ここで t 期首に利用可能な情報を与えたときの条件付分散を

(6.2)

とモデル化したものを ARCH モデルといい、ARCH(p)と記します。また、

(6.3)

とモデル化しものを GARCH モデルといい、GARCH(p, q)と記します。

(6.1)式は収益率 tr の条件付分布が確定項tXb' と確率項 t の和に従うことを意味していま

す。そして(6.2)式および(6.3)式で t 期の条件付分散2

t の変化が定式化されます。(6.2)式

では、t 期の条件付分散は t-1 期から t–p 期までの過去の収益率の残差変動の二乗の線形

結合で説明されると考えるものです。これによって過去の残差変動が大きいときは今期の

条件付分散も大きく、小さいときには小さい時期が持続することを説明できます。

また、(6.3)式は過去の収益率の残差変動だけでなく過去の条件付分散にも依存すると考

えるものです。

[IBM 株価収益率への応用]

では実際に IBM株価収益率を用いて ARCH(1)モデルをあてはめパラメータの推定を行

います。ARCH 推定は Financial Toolbox の関数 ugarch を使用します。

IBM 株価収益率は以下のモデルで表わされるとします。

tt br

以下のコマンドを実行します。

Page 53: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

49

>> X = ones(length(Return),1);

>> [b, bint, ep] = regress(Return, X);

>> b

b =

0.0017

>>

>> [kappa, alpha, beta] = ugarch(ep, 0, 1)

____________________________________________________________

診断情報

変数の数: 2

関数

Objective: ugarchllf

Gradient: finite-differencing

Hessian: finite-differencing (or Quasi-Newton)

Constraints

Nonlinear constraints: do not exist

Number of linear inequality constraints: 1

Number of linear equality constraints: 0

Number of lower bound constraints: 2

Number of upper bound constraints: 0

選択したアルゴリズム

medium-scale: SQP, Quasi-Newton, line-search

____________________________________________________________

診断情報の終了

Max Line search Directional First-order

Iter F-count f(x) constraint steplength derivative optimality Procedure

0 3 -843.236 -2.981e-005

1 39 -997.188 -0.001352 1.16e-010 -1.14e+007 1.17e+005

Statistics Toolbox™の回帰

分 析 を 実 行 す る 関 数

regress を使用。

Page 54: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

50

2 42 -1023.85 -1.11e-016 1 -24.5 1.28e+005

3 45 -1024.18 0 1 -1.28e+005 1.28e+005 Hessian modified

4 49 -1127.56 0 0.5 -1.28e+005 5.51e+004 Hessian modified twice

5 53 -1178.15 0 0.5 -1.77e+005 1.34e+005 Hessian modified twice

6 59 -1178.62 -0.0002958 0.125 -19.7 3.48e+004

7 65 -1178.64 -0.0002801 0.125 -30.4 2.81e+004

8 68 -1178.64 0 1 -13.6 2.15e+003

9 71 -1179 -0.0002979 1 -18.9 2.98e+003

10 74 -1179.01 -0.0003009 1 -3.02 279

11 77 -1179.01 -0.0003023 1 -0.994 514

12 80 -1179.01 -0.0003021 1 -5.49 261

13 83 -1179.01 -0.0003021 1 -0.372 0.392 Hessian modified

Local minimum possible. Constraints satisfied.

fmincon stopped because the size of the current search direction is less than

twice the default value of the step size tolerance and constraints were

satisfied to within the selected value of the constraint tolerance.

<stopping criteria details>

アクティブな不等式制約がありません。

kappa =

3.0405e-004

alpha =

Empty matrix: 0-by-1

beta =

0.0471

>>

>> LogLikelihood = ugarchllf([kappa; beta], ep, 0, 1)

対数尤度を出力する関数

ugarchllf を使用。

Page 55: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

51

LogLikelihood =

-1.1790e+003

以上より、以下の結果を得ました。

2

1

2 0471.0000304.0

0017.0

tt

ttr

対数尤度 = 1179

つぎに GARCH(1,1)モデルを適用して推定します。

>> [kappa, alpha, beta] = ugarch(ep, 1, 1)

____________________________________________________________

診断情報

変数の数: 3

関数

Objective: ugarchllf

Gradient: finite-differencing

Hessian: finite-differencing (or Quasi-Newton)

Constraints

Nonlinear constraints: do not exist

Number of linear inequality constraints: 1

Number of linear equality constraints: 0

Number of lower bound constraints: 3

Number of upper bound constraints: 0

選択したアルゴリズム

medium-scale: SQP, Quasi-Newton, line-search

____________________________________________________________

診断情報の終了

Page 56: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

52

Max Line search Directional First-order

Iter F-count f(x) constraint steplength derivative optimality Procedure

0 4 -1176.48 -2.981e-005

1 45 -1176.75 -3.165e-005 7.28e-012 -2.53e+005 4.57e+004

2 49 -1177.93 2.082e-017 1 -31.8 9.39e+006

3 55 -1180.23 -1.271e-021 0.25 -2.57e+003 7.73e+006

4 65 -1182.66 -2.327e-006 0.0156 -1.17e+003 1.98e+006

5 74 -1182.68 -4.355e-006 0.0313 -53.6 1.28e+006

6 80 -1182.8 -4.232e-006 0.25 -34.3 1.46e+006

7 84 -1183.3 -4.235e-022 1 -101 2.24e+006

8 88 -1183.97 -1.028e-006 1 -231 9.34e+005

9 92 -1184 0 1 -122 8.93e+005

10 96 -1184.11 -5.878e-007 1 -97.8 2.09e+005

11 100 -1184.12 -5.239e-007 1 -20.4 5.07e+004

Local minimum possible. Constraints satisfied.

fmincon stopped because the predicted change in the objective function

is less than the selected value of the function tolerance and constraints

were satisfied to within the selected value of the constraint tolerance.

<stopping criteria details>

アクティブな不等式制約 (options.TolCon = 1e-006 内):

lower upper ineqlin ineqnonlin

1

kappa =

2.5239e-006

alpha =

0.9744

beta =

0.0174

Page 57: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

53

>> LogLikelihood = ugarchllf([kappa; alpha; beta], ep, 1, 1)

LogLikelihood =

-1.1841e+003

2

1

2

1

2 9744.00174.00000025.0

0017.0

ttt

ttr

対数尤度 = 1184

GARCH(1,1)モデルをあてはめた2ˆt を出力します。GARCH モデルにあてはめた

2ˆt とそ

の予測値を出力する関数 ugarchpred を使用します。

>> N = length(ep);

>> VarianceForecast = zeros(N, 1);

>> for n = 1:N

[VarianceForecast(n), H] = ugarchpred(ep(1:n), kappa, alpha, beta, 1);

end

>> plot(H);

>> xlim([0, N]); xlabel('time');

>> title('GARCH(1,1)モデル')

Page 58: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

54

図 6.3

最後に、2

t の 1 期先予測をプロットします。

>> figure; plot(VarianceForecast);

>> xlim([0, N]); xlabel('time');

>> title('条件付分散の1期先予測')

Page 59: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

55

図 6.4

Page 60: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

56

7 ポートフォリオ分析

7.1 有効フロンティア

ここではポートフォリオ分析に関する問題をいくつか考えます。扱うデータは次のよう

な期待収益率、標準偏差、相関行列をもつ新興企業 A 社、B 社、C 社の株価の日次リター

ンとします。

表 7-1

日次リターンの統計量

期待収益率 ボラティリティ

A社 0.48% 6.63%

B 社 0.34% 4.32%

C社 0.16% 3.96%

日次リターンの相関係数

A社 B 社 C社

A社 1.00

B 社 0.25 1.00

C社 0.28 0.47 1.00

ここでは、上記の 3 社の株式で構成されるポートフォリオの有効フロンティアを計算す

ることを考えます。有効フロンティアに関する関数 frontcon を使用します。リスク回避

的な投資家は有効フロンティアだけを考えることになります。

以下のように入力します。

>> ExpReturn = 252.*[0.0048 0.0034 0.0016 ]; % 年率変換

>> Volatility = sqrt(252).*[0.0663 0.0432 0.0396]; % 年率変換

>> Correlation = [1.00, 0.25, 0.28; 0.25, 1.00, 0.47; 0.28, 0.47, 1.00];

>> ExpCovariance = corr2cov(Volatility, Correlation);

>> NumPorts = 20; % 構成ウェイトを計算する点の数

>> portopt(ExpReturn, ExpCovariance, NumPorts); %有効フロンティアのプロット

Page 61: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

57

図 7.1

各点のボラティリティ、期待収益率、3 社株式の構成比率を計算するには以下のように入

力します。

>> [PortRisk, PortReturn, PortWts] = frontcon(ExpReturn,...

ExpCovariance, NumPorts)

PortRisk =

0.5461

0.5470

0.5498

0.5542

0.5605

0.5684

0.5779

Page 62: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

58

0.5889

0.6014

0.6153

0.6304

0.6467

0.6703

0.7043

0.7474

0.7981

0.8550

0.9170

0.9830

1.0525

PortReturn =

0.6703

0.6987

0.7271

0.7555

0.7838

0.8122

0.8406

0.8690

0.8974

0.9258

0.9541

0.9825

1.0109

1.0393

1.0677

1.0961

1.1244

1.1528

1.1812

1.2096

PortWts =

0.1244 0.3676 0.5079

Page 63: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

59

0.1450 0.3937 0.4613

0.1655 0.4197 0.4148

0.1861 0.4457 0.3682

0.2066 0.4718 0.3216

0.2272 0.4978 0.2750

0.2477 0.5239 0.2284

0.2683 0.5499 0.1818

0.2889 0.5759 0.1352

0.3094 0.6020 0.0886

0.3300 0.6280 0.0420

0.3564 0.6436 0

0.4368 0.5632 0

0.5173 0.4827 0

0.5977 0.4023 0

0.6782 0.3218 0

0.7586 0.2414 0

0.8391 0.1609 0

0.9195 0.0805 0

1.0000 0 0

この 3 社の株式をランダムに組み合わせたポートフォリオの期待収益率・ボラティリテ

ィのセットの点と有効フロンティアを同時プロットします。以下のように入力します。

>> Weights = rand(1000,3); % 一様乱数による1000×3の重み行列を生成

>> Weights = Weights./repmat(sum(Weights,2),[1,3]);% 各行の和を1に標準化

>> [PortRisk, PortReturn] = portstats(ExpReturn, ExpCovariance, Weights);

>>

>>

>>

>> hold on

>> plot (PortRisk, PortReturn, '.r')

>> title('Mean-Variance Efficient Frontier and Random Portfolios')

>> hold off

ポートフォリオの収益率と

リスク(標準偏差)を計算する

関数 portstats を使用。

Page 64: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

60

図 7.2

7.2 最適資産配分

無リスク資産を考慮した資産配分問題を考えます。無リスク資産を考慮すると、最適ポ

ートフォリオは無リスク資産へと接点ポートフォリオと呼ばれる資産への配分の組み合わ

せた点への資産配分が最適となります。

接点ポートフォリオ、最適ポートフォリオを求めるには以下のように入力します。

>> ExpReturn = 252.*[0.0048 0.0034 0.0016 ]; % 年率変換

>> Volatility = sqrt(252).*[0.0663 0.0432 0.0396]; % 年率変換

>> Correlation = [1.00, 0.25, 0.28; 0.25, 1.00, 0.47; 0.28, 0.47, 1.00];

>> ExpCovariance = corr2cov(Volatility, Correlation);

>> NumPorts = 20;

>> NumPorts = 20;

>> [PortRisk, PortReturn, PortWts] = portopt(ExpReturn, ...

ExpCovariance, NumPorts);

>> RisklessRate = 0.08; %無リスク利子率

Page 65: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

61

>> BorrowRate = 0.12; %借入れ利子率

>> RiskAversion = 3; %投資家の危険回避係数

>> portalloc (PortRisk, PortReturn, PortWts, RisklessRate, ...

BorrowRate, RiskAversion);

図 7.3

>> [RiskyRisk, RiskyReturn, RiskyWts, RiskyFraction,...

OverallRisk, OverallReturn] = portalloc(PortRisk, ...

PortReturn, PortWts, RisklessRate, BorrowRate, RiskAversion)

RiskyRisk =

0.6500

RiskyReturn =

0.9872

0 0.2 0.4 0.6 0.8 1 1.2 1.40

0.2

0.4

0.6

0.8

1

1.2

1.4Optimal Capital Allocation

Risk (Standard Deviation)

Exp

ecte

d R

etur

n

Optimal Overall PortfolioOptimal Risky Portfolio

Page 66: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

62

RiskyWts =

0.3697 0.6303 0

RiskyFraction =

0.7158

OverallRisk =

0.4652

OverallReturn =

0.7294

7.3 制約条件付き資産配分

ここでは制約がある場合の資産配分問題を考えます。ここで扱うデータは以下のような

期待収益率、分散・共分散行列をもつものとします。

表 7.2

X社 Y社 Z社

期待収益率 10% 20% 15%

業種 情報・通信 電気・ガス 電気・ガス

分散・共分散行列 X社 Y社 Z社

X社 0.005

Y社 -0.010 0.040

Z社 0.004 -0.002 0.023

Page 67: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

63

制約 1:任意の資産への配分比率の制約は、ポートフォリオの価値の 10%までの空売りが可

能で、最大 110%の配分が可能とします。

制約 2:電気・ガスへの最大配分比率はポートフォリオの 80%まで、情報・通信への最大

配分比率は 70%までとします。

関数 frontcon を使用し、制約条件を引数に指定し有効フロンティアを計算します。ここ

では有効フロンティア上の 8 つの点を考えます。

>> ExpReturn = [0.1 0.2 0.15];

>> ExpCovariance = [0.005, -0.010, 0.004;

-0.010, 0.040, -0.002;

0.004, -0.002,0.023];

>> NumPorts = 8;

制約 1 を満たすようにするためには以下のように入力します。行列の 1 行目が配分比率の

下限、2 行目が上限となります。列は対応する資産を表わします。

>> AssetBounds = [-0.10, -0.10, -0.10;

1.10, 1.10, 1.10];

制約 2 を満たすようにするためには以下のように入力します。

まずはグループ分けを行います。グループ分けするためには以下のように入力します。列

は対応する資産、行で 0,1 を指定することによりグループ分けを行います。下記の例だと

1 行目で Y 社、Z 社を同じグループ、電気・ガスへ分類し、2 行目で X 社を別のグループ、

情報・通信に分類したことになります。

>> Groups = [0, 1, 1;

1, 0, 0];

次に各グループへの配分比率の制約条件を指定します。各行は上で指定したグループに

対応します。以下の例だと電気・ガスへの配分比率を 80%、情報・通信への配分比率を 70%

に制限したことになります。

>> GroupBounds = [0, 0.80; 0, 0.70];

制約条件つき有効フロンティアは以下のように入力することにより得ることができます。

Page 68: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

64

>> frontcon(ExpReturn,ExpCovariance, NumPorts, [], AssetBounds, Groups,

GroupBounds);

最後に以下のように入力することにより有効フロンティア上の点を出力します。

>> [PortRisk, PortReturn, PortWts] = frontcon(ExpReturn, ...

ExpCovariance, NumPorts, [], AssetBounds, Groups, GroupBounds)

PortRisk =

0.0416

0.0499

0.0624

0.0767

0.0920

0.1100

0.1378

0.1716

PortReturn =

0.1279

0.1361

0.1442

0.1524

0.1605

0.1687

0.1768

0.1850

PortWts =

0.7000 0.2582 0.0418

0.6031 0.3244 0.0725

0.4864 0.3708 0.1428

0.3696 0.4172 0.2132

0.2529 0.4636 0.2835

Page 69: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

65

0.2000 0.5738 0.2262

0.2000 0.7369 0.0631

0.2000 0.9000 -0.1000

7.4 VaR(バリュー・アット・リスク)

過去の相場変動をベースに収益率が正規分布にしたがっていると仮定して統計的手法を

用い、現在保有しているポジションがどの程度リスクを抱えているのかを金額ベースで推

定することを VaR(バリュー・アット・リスク)といいます。

有価証券の特定期間の収益率(R)が、平均 μ、分散2 の正規分布に従っているとしま

す。ここで、確率 α で有価証券の価値が一日で下落する最大幅を求める問題を考えます。

この最大の下落幅のことを水準 100α%のバリュー・アット・リスク(VaR)といいます。

有価証券の現在価値を 0Q 、T 日後の価値を TQ とすれば、水準 100α%の VaR とは、

zQQP T 0 0z

を満たす z のことです。T 日後の価値 TQ が確率変数であり、下落幅 0QQT が z 以内と

なる確率 α が与えられています。収益率の定義より

RQQQT 00

となるので水準 100α%の VaR は、

10 zRQP 0z

を満たす z と書き直すことができます。 z を求めるためには正規分布表を利用します。

上記の式を正規分布表が利用可能なように変形していきましょう。正規分布の標準化を

行います。 oQzr とおけば、

1rRP

rRP

となります。生存関数と密度関数の対称性により、

1rLrRP

Page 70: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

66

となります。生存関数、

x

y dyexL 22

2

1)( 0x

で定義される標準正規分布のパーセント点を x とすれば、

xQz 0

が求める VaR となります。

代表的なパーセント点を以下に表示しておきます。分布関数のパーセント点をもとめる

関数 norminv を利用して 1%、5%、10%のパーセント点を求めましょう。たとえば 90%パー

セント点は以下のように入力することにより求めることができます。

>> norminv(0.90, 0, 1)

ans =

1.2816

標準正規分布の分布関数の 90%分位点、1.2816 を戻り値として返します。

表 7-3

標準正規分布のパーセント点

100(1-α ) 10 5.0 1

xα 1.2816 1.6449 2.3263

多くの金融機関では水準 99%で評価するようです。

【例題 7.1】

7.1 節でとりあげた A 社、B 社、C 社の株式のウェイトをそれぞれ 3 分の 1 としたポ

ートフォリオを考えます。このポートフォリオを 5 日間保有する場合の VaR を求めな

さい。ただし現在のポートフォリオの市場価値を 10 億円とし、評価する水準は 90%、

95%、99%とします。

Page 71: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

67

VaR を計算する関数 portvrisk を使用します。ポートフォリオの VaR を求めるためには

以下のように入力します。

>> ExpReturn = 5.*[0.0048 0.0034 0.0016 ]; % 5日間の収益率へ変換

>> Volatility = sqrt(5).*[0.0663 0.0432 0.0396]; % 5日間のボラティリティへ変換

>> Correlation = [1.00, 0.25, 0.28; 0.25, 1.00, 0.47; 0.28, 0.47, 1.00];

>> ExpCovariance = corr2cov(Volatility, Correlation);

>> PortWts = 1/3 .* ones(1,3);

>>

>> [PortRisk, PortReturn] = portstats(ExpReturn, ExpCovariance, ...

PortWts);

>> RiskThreshold = [0.01;0.05;0.10];

>> PortValue = 1e9;

>> ValueAtRisk = portvrisk(PortReturn, PortRisk, RiskThreshold, ...

PortValue)

ValueAtRisk =

1.0e+008 *

1.7629

1.1986

0.8978

上から水準 99%、95%、90%VaR となります。たとえばポートフォリオの水準 99%VaR は

約 1 億 7629 万円となります。

これは 99%VaR が最小となるようなポートフォリオを求める問題です。Optimization

Toolbox™の制約条件付き問題と解くための最適化ソルバー関数 fmincon を使用すると簡

単に最適なウェイトが見つかります。まずは、このソルバー関数を使用するために以下の

ような関数 MATLAB ファイル「portweight2var.m」を用意します。

【例題 7.2】

7.1 節でとりあげた A 社、B 社、C 社の株式のウェイトを 99%VaR が最小となるよう

に配分しなさい。

Page 72: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

68

function VaR = portweight2var(PortWts, ExpReturn, ExpCovariance, ...

RiskThreshold, PortValue)

[PortRisk, PortReturn] = portstats(ExpReturn, ExpCovariance, PortWts);

VaR = portvrisk(PortReturn, PortRisk, RiskThreshold, PortValue);

次に、コマンド・ウィンドウ上で以下を入力します。ここで、最適化の際の制約条件とし

て、「(ウェイトの総和) = 1」および「0≦(各ウェイト)≦1」という条件を fmincon の引

数として与えております。

>> ExpReturn = 5.*[0.0048 0.0034 0.0016 ];

>> Volatility = sqrt(5).*[0.0663 0.0432 0.0396];

>> Correlation = [1.00, 0.25, 0.28; 0.25, 1.00, 0.47; 0.28, 0.47, 1.00];

>> ExpCovariance = corr2cov(Volatility, Correlation);

>> RiskThreshold = 0.01; % 99%VaR

>> PortValue = 1e9;

>>

>> objfun = @(x)portweight2var(x, ExpReturn, ExpCovariance, ...

RiskThreshold, PortValue);

>> x0 = 1/3.*ones(1,3); % 最適化のための初期値

>> optimopt = optimset('Algorithm', 'sqp', ...

'Display', 'off'); % ソルバーの設定

>>

>>

>> [optW, minVaR] = fmincon(objfun, x0, [], [], ones(1,3), 1, ...

zeros(1,3), ones(1,3), [], optimopt);

>>

>>

>> optW

optW =

0.1439 0.3923 0.4638

>>

>> minVaR

minVaR =

1.6540e+008

Optimization Toolbox™の制

約条件付き最適化用ソル

バー関数 fimncon。

(ウェイトの総和) = 1 0≦(各ウェイト)≦1

最適化のための

目的関数を設定。

Page 73: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

69

よって、A 社のウェイト 14.39%、B 社のウェイト 39.23%、C 社のウェイト 46.38%のとき最

小 VaR「1 億 6540 万円」を達成します。それでは、このウェートが最適であることを視覚

的に確認してみましょう。

>> s = 1e-2; % 100ベーシスポイントずつデータ点作成

>> VaR = nan(1/s+1); % Not a Numberによる初期化

>> for k = 0:1/s

wA = k*s.*ones(1/s+1-k, 1); % A社のウェイト

wB = linspace(0,1-k*s,length(wA)).'; % B社のウェイト

wC = ones(1/s+1-k,1)-(wA+wB); % C社のウェイト

PortWts=[wA wB wC];

[PortRisk, PortReturn] = portstats(ExpReturn, ExpCovariance, PortWts);

VaR(1:end-k,k+1) = portvrisk(PortReturn, PortRisk, ...

RiskThreshold, PortValue);

end

>>

>> figure; mesh(0:s:1, 0:s:1, VaR);

>> hold on

>> plot3(optW(1), optW(2), minVaR, 'ro', ...

'MarkerFaceColor', [1 0 0], 'MarkerSize', 8);

>> title('各社のウェートによるVaR');

>> xlabel('A社のウェート');

>> ylabel('B社のウェート')

>> view(-45, 28);

>> legend('VaR曲面', '最適解');

>> hold off

この結果、最適解として算出されたウェート optW は 99%VaR を最小としていることが分

かります(図 7.4)

Page 74: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

70

図 7.4

Page 75: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

71

8 金融統計

Financial Toolboxは多変数の回帰モデルを扱うことができます。ここでは、多変数正規回

帰モデルのパラメータを推定する関数mvnrmleと、標準誤差を算出する関数mvnrstdの使

用例を示します。その他にも、欠損値がある場合の多変数回帰モデル等を扱うことができ

ますが、詳細はヘルプ機能をご参照ください。

A 社、B 社、C 社の過去の 50 日分の収益率をから、各銘柄のベータ値とアルファ値を推

定する問題を考えます。市場ポートフォリオとして、ある指数となるデータ(Xidx)を用い

ます。あらかじめ必要となるデータを MAT-ファイル(capmdata.mat)として保存しておきま

す。多変量タイプの回帰モデルで推定すると、推定するモデルは以下のものとなります。

t

t

t

t

t

t

t

t

t

x

x

x

y

y

y

3

2

1

3

3

2

2

1

1

3

2

1

10000

00100

00001

以下のように入力します。

>> load capmdata

>> % A: A社の株価収益率

>> % B: B社の株価収益率

>> % C: C社の株価収益率

>> % Xidx: サンプル用説明変数

>>

>> Data = [A, B, C]; % 被説明変数の定義

>> N = length(A);

>> Design = cell(N, 1);

>>

>>

Page 76: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

72

>> % 関数mvnrmleの入力に合致するように、説明変数用セル配列作成

>> for k = 1:N

Design{k,1} = [1, Xidx(k), 0, 0, 0, 0;

0, 0, 1, Xidx(k), 0, 0;

0, 0, 0, 0, 1, Xidx(k)];

end

>> [Params, Covar] = mvnrmle(Data, Design); % パラメータ推定

>> [StdParams, StdCovar] = mvnrstd(Data, Design, Covar); % 標準誤差算出

>> tV = Params./StdParams; % t値の算出

>> [Params tV]

ans =

-0.0033 -1.1543

0.9180 5.8039

0.0082 1.2860

1.8201 5.2115

0.0024 0.4770

1.7160 6.1417

以上より、結果は表 8.1 のようになりました。カッコ内の数値は t 値です。

表 8.1

α値 β値

A 社 -0.0033 (-1.1543) 0.9180 (5.8039)

B 社 0.0082 (1.2860) 1.8201 (5.2115)

C 社 0.0024 (0.4770) 1.7160 (6.1417)

A 社のベータ値より、B 社や C 社のベータ値の方が大きいという結果が出ました。

Page 77: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

73

複数の時系列間の影響を分析できるモデルに VAR(ベクトル自己回帰)モデルがあります。

ここでは 1995 年 1 月から 2006 年 3 月までの景気動向指数(遅行指数)と、GDP の成長率の

時系列間の関係を VAR モデルで分析したいと思います。GDP は 4 半期データで、景気動

向指数は月次データのため、分析には景気動向指数の 3 ヶ月ごとに平均をとったものを使

用します。あらかじめ必要となるデータを MAT-ファイル(vardata.mat)として保存しておき

ます。推定する VAR モデルは以下のものとします。

yttytytytxtxtxt

xttytytytxtxtxt

ycycycxcxcxccy

ybybybxbxbxbbx

3322113322110

3322113322110

以下のように入力します。

>> load vardata

>> % X: 景気動向指数を3ヶ月ごとに平均をとったデータ

>> % Y: GDPの成長率

>>

>> N = length(X);

>> Data = [X(4:end), Y(4:end)]; % 被説明変数

>> Design = cell(N-3,1);

>>

>> for k = 1:N-3

Design{k,1} = [1, X(k+2:-1:k).', Y(k+2:-1:k).', zeros(1,7);

zeros(1,7), 1, X(k+2:-1:k).', Y(k+2:-1:k).'];

end

>>

>> [Params, Covar] = mvnrmle(Data, Design); % パラメータ推定

>> [StdParams, StdCovar] = mvnrstd(Data, Design, Covar); % 標準誤差

>> tV = Params./StdParams; % t-値

>> [Params, tV]

ans =

23.5485 1.8264

0.2818 1.5345

0.0470 0.2446

0.1848 0.9820

4.6673 1.6084

Page 78: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

74

-1.4192 -0.4244

-0.5223 -0.1990

-1.2054 -1.5224

0.0275 2.4346

0.0070 0.5899

0.0032 0.2793

0.7037 3.9488

-0.1483 -0.7223

-0.2421 -1.5022

表 8.2 :景気動向指数 X と GDP 成長率 Y

定数 Xt-1の係数 Xt-2の係数 Xt-3の係数 Yt-1の係数 Yt-2の係数 Yt-3の係数

Xt 23.5485 0.2818 0.0470 0.1848 4.6673 -1.4192 -0.5223

t-値 1.8264 1.5345 0.2446 0.9820 1.6084 -0.4244 -0.1990

Yt -1.2054 0.0275 0.0070 0.0032 0.7037 -0.1483 -0.2421

t-値 -1.5224 2.4346 0.5899 0.2793 3.9488 -0.7223 -1.5022

推定値と t 値から、一期前の GDP 成長率は景気動向指数(遅行指数)に影響を与えている

ことが分かります。一方、景気動向指数(遅行指数)は GDP 成長率にあまり影響を与えてい

ないことが分かります。

Page 79: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

75

9 Financial Time Series Objectについて

Financial Toolbox は、金融時系列データを分析するための計算環境を提供します。当機

能を使用することにより時間情報をもつ時系列データの加工と多様な分析が可能となりま

す。当機能を使用することによりベクトルや行列を利用した分析よりも、より直感的なデ

ータの取り扱いが可能となります。

ここからはいくつか例を用いて、金融時系列データ分析の機能のご紹介をいたします。

特に fints 関数の使い方がポイントになります。

9.1 Financial Time Series Object

金融時系列データの分析のためには、「Financial Time Series Object」とよばれる時間情報

とデータを関連させたオブジェクトを基本としてデータを扱います。このオブジェクトは、

関数 fints によって作成されます。

>> ibm = importdata('ibm.dat'); % サンプルデータをインポート

>>

>> sd = num2str(ibm(:,1)); % 日付データを文字列に変更

>> sp = repmat('/', length(ibm(:,1)), 1);

>> C = repmat('19', length(ibm(:,1)), 1);

>> strdates = [C, sd(:,1:2), sp , sd(:,3:4), ...

sp, sd(:,5:6)]; % yymmdd を yyyy/mm/dd へ変更

>> dates = datenum(strdates); % 日付データをシリアル値に変更

>> myfts = fints(dates, ibm(:,2:4), {'High','Low','Close'}, ...

'Daily', 'IBM Stock Price');

>> myfts

myfts =

desc: IBM Stock Price

freq: Daily (1)

'dates: (452)' 'High: (452)' 'Low: (452)' 'Close: (452)'

'30-Aug-1993' [ 44.7500] [ 44.1250] [ 44.6250]

Page 80: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

76

'31-Aug-1993' [ 45.8750] [ 44.7500] [ 45.7500]

'02-Sep-1993' [ 46.3750] [ 45.7500] [ 46]

'03-Sep-1993' [ 46.3750] [ 45.6250] [ 45.8750]

'07-Sep-1993' [ 46.2500] [ 45.2500] [ 45.5000]

:

:

Financial Time Series Object のデータをプロットすると、以下のような時間情報と対応する

データをグラフ化したものを出力します。

>> plot(myfts);

図 9.1 : Financial Time Series Object データのプロット 1

さらに出来高データを追加したオブジェクトを作成し、プロットすると以下のような出

来高情報も一覧できる図を作成することが可能となります。

Page 81: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

77

>> myfts = fints(dates, ibm(:,2:5), {'High','Low','Close','Volume'}, ...

'Daily', 'IBM Stock Price');

>> figure; plot(myfts,[] ,'Volume', 1);

図 9.2 : Financial Time Series Object データのプロット 2

Page 82: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

78

9.2 Financial Time Series Object の操作

Financial Time Series Object は、通常の MATLAB の操作と同じような操作で四則演算等

の計算が可能です。計算が可能なオブジェクトは、時間部分が同じオブジェクト同士とな

っています。

>> dates = (datenum('01/01/2005'):datenum('01/01/2005')+3)';

>> dataSeries1 = exp(randn(4,1)); % 仮想データ生成

>> dataSeries2 = exp(randn(4,1));

>> Data=[dataSeries1, dataSeries2];

>> myfts1 = fints(dates, Data);

>> myfts1

myfts1 =

desc: (none)

freq: Unknown (0)

'dates: (4)' 'series1: (4)' 'series2: (4)'

'01-Jan-2005' [ 1.7120] [ 1.3754]

'02-Jan-2005' [ 6.2582] [ 0.2704]

'03-Jan-2005' [ 0.1045] [ 0.6482]

'04-Jan-2005' [ 2.3683] [ 1.4086]

>> % 演算用にもう一つオブジェクトを作成

>> Data2 =[exp(randn(4,1)), exp(randn(4,1))];

>> myfts2 = fints(dates, Data2);

>> >> myfts2

myfts2 =

desc: (none)

freq: Unknown (0)

'dates: (4)' 'series1: (4)' 'series2: (4)'

'01-Jan-2005' [ 35.8161] [ 2.0656]

'02-Jan-2005' [ 15.9497] [ 0.9389]

'03-Jan-2005' [ 0.2593] [ 2.0437]

'04-Jan-2005' [ 20.7994] [ 0.8147]

Page 83: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

79

>> myfts3 = myfts1 + myfts2

myfts3 =

desc: (none)

freq: Unknown (0)

'dates: (4)' 'series1: (4)' 'series2: (4)'

'01-Jan-2005' [ 37.5281] [ 3.4410]

'02-Jan-2005' [ 22.2078] [ 1.2093]

'03-Jan-2005' [ 0.3637] [ 2.6918]

'04-Jan-2005' [ 23.1677] [ 2.2233]

以下のように入力することにより、オブジェクトの一部分を切り出して、新規オブジェ

クトを作成することができます。

>> myfts4 = myfts1.series2

myfts4 =

desc: (none)

freq: Unknown (0)

'dates: (4)' 'series2: (4)'

'01-Jan-2005' [ 1.3754]

'02-Jan-2005' [ 0.2704]

'03-Jan-2005' [ 0.6482]

'04-Jan-2005' [ 1.4086]

複数のデータ部分を切り出し、それらを結合して新規オブジェクトを作成するには、以

下のように入力します。

Page 84: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

80

>> myfts5 = [myfts1.series2, myfts2.series1]

myfts5 =

desc: //

freq: Unknown (0)

'dates: (4)' 'series2: (4)' 'series1: (4)'

'01-Jan-2005' [ 1.3754] [ 35.8161]

'02-Jan-2005' [ 0.2704] [ 15.9497]

'03-Jan-2005' [ 0.6482] [ 0.2593]

'04-Jan-2005' [ 1.4086] [ 20.7994]

また、関数 fts2mat を利用することによりオブジェクトを、通常の MATLAB で扱う形

式でデータを取り出すことができます。

>> fts2mat(myfts1)

ans =

1.7120 1.3754

6.2582 0.2704

0.1045 0.6482

2.3683 1.4086

>>

>> M = fts2mat(myfts1,1) % 引数追加によりシリアル日付番号を取得

ans =

1.0e+005 *

7.3231 0.0000 0.0000

7.3231 0.0001 0.0000

7.3232 0.0000 0.0000

7.3232 0.0000 0.0000

Page 85: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

81

>> datestr(M(:,1))

ans =

01-Jan-2005

02-Jan-2005

03-Jan-2005

04-Jan-2005

Page 86: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

82

10 テクニカル分析

テクニカル分析とは過去の相場の値動きを表わしたチャートを分析し、将来の価格を予

想しようとするものです。Financial Toolbox には多数のテクニカル分析を実行する関数が

用意されています。ここでは代表的な 4 つのテクニカル分析の実行例を示します。その他

の手法につきましては「MATLAB ヘルプ」等をご確認ください。

10.1 MACD (移動平均収束発散法)

このテクニカル分析手法では 2 本の指数平滑平均線を用います。MACD は 2 本の指数平

滑平均の差(短期指数平滑平均-中期指数平滑平均)として算出され、MACD の指数平滑平

均をシグナルとして算出します。

指数平滑平均の計算方法は以下のようになります。

11 tYCtYtY

tY : 当日の指数平滑平均

1tY : 前日の指数平滑平均(初日だけ単純移動平均を用いる)

C : 当日の終値

: 平滑化定数、 10

12 n [n は単純移動平均の平均期間] として計算される.

MACD は、2 本の線が交差するときに「売り」や「買い」のサインと判断します。MACD

ラインがシグナルを下から上へ突き抜けた地点を「買いサイン」、上から下へ突き抜けた地

点を「売りサイン」と判断します。また、両方の線がゼロの基準線から上下どちらかに大

幅に移動したときには、それぞれ買われ過ぎや売られ過ぎのサインと判断します。

Page 87: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

83

Financial Toolbox には MACD を算出する関数、macd が用意されています。関数 macd

は短期指数平滑平均を n =12 、中期指数平滑平均を n =26 として MACD を算出します。ま

た、シグナルは MACD を n =9 とする指数平滑したものを算出します。以下のように入力

することにより、MACD チャートを作成することができます。

>> ibm = importdata('ibm.dat'); % サンプルデータのインポート

>>

>> sd = num2str(ibm(:,1)); % 日付データを文字列に変更

>> sp = repmat('/', length(ibm(:,1)), 1);

>> C = repmat('19', length(ibm(:,1)), 1);

>> strdates = [C, sd(:,1:2), sp , sd(:,3:4), ...

sp, sd(:,5:6)]; % yymmdd を yyyy/mm/dd へ変更

>> dates = datenum(strdates); % 日付データをシリアル値に変更

>> myfts = fints(dates, ibm(:,2:4), {'High','Low','Close'}, ...

'Daily', 'IBM Stock Price');

>>

>> ibm_CloseMACD = macd(myfts, 'Close'); % 終値のMACDを算出

>>

>> figure; subplot(2,1,1);

>> plot(ibm_CloseMACD);

>>

>> title(['MACD for IBM, ', datestr(dates(1), 26), ...

'-', datestr(dates(end), 26)]);

>> AxesIds = get(gcf, 'Children'); % 凡例オブジェクトのIDを取得

>> set(AxesIds(1), 'Location', 'SouthWest'); % 凡例を左下に移動

>> XTick = get(AxesIds(2), 'XTick'); %上段のX軸のラベルの位置情報を取得

>> XTickLabel = get(AxesIds(2), 'XTickLabel'); %上段のX軸のラベルの値を取得

>>

>> subplot(2,1,2);

>> highlow(ibm(:,2), ibm(:,3), ibm(:,4));

>> title(['IBMの株価変動, ', datestr(dates(1), 26), ...

'-', datestr(dates(end),26)]);

>> MGN = [XTick(1)-dates(1), XTick(end)-dates(end)];

>> XRange2 = [1+MGN(1), length(dates)+MGN(2)];

>> xlim(XRange2);

>> XTick2 = linspace(XRange2(1), XRange2(2), length(XTick));

>> set(gca, 'XTick', XTick2); % 下段のX軸のラベルの位置を変更

>> XTickLabel2 = [XTickLabel(1,:); datestr(dates(XTick2(2:end-1))); ...

XTickLabel(end,:)];

Page 88: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

84

>> set(gca, 'XTickLabel', XTickLabel2); % 下段X軸のラベルの値を変更

図 10.1 : MACD

10.2 ウィリアムスのパーセント・アール(W%R)

この手法は、直近の終値を一定の数日間の価格の変動幅と比較するテクニカル分析のこ

とです。

ウィリアムスのパーセント・アールは以下のような式で算出されます。

Page 89: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

85

100%

日間の最安値日間の最高値

当日の終値日間の最高値

nn

nRW

表 10.1 を例に W%R の算出方法を説明します。ここでは、n = 3 とします。

初日の 8 月 1 日の W%R の算出には、8 月 1 日、2 日そして 5 日のデータを使用します。

該当の 3 日間の最高値は 2 日の「728」、最安値は 1 日の「700」ですので、初日の W%R は、

2857.64700728

710728%

RW

となります。(n = 3 なので)8 月 5 日までの W%R は 8 月 1 日、2 日と 5 日までのデータを使

用し算出されます。

8 月 6 日の W%R は、8 月 2 日、5 日と 6 日のデータを使用します。該当の 3 日間の最高

値は 2 日の「728」、最安値は 6 日の「710」であるので、6 日の W%R は、

4444.94710728

711728%

RW

となり、6 日以降の W%R は過去 3 日間のデータを使用し算出されます。

表 10.1

日付 高値 安値 終値 W%R

8 月 1 日 715 700 710 -64.2857

8 月 2 日 728 716 720 -28.5714

8 月 5 日 726 715 723 -17.8571

8 月 6 日 719 710 711 -94.4444

8 月 7 日 714 702 703 -95.8333

Page 90: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

86

8 月 8 日 719 707 716 -17.6471

8 月 9 日 716 710 715 -23.5294

一般的に記述すると、n 日目までの W%R の算出までは、初日から n 日目までのデータを

使用し、(n+1)日目以降は過去(n-1)日間と当日のデータを使用することになります。

W%R は、0%近辺を高値警戒水準、100%近辺を下値警戒水準と見ます。水準が 0%、100%

近辺に張りついた動きを「ガーベージ・トップ(ボトム)」と呼び、売買ポイントの参考と

されます。

Financial Toolbox には、W%R を算出する関数 willpctr が用意されています。以下のよ

うに入力することにより、W%R チャートを作成することができます。

>> ibm = importdata('ibm.dat'); % サンプルデータのインポート

>>

>> sd = num2str(ibm(:,1)); % 日付データを文字列に変更

>> sp = repmat('/', length(ibm(:,1)), 1);

>> C = repmat('19', length(ibm(:,1)), 1);

>> strdates = [C, sd(:,1:2), sp , sd(:,3:4), ...

sp, sd(:,5:6)]; % yymmdd を yyyy/mm/dd へ変更

>> dates = datenum(strdates); % 日付データをシリアル値に変更

>> myfts = fints(dates, ibm(:,2:4), {'High','Low','Close'}, ...

'Daily', 'IBM Stock Price');

>>

>> wpctribm = willpctr(myfts); %W%Rの算出

>> figure; subplot(2,1,1);

>> plot(wpctribm);

>> title(['Williams %R of IBM ', datestr(dates(1), 26), ...

'-', datestr(dates(end), 26)]);

>> hold on;

>> plot(myfts.dates, -80*ones(1, length(myfts)), ...

'color', [0.5 0 0], 'linewidth', 2);

>> plot(myfts.dates, -20*ones(1, length(myfts)), ...

'color', [0 0.5 0], 'linewidth', 2);

>> AxesIds = get(gcf, 'Children');

>> XTick = get(AxesIds(2), 'XTick'); % 上段のX軸のラベルの位置情報を取得

Page 91: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

87

>> XTickLabel = get(AxesIds(2), 'XTickLabel'); %上段のX軸のラベルの値を取得

>> hold off

>>

>> subplot(2,1,2);

>> highlow(ibm(:,2), ibm(:,3), ibm(:,4));

>> title(['IBMの株価変動, ', datestr(dates(1), 26), ...

'-', datestr(dates(end),26)]);

>> MGN = [XTick(1)-dates(1), XTick(end)-dates(end)];

>> XRange2 = [1+MGN(1), length(dates)+MGN(2)];

>> xlim(XRange2);

>> XTick2 = linspace(XRange2(1), XRange2(2), length(XTick));

>> set(gca, 'XTick', XTick2); % 下段のX軸のラベルの位置を変更

>> XTickLabel2 = [XTickLabel(1,:); datestr(dates(XTick2(2:end-1))); ...

XTickLabel(end,:)];

>> set(gca, 'XTickLabel', XTickLabel2); % 下段X軸のラベルの値を変更

図 10.2 : Williams %R

Page 92: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

88

10.3 RSI

Relative Strength Index(相対強度指数)の略。現在の価格と過去の一定期間の価格とを比較

することで証券や相場のモメンタムを計測します。他のモメンタム指標と違って誤差が排

除されるので、広く使われる指標となっています。買われ過ぎや売られ過ぎのサインの確

認に使われると同時に、指数と価格との間に乖離が生じた場合には警告の役目も果たすも

のとなっています。

RSI は以下の式で算出されます。

第 m 日目の RSI(%) = 100 BA

A

A : 過去 n 日間の値上がりケースの終値の合計

B : 過去 n 日間の値下がりケースの終値の合計

表 10.2 を例に RSI の算出方法を説明します。

n=6 とすると、第1日目の RSI の計算は、A を 2 日の終値 720、5 日の 723 と 8 日の 716、

B を 6 日の終値 711、7 日の 703 と 9 日の 715 とし、計算することになります。よって 9 日

の RSI を計算すると、

第 1 日目の RSI = 3498.50100715716703711723720

716723720

2 日目の RSI の計算は、1 日目の RSI の算出時に使用したデータで最も古い 2 日のデー

タを除き、12 日のデータを追加した、5 日から 12 日までのデータを A と B に分け RSI を

算出します。

第 2 日目の RSI = 4423.50100728715716703711723

728716723

同じように、最終日まで RSI を計算していきます。

表 10.2 の 4 列目に算出結果を表示しておきます。

Page 93: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

89

表 10.2

日付 終値 前日比 RSI

8 月 1 日 710

8 月 2 日 720 +

8 月 5 日 723 +

8 月 6 日 711 -

8 月 7 日 703 -

8 月 8 日 716 +

8 月 9 日 715 - 50.3498

8 月 12 日 728 + 50.4423

8 月 13 日 736 + 50.5918

8 月 14 日 740 + 67.3121

8 月 15 日 737 - 66.7887

RSI は、50%以上の水準であれば、計算期間内の「値上がり幅」が「値下がり幅」より

も大きかったことを示し、50%以下の水準であれば「値上がり幅」が「値下がり幅」より

も小さかったことを示します。上昇トレンド形成中は RSI が 50%以上の水準が多く、下降

トレンド形成中は 50%以下の水準をつけていることが多い、ということになります。

RSI30%以下の水準は売られすぎの状態、70%以上の水準は買われすぎの状態であり、こ

れらの水準が相場の反転の目安であり、売買のサインとされます。

Financial Toolbox には、RSI を算出する関数 rsindex が用意されています。以下のよう

に入力することにより、RSI チャートを作成することができます。

>> ibm = importdata('ibm.dat'); % サンプルデータのインポート

>>

>> sd = num2str(ibm(:,1)); % 日付データを文字列に変更

>> sp = repmat('/', length(ibm(:,1)), 1);

>> C = repmat('19', length(ibm(:,1)), 1);

>> strdates = [C, sd(:,1:2), sp , sd(:,3:4), ...

sp, sd(:,5:6)]; % yymmdd を yyyy/mm/dd へ変更

>> dates = datenum(strdates); % 日付データをシリアル値に変更

>> myfts = fints(dates, ibm(:,2:4), {'High','Low','Close'}, ...

'Daily', 'IBM Stock Price');

>>

>> rsiibm = rsindex(myfts); %RSIを算出.

Page 94: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

90

>> figure; subplot(2,1,1);

>> plot(rsiibm);

>> title(['RSI of IBM, ', datestr(dates(1), 26), ...

'-', datestr(dates(end), 26)]);

>> hold on;

>> plot(myfts.dates, 30*ones(1, length(myfts)), ... %30にラインを引く

'color', [0.5 0 0], 'linewidth', 2);

>> plot(myfts.dates, 70*ones(1, length(myfts)),... %70にラインを引く

'color', [0 0.5 0], 'linewidth', 2);

>> AxesIds = get(gcf, 'Children');

>> XTick = get(AxesIds(2), 'XTick'); % 上段のX軸のラベルの位置情報を取得

>> XTickLabel = get(AxesIds(2), 'XTickLabel'); %上段のX軸のラベルの値を取得

>> hold off

>>

>> subplot(2,1,2);

>> highlow(ibm(:,2), ibm(:,3), ibm(:,4));

>> title(['IBMの株価変動, ', datestr(dates(1), 26), ...

'-', datestr(dates(end),26)]);

>> MGN = [XTick(1)-dates(1), XTick(end)-dates(end)];

>> XRange2 = [1+MGN(1), length(dates)+MGN(2)];

>> xlim(XRange2);

>> XTick2 = linspace(XRange2(1), XRange2(2), length(XTick));

>> set(gca, 'XTick', XTick2); % 下段のX軸のラベルの位置を変更

>> XTickLabel2 = [XTickLabel(1,:); datestr(dates(XTick2(2:end-1))); ...

XTickLabel(end,:)];

>> set(gca, 'XTickLabel', XTickLabel2); % 下段X軸のラベルの値を変更

Page 95: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

91

図 10.3 : RSI

10.4 OBV(オン・バランス・ボリューム)

OBV とは、 取引日ごとの出来高に値を付与したものです。OBV と価格との間に生じた

乖離がトレンドを逸脱するような OBV の変化を伴う場合には、買いや売りのサインとさ

れます。

OBV は終値の前日比がプラスの出来高を加算し、前日比のマイナスの出来高を減算して

算出します。終値が前日と変化無しなら前日の OBV を、そのまま算出します。

表 10.3 を例に OBV の計算方法を説明します。 8 月 1 日の計算初日は、1 日の出来高が

そのまま OBV となります。 2 日は、1 日との終値比がプラスなので 1 日の OBV「4,477,000」

と 2 日の出来高「2,470,000」を加算し、OBV を「6,947,000」と算出します。

Page 96: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

92

6 日は 5 日との終値比がマイナスなので、5 日の OBV「8,992,000」と 6 日の出来高

「2,010,000」を減算し、OBV を「6,982,000」と算出します。

表 10.3

日付 終値 出来高 前日比 OBV

8 月 1 日 710 4,477,000 4,477,000

8 月 2 日 720 2,470,000 + 6,947,000

8 月 5 日 723 2,045,000 + 8,992,000

8 月 6 日 711 2,010,000 - 6,982,000

8 月 7 日 703 2,860,000 - 4,122,000

8 月 8 日 716 2,887,000 + 7,009,000

8 月 9 日 715 2,673,000 - 4,336,000

OBV が以前の安値となった数値を下回らずに上昇を継続している状態である場合、株価

は上昇トレンド形成過程に入っているとされ、上昇トレンドはしばらく継続すると判断し

ます(図 10.4 左図)。

OBV が以前の高値となった数値を上回らずに下降を継続している状態である場合、株価

は囲うトレンド形成過程に入っているとされ、下降トレンドはしばらく継続すると判断し

ます(図 10.4 右図)。

図 10.4 : OBV の見方

上昇トレンド 下降トレンド

Page 97: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

93

Financial Toolbox には、OBV を算出する関数 onbalvol が用意されています。以下の

ように入力することにより、OBV チャートを作成できます。

>> ibm = importdata('ibm.dat'); % サンプルデータのインポート

>>

>> sd = num2str(ibm(:,1)); % 日付データを文字列に変更

>> sp = repmat('/', length(ibm(:,1)), 1);

>> C = repmat('19', length(ibm(:,1)), 1);

>> strdates = [C, sd(:,1:2), sp , sd(:,3:4), ...

sp, sd(:,5:6)]; % yymmdd を yyyy/mm/dd へ変更

>> dates = datenum(strdates); % 日付データをシリアル値に変更

>> myfts = fints(dates, ibm(:,2:5), {'High','Low','Close','Volume'}, ...

'Daily', 'IBM Stock Price');

>>

>> obvibm = onbalvol(myfts); %OBVの算出

>>

>> subplot(2,1,1);

>> plot(obvibm);

>> hold on;

>> title(['On-Balance Volume, ', datestr(dates(1), 26), ...

'-', datestr(dates(end),26)]);

>> AxesIds = get(gcf, 'Children');

>> set(AxesIds(1), 'Location', 'SouthEast'); % 凡例を右下に移動

>> XTick = get(AxesIds(2), 'XTick'); % 上段のX軸のラベルの位置情報を取得

>> XTickLabel = get(AxesIds(2), 'XTickLabel'); %上段のX軸のラベルの値を取得

>> hold off

>>

>> subplot(2,1,2);

>> highlow(ibm(:,2), ibm(:,3), ibm(:,4));

>> title(['IBMの株価変動, ', datestr(dates(1), 26), ...

'-', datestr(dates(end),26)]);

>> MGN = [XTick(1)-dates(1), XTick(end)-dates(end)];

>> XRange2 = [1+MGN(1), length(dates)+MGN(2)];

>> xlim(XRange2);

>> XTick2 = linspace(XRange2(1), XRange2(2), length(XTick));

>> set(gca, 'XTick', XTick2); % 下段のX軸のラベルの位置を変更

>> XTickLabel2 = [XTickLabel(1,:); datestr(dates(XTick2(2:end-1))); ...

XTickLabel(end,:)];

>> set(gca, 'XTickLabel', XTickLabel2); % 下段X軸のラベルの値を変更

Page 98: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

94

図 10.5 : OBV

Page 99: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

95

11 データ操作

データの持つ特徴を調べる、あるいは際立たせるためにデータを変換することがありま

す。Financial Toolbox には多数のデータ変換を行う関数が用意されています。ここでは、

階差、ボックス-コックス(Box-Cox)変換、移動平均を実行する関数を紹介いたします。そ

の他の計算手法はヘルプ機能等をご参照ください。

11.1 階差

株価やマネーサプライのように、多くの経済時系列データはトレンドや季節変動を持っ

ています。このような特徴をもつ経済データに対しては、しばしは階差と呼ばれる処理を

施します。

ty をデータの列とすると、階差の処理は以下のようになります。

ttt yyy 1

Δ : 階差オペレータ

ここでは、対数データから階差をとる操作を考えます。対数階差は以下のように変形で

きます。

1

1 logloglogt

t

tty

yyy

1

1

1

1l o g

t

tt

t

t

y

yy

y

y

対数階差は ty の変化率にほぼ等しいため、 ty が株価の場合、その対数階差は収益率を表

Page 100: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

96

わすことになります。Financial Toolbox に用意されている、階差を計算する関数、diff を

使用し、ある企業の株価の収益率を求めてみましょう。

>> ibm = importdata('ibm.dat'); % サンプルデータのインポート

>> sd = num2str(ibm(:,1)); % 日付データを文字列に変更

>> sp = repmat('/', length(ibm(:,1)), 1);

>> C = repmat('19', length(ibm(:,1)), 1);

>> strdates = [C, sd(:,1:2), sp , sd(:,3:4), ...

sp, sd(:,5:6)]; % yymmdd を yyyy/mm/dd へ変更

>> dates = datenum(strdates); % 日付データをシリアル値に変更

>>

>> myfts = fints(dates, ibm(:,2), {'Close'}, 'Daily', 'IBM Stock Price');

>> logmyfts = log(myfts); %オブジェクトの終値を対数変換

>> logdiffmyfts = diff(logmyfts); %階差関数によって対数終値の階差(収益率)取得

>>

>> subplot(2,1,1);

>> plot(myfts);

>> ylabel('株価'); title('株価の推移');

>> AxesIds = get(gcf, 'Children');

>> set(AxesIds(1), 'Location', 'SouthEast'); % 凡例を右下に移動

>>

>> subplot(2,1,2);

>> plot(logdiffmyfts); % (日次)収益率のプロット

>> ylabel('対数収益率');title('対数収益率の推移');legend('対数収益率');

Page 101: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

97

図 11.1 : 株価と収益率

11.2 ボックス-コックス(Box-Cox)変換

使用したい統計的手法により、データに正規分布の仮定が必要な場合があります。ボッ

クス-コックス変換はデータの分布を正規分布に近づけたい場合に使用します。また、デー

タが分散不均一性を持つ場合に、分散均一化になるようデータを変換したい場合にもボッ

クス-コックス変換を使用します。

ty をデータ列とすると、ボックス-コックス変換は以下のようにデータの変換を行います。

Page 102: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

98

0l o g

01

  

  

t

t

t

y

yyf

ここで、λ は対数尤度を最大化するように決定されます。

ボックス-コックス変換を行う関数、boxcox を使用し変換されたデータをプロットしてみ

ましょう。データは Financial Toolbox デモ用にあらかじめ用意されているものを使用しま

す。以下のように入力します。

>> whrl = ascii2fts('whirlpool.dat', 1, 2, []);

>> f_whrl = fillts(whrl);

>> bc_whrl = boxcox(f_whrl); %Box-Cox変換

>> figure; subplot(2,1,1);

>> hist(f_whrl.Close,15);

>> title('変換前のデータの分布');

>> subplot(2,1,2);

>> hist(bc_whrl.Close,15);

>> title('ボックス-コックス変換後のデータの分布');

Page 103: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

99

図 11.2 : ボックス-コックス変換 1

変換前後のデータをプロットします。

>> figure; subplot(2,1,1);

>> plot(f_whrl.Close);

>> title('変換前のデータのプロット');

>> subplot(2,1,2);

>> plot(bc_whrl.Close);

>> title('ボックス-コックス変換後のデータのプロット');

Page 104: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

100

図 11.3 : ボックス-コックス変換 2

11.3 移動平均

移動平均を使うと、データを平準化するとともにトレンドを確認することが出来ます。

移動平均を求めるには、指定した期間の連続するデータを加算し指定した期間数で割って

平均値を求めます。時間の経過に従いデータの中でもっとも古いものを順次取り除き、最

新のデータを加え平均を求める、ということを順次繰り返しデータを得ます。Financial

Toolbox の関数 tsmovavg を使用し、チャートを作成します。ここでは、単純移動平均を

計算しますが、その他にも加重移動平均等を計算することができます。詳細は「MATLAB

ヘルプ」をご参照ください。

>> ibm = importdata('ibm.dat'); % サンプルデータのインポート

Page 105: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

101

>>

>> sd = num2str(ibm(:,1)); % 日付データを文字列に変更

>> sp = repmat('/', length(ibm(:,1)), 1);

>> C = repmat('19', length(ibm(:,1)), 1);

>> strdates = [C, sd(:,1:2), sp , sd(:,3:4), ...

sp, sd(:,5:6)]; % yymmdd を yyyy/mm/dd へ変更

>> dates = datenum(strdates); % 日付データをシリアル値に変更

>>

>> myfts = fints(dates, ibm(:,2), {'Close'}, 'Daily', 'IBM Stock Price');

>>

>> mov25myfts = tsmovavg(myfts, 's',25); %25日移動平均取得

>> mov75myfts = tsmovavg(myfts, 's',75); %75日移動平均取得

>> plot(myfts);

>> hold on;

>> plot(mov25myfts,'g');

>> plot(mov75myfts,'r');

>> ylabel('株価');title('移動平均線のプロット');

>> legend('原系列','25日移動平均線','75日移動平均線','Location', ...

'NorthWest');

>> hold off;

Page 106: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

102

図 11.4 : 移動平均

Page 107: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

103

12 GUI機能の活用

前章までに説明した機能は GUI 環境においても利用することができます。ここでは GUI

環境による Financial Toolbox の機能のご紹介をいたします。

まずは、サンプル用 Financial Time Series Object をカレント・ディレクトリに保存し

ます。

>> load disney.mat

>> save guiSmp.mat dis

>> clear all; clc

次に、 GUI ツールを起動する関数 ftsgui を入力します。

>> ftsgui %GUI ツールの起動

図 12.1 のメイン・ウィンドウが表示されます。

図 12.1 : GUI 環境の利用

そして、先ほど保存したを mat ファイル(guiSmp.mat)を読み込むために、メニューバー

の「ファイル」⇒「Load」からこの mat ファイルを指定します。保存されているオブジェ

クトデータが読み込まれ、図 12.2 のような画面が現れます。

Page 108: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

104

図 12.2 : Financial Time Series Object の読込

「Financial Time Series GUI」ウィンドウのメニューバーの項目、「データ」「Analysis」

「Graphs」の中の特定の項目を選択することにより GUI でのデータの操作が可能となりま

す。

Page 109: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

105

図 12.3 : 「データ」項目の一覧

週次データへ変換する場合は、メニューバーの「データ」から「Convert Data Frequency To」

⇒「To Weekly」を選択します。新しいフィギュアが立ち上がり、週次データへ変換された

グラフが出力されます。

図 12.4 : 週次データへの変換

Page 110: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

106

つぎに、「Analysis」についてみましょう。

メニューバーの「Analysis」を選択すると、図 12.5 が現れます。

図 12.5 : 「Analysis」項目の一覧

たとえば、基本統計量を計算するには「Analysis」⇒「Basic Statistics」を選択します。

すると、図 12.6 のように計算結果が出力されます。

図 12.6 : 基本統計量の算出

つぎに、「Graphs」について見ておきましょう。

Page 111: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

107

メニューバーの「Graphs」を選択すると、図 12.7 が現れます。

図 12.7 : 「Graphs」項目の一覧

ローソク足チャートを作成するには「Graphs」⇒「Candle Plot」を選択します。

図 12.8 : ローソク足の作成

GUI 環境で加工されたデータ、たとえば先ほど「Convert Data Frequency To」⇒「To Weekly」

によって週次データに変換されたデータは mat ファイルとして保存することにより、再び

Page 112: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

108

コマンドラインにて操作することが出来ます。保存するには、Financial Time Series GUI

ウィンドウ上のメニューバーの「ファイル」から「Save As」を選択します。

図 12.9 : mat ファイルの保存 1

ここでは「guiSmp_Weekly.mat」という名前で保存します。保存に成功すると図 12.10 の

ポップアップメッセージが出現します。

図 12.10 : mat ファイルの保存 2

保存された mat ファイルをコマンドライン上で読み込むことによって、コマンドライン

にてデータを扱うことが可能となります。

Page 113: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

109

付録A. 祝日データのインポート

Financial Toolbox には、holidays という祝日を管理する関数がありますがデフォルトの

状態ではアメリカの祝日を参照しております。たとえば、2011 年 01 月 01 日から 2011 年

12 月 31 日までの祝日を調べると

>> Syukujitsu = holidays('01-Jan-2011', '31-Dec-2011');

>> datestr(Syukujitsu)

ans =

17-Jan-2011

21-Feb-2011

22-Apr-2011

30-May-2011

04-Jul-2011

05-Sep-2011

24-Nov-2011

26-Dec-2011

という結果が帰ってきます。この holidays 関数はキャッシュフローの計算をする関数や

Financial Time Series Object のメソッドなどの関数に呼び出されておりますので様々な

影響を及ぼします。そこで、ここでは祝日データをインポートし、新たな holidays 関数

を作成する方法を紹介します。

Step 1 FinancialCalendar.com より Data, Code および Info ファイルをダウンロード

カレンダー情報提供サイト<http://www.FinancialCalendar.com>から上記3つのファイ

ルをダウンロードしてください。

Step 2 Trading Calendars Graphical User Interface を使って各国のマーケットに則し

た holidays.m を生成

>> createholidays

を実行すると Trading Calendars Graphical User Interface が起動し、ダウンロードした

3 つのファイル、holidays.m を出力するフォルダ、チェック項目などを入力します。こ

の GUI の使い方については以下のヘルプをご覧ください。

マーティン・ルーサー・

キング・ジュニア・デー

等のアメリカの祝日が

出力

Page 114: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

110

>> web([matlabroot, '/help/toolbox/finance/f11-67944.html']);

付録B. 日付計算基準(デイカウント方式)の一覧

Financial Toolbox は 14 種類の日付計算基準をサポートし、各関数の入力引数(Basis)とし

て渡すことができます。

Day-count basis Basis の値

Actual/Actual 0 (デフォルト値)

30/360 (SIA) 1

Actual/360 2

Actual/365 3

30/360 (PSA) 4

30/360 (ISDA) 5

30/360 (European) 6

Actual/365 (Japanese) 7

Actual/Actual (ISMA) 8

Actual/360 (ISMA) 9

Actual/365 (ISMA) 10

30/360E (ISMA) 11

Actual/365 (ISDA) 12

BUS/252 13

具体的な使用例が 4.1 債券価格と利回りの計算にありますのでご参照ください。

Page 115: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

111

付録C. 関数一覧

日付の処理と変換

now 当日の年月日時間のシリアル日付番号

today 当日の年月日のシリアル日付番号

datefind 行列形式の日付番号のインデックス

datevec 日付の構成要素

day 年月日の日を出力

eomdate 指定された月の末日のシリアル日付を出力

eomday 指定された月の末日を出力

hour 日付の時間または時間

lweekdate 月の最後に発生する週日

minute 日付または時間の分

month 年月日の月を出力

months 日付間の全体の月数

nweekdate 月内に発生する特定の週日の日付

second 日付または時間の秒

weekday 週の曜日

weeknum ある年の第何週目かを出力

year 年月日の年を出力

yeardays 年の日数

date2time 日付から時間と回数への変換

datedisp 日付項目の表示

datenum 日付番号の作成

datestr 日付文字列の作成

dec2thirtytwo 10 進数から 32 分数への変換

m2xdate MATLAB シリアルデート番号から Excel シリアル値へ変換

thirtytwo2dec 32 分数を 10 進数に変換

time2date 時間と回数から日付に変換

uicalendar カレンダーを表示

x2mdate Excel シリアル値から MATLABシリアルデート番号への変換

busdate 前後の営業日

busdays シリアル日付形式の営業日

createholidays 取引用カレンダーを作成

datemnth 将来または過去の日付

datewrkdy 将来または過去の営業日

Page 116: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

112

days360 360 日の年を基準とする日付間の日数

days360e 360 日の年を基準とする日付間の日数(ヨーロピアン)

days360isda 360 日の年を基準とする日付間の日数(ISDA)

days360psa 360 日の年を基準とする日付間の日数(PSA)

days365 365 日の年を基準とする日付間の日数

daysact 日付間の実際の日数

daysadd 任意の日付カウントにおける開始日からの日数

daysdif 日付カウント基準における日付間の日数

fbusdate 月の最初の営業日

holidays 休日と休業日

isbusday 営業日の日付に対して真

lbusdate 月の最後の営業日

nyseclosures ニュウヨーク証券取引所の閉鎖日を出力

thirdwednesday 月の第3水曜日

wrkdydif 日付間の営業日数

yearfrac 日付間の年の端数

accrfrac 決済日までのクーポン期間(SIA 準拠)

cfamounts 債券ポートフォリオのキャッシュフローと

タイムマッピング(SIA 準拠)

cfdates 確定利付証券のキャッシュフロー日付

cfport キャッシュフロー額のポートフォリオ形式

cftimes 債券のキャッシュフロー日付に対応した時間係数(SIA 準拠)

cpncount 満期までのクーポン支払い残(SIA 準拠)

cpndaten 確定利付証券の次回クーポン日付(SIA 準拠)

cpndatenq 確定利付証券の次回クーポン日付(SIA 準拠)

cpndatep 確定利付証券の次回クーポン日付(SIA 準拠)

cpndatepq 確定利付証券の前回みなしクーポン日付(SIA 準拠)

cpndaysn 次回クーポン日付までの日数(SIA 準拠)

cpndaysp 前回のクーポン日付からの日数(SIA 準拠)

cpnpersz クーポン期間内の日数(SIA 準拠)

通貨の書式変換

cur2frac 10 進数の通貨の値を分数の値に変換

cur2str 通貨書式(「$」付き)に変換

dec2thirtytwo 10 進法から 32 進法へ

frac2cur 分数の通貨価値を 10 進数の通貨価値に変換

Page 117: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

113

thirtytwo2dec 32 進法から 10 進法へ

金融データのチャート作成

bar 棒グラフ

bar3 3次元棒グラフ

bar3h 水平方向の棒グラフ

barh 水平方向の3次元棒グラフ

bolling ボリンジャーバンド

candle 株価データのローソク足チャート

candle FINTS オブジェクトのローソク足チャート

chartfts 双方向チャート

dateaxis シリアル日付形式軸からカレンダー日付形式軸

highlow 株価データの4本値のプロット

highlow FINTS オブジェクトの4本値のプロット

kagi カギ足チャート

linebreak ラインブレーク・チャート

movavg リード/ラグ移動平均チャートの作成

plot データ系列のプロット

pointfig 点図形チャート

priceandvol 価格/出来高グラフ (2 座標軸)

renko 練行足チャート

volarea 価格/出来高グラフ (1 座標軸)

キャッシュフローの分析と計算

annurate 期間あたりの利子率の算出

annuterm 資金の支払い、または積立の目標達成までの時間の計算

amortize 償却スケジュールの計算

depfixdb 定率法による償却額の計算

depgendb 特別減価償却法の償却額の計算をする(ex.二倍定率法)

deprdv 未償却残高の計算

depsoyd 級数法による償却額の計算

depstln 定額法による償却額の計算

pvfix 定期かつ定額支払いの割引現在価値の算出

pvvar 不定期または不定額支払いによる割引現在価値の算出

fvdisc 割引債の満期受取額の計算

Page 118: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

114

fvfix 定額かつ定期支払いの将来価値の算出

fvvar 不定期または不定額支払いによる将来価値の算出

payadv 金利払いを考慮した一回あたりの定期支払額の計算

payodd 最初の支払いが端数の場合の一回あたりの定期支払い額の計算

payper 将来の目標積立額を設定した上で、一回あたりの定期積立額の計算

payuni 変動キャッシュフローに等価な均一支払い額の算出

effrr 実質利子率を計算

elpm 期待下方部分モーメントの計算

irr 内部収益率を計算

mirr 修正内部収益率を計算

nomrr 実質利子率から名目利子率への変換

taxedrr 名目収益率から税引き後収益率の計算

xirr 非定期または不定額のキャッシュフローの内部収益率の計算

cfconv キャッシュフローのコンベクシティを計算

cfdur キャッシュフローのデュレーションを計算

確定利付証券

acrubond 利付債の経過利子

acrudisc 割引債の経過利子

bndprice 満期利回りからの確定利付証券の価格決定

prdisc 割引有価証券の価格

prmat 満期時利払いの有価証券の価格

prtbill 財務省証券の価格

disc2zero 与えられた割引曲線に対するゼロ曲線

fwd2zero 与えられた先渡し曲線に対するゼロ曲線

prbyzero ゼロ曲線によるポートフォリオ債権の価格決定

pyld2zero 与えられた額面利回り曲線に対するゼロ曲線

tbl2bond 与えられた財務省短期証券パラメータに対する

財務省長期証券パラメータ

tr2bonds 与えられた財務省長期証券パラメータに対する期間構造パラメータ

zbtprice 価格の与えられたクーポン債データからのゼロ曲線ブートストラップ

zbtyield 利回りの与えられたクーポン債データからのゼロ曲線

zero2disc 与えられたゼロ曲線に対する割引曲線

zero2fwd 与えられたゼロ曲線に対する先物曲線

zero2pyld 与えられたゼロ曲線に対する額面利回り曲線

beytbill 財務省短期証券を長期債換算した利回り

bndyield 確定利付証券の満期利回り

Page 119: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

115

discrate 金融市場証券の割引率

ylddisc 割引有価証券の利回り

yldmat 満期時利払いの有価証券の利回り

yldtbill 財務省短期証券の利回り

bndspread スポット曲線上の静的なスプレッド

bndconvp 価格から債権のコンベクシティを算出

bndconvy 利回りから債権のコンベクシティを算出

bnddurp 価格から債券のデュレーションを算出

bnddury 利回りから債券のデュレーションを算出

bndkrdur ゼロ曲線から債権のキーレート・デュレーションを算出

ポートフォリオ分析

abs2active 制約を絶対フォーマットからアクティブフォーマットに変換

active2abs 制約をアクティブフォーマットから絶対フォーマットに変換

arith2geom 資産収益率の算術モーメントから幾何モーメントへ変換

corr2cov 標準偏差と相関行列から分散・共分散行列を計算

cov2corr 分散・共分散行列を標準偏差と相関行列に変換

ewstats 収益時系列からの期待収益と共分散を計算

frontcon 平均分散有効フロンティア

frontier 有効フロンティア

geom2arith 資産収益率の幾何モーメントから算術モーメントへ変換

holdings2weights ポートフォリオ持分からウェイト

pcalims 資産分配の一次不等式

pcgcomp 資産グループ比較制約の一次不等式

pcglims 資産グループの最小最大資産配分の一次不等式

pcpval 合計ポートフォリオ値を結滞する不等式

periodicreturns 日次収益率から特定期間の収益率

portalloc 有効フロンティアポートフォリオへの最適資産分配

portcons ポートフォリオ制約

portopt 制約条件付き有効フロンティア上のポートフォリオ

portrand ランダムなポートフォリオのリスク、リターン、ウェイト

portror ポートフォリオの期待収益率を算出

portsim ポートフォリオ価値のデータ生成

portstats ポートフォリオの期待収益とリスク

portvar ポートフォリオの分散値を算出

portvrisk ポートフォリオの Value at Risk

Page 120: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

116

ret2tick 収益率から価格への変換

ret2tick (fts) 収益率から価格への変換 (Time Series Object 対応)

selectreturn 3次元有効フロンティアからポートフォリオの形状

targetreturn ポートフォリオウェイトの正確性

totalreturnprice 価格から総収益率系列

tick2ret 価格から収益率への変換

tick2ret (fts) 価格から収益率への変換 (Time Series Object 対応)

weights2holdings ウェイトからポートフォリオの持分

emaxdrawdown 期待最大ドローダウンを算出

inforatio インフォメーションレシオの計算

lpm 下方部分モーメントを算出

maxdrawdown 最大ドローダウンを算出

portalpha アルファと収益率を算出

sharpe シャープレシオを算出

金融統計

mvnrfish 多変量正規、または最小二乗回帰のフィッシャー情報行列

mvnrmle 多変量正規回帰(欠損値は無視)

mvnrobj 欠損値が無い場合の多変量正規回帰の尤度関数

mvnrstd 多変量正規回帰モデルの標準誤差

ecmnfish フィッシャー情報行列

ecmnhess 負の対数尤度関数のヘシアン

ecmninit 初期の期待値と分散共分散

ecmnmle 不完全の多変量正規データの平均と分散共分散

ecmnobj 多変量正規の負の尤度関数

ecmnstd 不完全のデータの平均と分散共分散の標準誤差

ecmmvnrfish 多変量正規回帰モデルのフィッシャー情報行列

ecmmvnrmle 欠損値があるデータの多変量正規回帰

ecmmvnrobj 欠損値があるデータの多変量正規回帰の対数尤度関数

ecmmvnrstd 多変量正規回帰モデルの標準誤差の評価

ecmlsrmle 欠損値があるデータの最小二乗回帰

ecmlsrobj 欠損値があるデータの最小二乗回帰の対数尤度関数

convert2sur 多変量正規回帰モデルから SUR モデル

Page 121: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

117

デリバティブのプライシングと分析

binprice 二項モデルによるオプションのプライシング

blkimpv ブラックモデルによる先物オプションのインプライドボラティリティの算出

blkprice ブラックモデルによる先物オプションのプライシング

blsdelta BS モデルによる「デルタ」の算出

blsgamma BS モデルによる「ガンマ」の算出

blsimpv BS モデルによるオプションのインプライドボラティリティの算出

blslambda BS モデルの「ラムダ」の算出

blsprice BS モデルによるオプションのプライシング

blsrho BS モデルによる「ロー」の算出

blstheta BS モデルによる「シータ」の算出

blsvega BS モデルによる「ベガ」の算出

opprofit オプションのペイオフの計算

信用リスク向けユーティリティ

transprob 信用格付けデータから遷移確率行列の推定

transprobbytotals 前処理済み信用格付けデータから遷移確率行列の推定

GARCH 過程

ugarch GARCH モデルのパラメータ推定

ugarchllf 対数尤度の計算

ugarchpred GARCH 過程に条件付分散の予測値

ugarchsim GARCH 過程に従うデータ生成

Financial Time Series Object と ファイル構築

ascii2fts ASCII データファイルから Financial Time Series object 作成

fints Financial Time Series object 作成

fts2ascii Financial Time Series object を ASCII データ形式に変換

fts2mat Financial Time Series object を行列変換

merge 複数の Financial Time Series object を結合

Page 122: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

118

Financial Time Series Object 向けの計算関数

end Financial Time Series object の最新データを指定

horzcat Financial Time Series object のデータ部分の結合

length Financial Time Series object のデータの長さ

minus Financial Time Series object のデータ部分の差

mrdivide Financial Time Series object のデータ部分の行列の除算

mtimes Financial Time Series object のデータ部分の行列の積算

plus Financial Time Series object のデータ部分の和

power Financial Time Series object のデータ部分のべき乗

rdivide Financial Time Series object のデータ部分の行列の要素毎の除算

size Financial Time Series object のデータ部分のサイズ

subsasgn Financial Time Series object のサブスクリプトによるデータの代入

subsref Financial Time Series object のサブスクリプトによる参照

times Financial Time Series object のデータ部分の行列の要素毎の積算

uminus 単項マイナス演算

uplus 単項プラス演算

vertcat Financial Time Series object のデータ部分を垂直方向に結合

Financial Time Series Object 向けの数学関数

cumsum 累積和

exp 指数関数

hist ヒストグラム

log 自然対数へ変換

log2 底 2 の対数へ変換

log10 常用対数へ変換

max 最大値

mean 平均

min 最小値

std 標準偏差

Financial Time Series Object 向けの記述統計

corrcoef 相関係数の算出

cov 共分散行列の計算

isempty Fianacial Time Series Objetc に空データがあるか判別

Page 123: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

119

nancov 欠損値(NaN)を除いた共分散

nanmax 欠損値(NaN)を除いた最大値

nanmean 欠損値(NaN)を除いた平均

nanmedian 欠損値(NaN)を除いた中央値

nanmin 欠損値(NaN)を除いた最小値

nanstd 欠損値(NaN)を除いた標準偏差

nansum 欠損値(NaN)を除いた和

nanvar 欠損値(NaN)を除いた分散

var 分散値を計算

Financial Time Series Object 向けのユーティリティ関数

chfield Financial Time Series object のデータのフィールド名の変更

eq (fts) Financial Time Series object の等価性を判定

extfield Financial Time Series object の部分列取得

fetch Financial Time Series object の部分行取得

fieldnames Financial Time Series object のフィールド名取得

freqnum Financial Time Series object の周期インデックス取得

freqstr Financial Time Series object の周期インデックスから周期に変換

ftsbound Financial Time Series object の初日と終日のシリアルデート番号取得

ftsinfo Financial Time Series object の情報

ftsuniq Financial Time Series object の一意性

getfield Financial Time Series object のデータ部の部分列取得

getnameidx リストから指定文字列を探索し、格納場所のインデックスを取得

iscompatible Financial Time Series object の比較

isequal 2 以上の Financial Time Series object の比較

isfield Financial Time Series object の部分列の比較

issorted Financial Time Series object の時間に関する単調増加性

rmfield Financial Time Series object の指定するデータ列を除去

setfield Financial Time Series object のデータ列へデータをセット

sortfts Financial Time Series object の整列

Page 124: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

120

データ変換

boxcox ボックス-コックス変換

convert2sur 多変量正規回帰モデルから SUR モデル

convertto 指定する頻度データへ変換

diff 階差

fillts 欠損値補完

filter 線形フィルター

lagts 指定した遅行データをとる

leadts 指定した先行データをとる

peravg 指定した平均の列をとる

resamplets Financial Time Series object からサンプリング

smoothts Financial Time Series object のデータ部のスムージング

toannual 年次データ変換

todaily 日次データ変換

todecimal 10 進法数値へ変換

tomonthly 月次データ

toquarterly 四半期データ

toquoted 10 進数の数を指定進数の数へ変換

tosemi 半期データ

toweekly 週次データ

tsmovavg 移動平均

テクニカル分析

adline アキュミュレーション/ディストリビュレーションライン

adosc アキュミュレーション/ディストリビュレーションオシレータ

bollinger ボリンジャーバンド

chaikosc チャイキンズオシレータ

chaikvolat チャイキンズボラティリティ

fpctkd ストキャスティック(ファスト)

hhigh 指定した範囲内の高値取得

llow 指定した範囲内の安値取得

macd MACD (移動平均収束発散法)

medprice メディアン価格

negvolidx ネガティブ・ボリューム・インデックス

onbalvol オン・バランス・ボリューム

posvolidx ポジティブ・ボリューム・インデックス

Page 125: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

121

prcroc プライス・レート・オブ・チェンジ(ROC)

pvtrend プライスアンドボリュームトレンド

rsindex 相対力指数(RSI)

spctkd ストキャスティック(スロー)

stochosc ストキャスティックオシレータ

tsaccel アクセラレーション

tsmom 特定期間のモメンタム

typprice ティピカルプライス

volroc ボリューム・レート・オブ・チェンジ

wclose 加重平均した価格

willad ウィリアムのアキュミュレーション/ディストリビュレーション

willpctr ウィリアム・パーセント・アール

Financial Time Series GUI

ftsgui Financial Time Series 用 GUI 環境の呼び出し

Financial Time Series Tool

ftstool Financial Time Series Tool の起動

Page 126: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

122

[参考文献]

[1].新井清光 編(2000)『英和・和英会計経理ハンディ辞典(第2版)』中央経済社

[2].伊藤智洋(1998)『チャート救急箱』投資レーダー

[3].小暮厚之(1996)『ファイナンス講座① ファイナンスへの計量分析』朝倉書店

[4].桜井久勝(2003)『財務諸表分析(第2版)』中央経済社

[5].ジョン・C・ハル(2001)『先物・オプション取引入門』ピアソン・エデュケーション

[6].ツヴィ・ボティ,ロバート・C・マートン(2001)『現代ファイナンス論(改訂版)~意思決

定のための理論と実践~』ピアソン・エデュケーション

[7].デービッド・G・ルーエンバーガー(2002)『金融工学入門』日本経済新聞社

[8].野村金融研究所 編(2001)『金融工学辞典』東洋経済新報社

[9].藤林宏,矢野学,岡村孝(2001)『EXCELで学ぶファイナンス〈2〉証券投資分析(改訂版)

金融財政事情研究会

[10].森棟公夫(1999)『計量経済学 プログレッシブ経済学シリーズ』東洋経済新報社

[11].ロイター 編(2002)『ロイター最新金融用語辞典』ピアソン・エデュケーション

[12].渡部敏明(2000)『シリーズ<現代金融工学>④ ボラティリティ変動モデル』朝倉書店

[13].Jack Johnston. John DiNardo.(1997) Econometric Methods, 4th ed., The McGraw-Hill

Companies,Inc

[14].James D. Hamilton(1994) Time Series Analysis , Princeton Univ Pr

Page 127: Financial Toolbox - MathWorks · はじめに 本内容は ... 11.2 ボックス-コックス(Box-Cox)変換 ... 定額法による毎年の減価償却費は、[(取得原価-残存価格)

Financial Toolbox 概説書 2011 年 1 月作成

http://www.mathworks.co.jp

営業部: http://www.mathworks.co.jp/contact_us/

テクニカル・サポート: http://www.mathworks.co.jp/support/contact_us/

ユーザ・コミュニティ: http://www.mathworks.com/matlabcentral/

デモ: http://www.mathworks.com/products/demos/

トレーニング・サービス: http://www.mathworks.com/services/training/

サードパーティ製品/サービス: http://www.mathworks.co.jp/products/connections/

お問い合わせ: http://www.mathworks.co.jp/company/aboutus/contact_us/index.html

E-Mail: [email protected]