日本の金融理論教育をリードするシグマインベストメントスクール


menu

クォンツ・ワークショップ with 上村昌司

Rで入門・金利モデル

~ 確率微分方程式からモンテカルロ法まで ~

【開催日】 2017年 1月31日(火) 9:30~16:30
【受講料】 64,800 円(税込)

ワークショップの特徴

R 本ワークショップは、モデルが与えられたときに、Rを使ってモンテカルロ法によりヨーロピアンタイプのデリバティブの価値や金利モデルの計算ができるようになることを目指します。参考資料『計算ファイナンス』(受講後学習用)のダイジェスト版です。

事前ヒアリングで受講生から希望をきいた上で、R演習したり、質疑応答を交わしながらインタラクティブに、計算ファイナンスを学びます。本ワークショップではRの統合開発環境であるRStudioを使って、Rの実習を行います。

Rを使った実習を交えながら、確率過程とモンテカルロ法について、直感的でありながら理論的に厳密な講義を行います。モデルとしてはブラック・ショールズモデルからはじめて各種金利モデル(特にHull-Whiteモデル)を取り上げます。後で当日配布テキストを見直したときに再利用ができるよう、また他のデリバティブ評価や金利モデルの実装に応用できるよう、Rコードを数多く紹介します。また、随時、Rコードを書く際のコツも紹介します。

クオンツ/計算ファイナンス/リスク管理/商品開発業務を始める方々にとって、貴重な機会になると思います。皆様のご参加をお待ちしています。

講師からのメッセージ

本ワークショップでは6時間を1日間で学習していただくことになりますが、この1日間で学習効果をあげるために、受講生の習熟度合や興味をある程度講師が知っておくことが必要になります。開催日直前にヒアリング項目を作成し、受講生各人の状況や本ワークショップでの興味をお気軽にお知らせください。

本ワークショップでは、Rの視覚化機能などを活用しながら、オプション評価式や金利モデルの計算式やモンテカルロ・シミュレーションに慣れてもらった後、本格的な「確率論」的モデリングについて解説します。

実施スケジュール

日 程 2017年 1月31日(火) 9:30~16:30
定 員 25名
(先着順。定員を超えた場合、お申込順で締め切らせて頂きます)
会 場 シグマベイスキャピタル株式会社 教室
東京都中央区日本橋茅場町2-9-8 茅場町第2平和ビル 3階
アクセス 東京メトロ 東西線・日比谷線「茅場町」駅下車 2番出口より徒歩1分
東京メトロ 日比谷線「八丁堀」駅 徒歩4分
東京メトロ 銀座線・東西線、都営地下鉄 浅草線「日本橋」駅 徒歩8分
詳しい地図はこちら(新しいウィンドウが開きます)

講師

講師写真

上村 昌司(かみむら しょうじ)

博士(理学)

2000年3月 東京工業大学大学院 情報理工学研究科 数理・計算科学専攻 博士課程修了
2000年4月~2004年2月 一橋大学大学院 国際企業戦略研究科 助手
2004年3月~2007年2月 一橋大学大学院 国際企業戦略研究科 専任講師
2007年4月~2014年3月 東京工業大学大学院 イノベーションマネジメント研究科 客員准教授
2007年4月~2014年3月 麗澤大学 経済学部 准教授
2014年4月~現在 麗澤大学 経済学部 教授

books

主な著書、論文

  • ・『クレジットリスク』(共訳、原著『Credit Risk』, D. Duffie and K.J.Singleton)、共立出版(2009)
  • ・『リスクマネジメント』(共訳、原著『Risk Management』, Michel Crouhy, Dan Galai, Robert Mark)、共立出版(2009)
  • ・Strong Convergence of a Proximal-Type Algorithm in a Banach Space, SIAM Journal on Optimization, 13 , 938-945 (2003)

カリキュラム

0.R入門
・基本的なR(RStudio)の使い方
・Rを使いこなすコツ

1.確率過程入門
・確率過程とは何か?
・ブラウン運動
・確率微分方程式

2.金利モデル入門
・確率微分方程式とブラック・ショールズモデル
・確率微分方程式と金利モデル
・確率微分方程式のシミュレーション

3.モンテカルロ法
・デリバティブの価格付け
・モンテカルロ法の原理
・モンテカルロ法によるデリバティブの価格計算の実際
・分散減少法
・準モンテカルロ法(Quasi-Monte Carlo Methods)
・確率微分方程式の近似
・発展的な話題
 (グリークスの計算、アメリカンタイプのデリバティブの計算、金利モデルへの応用)

※カリキュラム内容は一部変更になる場合がありますので、あらかじめご了承ください。

※カリキュラム内容をカバーしたパワーポイント資料およびR資料を当日配布します。

ワークブック

事前学習用

  • 『Rインストール手引き』(Rの事前演習用)
    受講者に事前に送信。
  • 『Rの初歩』(R確率統計の事前学習用)
    https://oku.edu.mie-u.ac.jp/~okumura/stat/first.html
  • 奥村晴彦(著)『Rで楽しむ統計 (Wonderful R 1)』(共立出版)
  • シグマインベストメントスクール「エクセルを使ったモンテカルロ・シミュレーション」
    http://www.sigmabase.co.jp/useful/monte/index.html
  • 『Rで計算ファイナンス』(事前R演習用)
    (受講後学習用)参考資料『計算ファイナンス』の1、4、7章の基本的なRプログラムを抽出した資料です。本資料に事前に目を通してR演習しておくとワークショップ受講時の学習効果がアップします。

    『Rで計算ファイナンス』

  • 『Rで計算ファイナンス』の「Rプログラム」
    (事前R演習用)参考資料『Rで計算ファイナンス』の「Rプログラム」を下に抽出しておきますので、(R確率統計の事前学習用)参考資料『Rの初歩』でRに慣れたら、本ページ末尾の「Rプログラム」を試しに実行してみて下さい。ワークショップ受講前に、ここまで自力でこなしておけば、ワークショップではRで楽しく金利モデルの数理を学ぶことができます。
  • Rプログラム

参考書籍(受講後学習用)

  • 『計算ファイナンス』
    講師が東京工業大学大学院イノベーションマネジメント研究科で行った講義「計算ファイナンス」の講義ノートをまとめたものです。本ワークショップでは本資料に金利モデルの話題を付け加えて新たに編集し直したものをワークショップ当日講義資料として配布します。本資料を事前に読んでおく必要はありません。本資料内容に興味がある方は、本ワークショップ受講後、当日配布の講義資料と対応させて復習して下さい。

    『計算ファイナンス』

  • ハル『フィナンシャルエンジニアリング 9版』21, 29,31章
    デリバティブ/金利モデルの基礎学習の定番テキストです。付属のCD-ROMで取り上げている計算過程がブラックボックスになっていますので、本ワークショップで、そのブラックボックスの一部(オプション評価、金利モデル、モンテカルロ・シミュレーションなどの算出過程)をRコードで明示します。

受講料

64,800 円(税込)

お申し込み方法

WEB申込

下記申込みフォームに必要事項を入力し、送信してください。
(お申し込みボタンを押すと、新しいウィンドウまたはタブが開きます。)
お申し込みになる日程をご確認いただき、ボタンを押してください。
送信されますと、弊社より確認メールが届きます。

セミナー お申込み

1月31日(火) 9:30~16:30

お申込みに関する注意事項

  • 定員になり次第、受け付けを終了いたします。
  • お申込み状況により、延期または中止になる可能性があります。
    開講前に中止の旨をご連絡しますので、ご了承ください。
    受講料をお支払い済みの方には、受講料を返金いたします。
  • セミナーの開催確定後、その旨のご連絡と併せ「受講証」「請求書(希望された方)」をメールにてお送りします。
  • お支払方法「銀行振込」でお申し込みの方には、開催確定後、受講料の請求書をお送り致しますので、所定の金額を全納してください。
    ※原則、実施日までにお振込をお願い致します。ただし、法人でお支払いの場合は、御社の「締め・支払い」規程に基づき、受講料をお振込頂ければ構いません。
  • セミナー当日は、「受講証」を必ずご持参ください。
  • 開催前日および当日のキャンセルはお受けしかねます。予めご了承ください。

お申込みに関するお問合せ

 電話番号:03-3665-8191

金融業務への応用を考えている方は、本ワークショップと2017/2/14(火), 2/21(火)開催の「モンテカルロ法によるHull-White modelの実装」を合わせて受講すれば、金融リスク管理における金利モデルの実装を「確率論」的な基礎付けから短期間で効率的かつ効果的に学べます。

保険分野でのリスク管理業務への応用を考えている方は、本ワークショップと2017/1/26(木), 2/2(木)開催の「Excelで学ぶ保険ERM(3):保険オプション評価(BS/HWモデル)とリスクマージン計測上の課題」や2017/2/14(火), 2/21(火)開催の「モンテカルロ法によるHull-White modelの実装」を合わせて受講すれば、保険ERM/ESGにおける金利モデルの実装を短期間で効率的かつ効果的に学べます。

本ワークショップと11/11(金)開催の「Rで最先端データ分析実務1:統計解析」や12/19(月)開催の「モンテカルロ・シミュレーションの実装」を合わせて受講すれば、クオンツ実務の「確率統計」的な基礎付けをプログラミング言語(VBA/R)習得も兼ねて短期間で効率的かつ効果的に学べます。

ワークショップ・セミナー一覧はこちら

Rプログラム(事前学習用)


#ブラウン運動
Bmotion <- function(mu, sigma){
  T <- 1         #最終時刻
  N <- 250       #[0,T]区間の分割数
  Delta <- 1/N   #1区間の長さ
  X0 <- 0      #初期値
  
  X <- numeric(N)  #Xベクトルの初期化
  X[1] <- X0
  
  for (i in 1:(N-1)){
    X[i+1] <- X[i] + mu * Delta + sigma * sqrt(Delta) * rnorm(1)
  }
  plot(X, type="l")	 #ベクトルXの折れ線グラフ
}

Bmotion(0,1)

#ブラック・ショールズモデル
BS <- function(mu, sigma, X0){
  T <- 1 #最終時刻
  N <- 250 #[0,T]区間の分割数
  Delta <- 1/N #1区間の長さ
  #X0: Xの初期値
  
  X <- numeric(N)  #ベクトルの初期化
  X[1] <- X0
  
  for (i in 1:(N-1)){
    X[i + 1] <- X[i] + mu * X[i] * Delta + sigma * X[i] * sqrt(Delta) * rnorm(1)
  }
  plot(X, type="l") #ベクトル X の折れ線グラフ
}

BS(0.1,0.2,100)

#OU過程
OU <- function(lambda, barx, sigma, X0){
  T <- 1 #最終時刻
  N <- 250 #[0,T]区間の分割数
  Delta <- 1/N #1区間の長さ
  #X0: Xの初期値
  
  X <- numeric(N)   #ベクトルの初期化
  X[1] <- X0
  
  for (i in 1:(N-1)){
    X[i + 1] <- X[i] + lambda * (barx - X[i]) * Delta + sigma * sqrt(Delta) * rnorm(1)
  }
  plot(X, type="l") #ベクトル X の折れ線グラフ
}

OU(1,0.8,0.2,0.5)

#ブラック・ショールズ式によるコールオプション価格の導出

BScall <- function(r, sigma, T, K, S0){
  
  #r: 利子率
  #sigma: ボラティリティ 
  #t: 現在時刻
  #T: 満期
  #K: 行使価格
  #S0: 現在の株価
  
  dplus <- 1 / (sigma * sqrt(T)) * (log(S0 / K) + (r + 0.5 * sigma^2) * T)
  dminus <- 1 / (sigma * sqrt(T)) * (log(S0/K)+(r - 0.5 * sigma^2) * T)
  
  price <- S0 * pnorm(dplus) - K * exp(-r * T) * pnorm(dminus)
  
  return(price)
}

BScall(0.1,0.2,5/12,60,62)

#モンテカルロ法によるコールオプション価格の導出
MCBScall <- function(r, sigma, T, K, X0){
  #r: 利子率
  #sigma: ボラティリティ 
  #T: 満期
  #K: 行使価格
  #X0: 現在の株価
  
  N <- 100      #[0,T]区間の分割数
  Delta <- T/N  #1区間の長さ
  Npath <- 10000  #生成するパスの数
  
  value <- numeric(Npath)  #初期化
  
  for (j in 1:Npath){
    
    X <- numeric(N)
    X[1] <- X0
    
    for (i in 1:(N-1)) {
      X[i+1] <- X[i] + X[i] * r * Delta + X[i] * sigma * sqrt(Delta) * rnorm(1)
    }
    value[j] <- exp(-r * T) * max(X[i+1] - K, 0)
  }
  return(mean(value))
}

MCBScall(0.1,0.2,5/12,60,62)

MCBScall2 <- function(r, sigma, T, K, X0){
  Npath <- 100000
  rnd <- rnorm(Npath)
  
  X <- X0 * exp((r - 0.5 * sigma^2) * T + sigma * sqrt(T) * rnd)
  return(mean(exp(-r*T) * pmax(X - K, 0)))
}

MCBScall2(0.1,0.2,5/12,60,62)