クオンツ・ワークショップ by 石崎文雄、土屋修
SABR/SABR LIBOR Market Model:
With Examples Implemented in Python
~ Python導入からはじめる実践クオンツ ~
【開催日】 2017年 6月 13日(火) 10:00~16:00 (5時間)
【受講料】 64,800 円(税込)
MENU
ワークショップの特徴
Pythonをインストール済みのノートパソコンを弊社で準備いたします。
本ワークショップはPythonの基本的な知識は前提としません。 Pythonは金融分野でも最も注目されているプログラミング言語です。Pythonは、オブジェクト指向言語で、豊富な機能を備えている一方で、非常に使いやすく、無料で入手できる、ポータブルであるといった特徴も備えています。科学技術計算、統計解析、機械学習などに有益なモジュール(numpy, scipy,scikit-learn, statsmodels等)も充実しており、金融分野の解析、情報処理、計算にも広く使われ始めています。
今回のワークショップは、まず石崎文雄氏に、Pythonの基本解説、SABRモデル /LMMの概念的、数学的な基礎の解説をしながら、SABRモデル/LMMの計算部分の Pythonによる実装例を示してもらい、それを受けて土屋修氏にトレーディング実務におけるモデル実装時の様々な留意点について実践に即して解説してもらいます。
SABRモデル/LMMの実装に興味のある方、Pythonを金融分野の解析、情報処理、計算に使いたいと考えている方に大変おすすめです。
実施スケジュール
日 程 |
※開始時刻の30分前より、入場できます。 2017年6月13日(火) 10:00~16:00 |
---|---|
定 員 |
25名 (先着順。定員を超えた場合、お申込順で締め切らせて頂きます) |
会 場 |
シグマベイスキャピタル株式会社 教室 東京都中央区日本橋茅場町2-9-8 茅場町第2平和ビル 3階 |
アクセス |
東京メトロ 東西線・日比谷線「茅場町」駅下車 2番出口より徒歩1分 東京メトロ 日比谷線「八丁堀」駅 徒歩4分 東京メトロ 銀座線・東西線、都営地下鉄 浅草線「日本橋」駅 徒歩8分 詳しい地図はこちら(新しいウィンドウが開きます) |
講師
石崎文雄
株式会社モーダルステージ 代表取締役
近畿大学助手、徳島大学助手、University of California, Irvine 訪問研究員、Electronics and Telecommunications Research Institute エンジニアリング・スタッフ、Korea University 招聘准教授、
南山大学助教授・准教授・教授、東京工業大学非常勤講師等、国内外の大学・研究機関において、確率モデル、通信ネットワーク、オペレーションズ・リサーチ、確率離散事象システム、応用確率等の研究及び教育に従事。その後、様々な分野におけるデータの確率統計的な解析、確率モデルの構築と解析、機械学習によるモデル構築等に関連する業務に従事。2017年 株式会社モーダルステージ設立。京都大学 博士(工学)
土屋 修
シンプレクス株式会社 デリバティブ・クオンツ・アナリスト
東京大学卒業、同大学院修了 博士(学術) ドレスナー・クラインオート証券、シティグループ証券等で金利デリバティブ(CMSスプレッド等)およびハイブリッド・デリバティブ(PRDC等)のモデリングを経験。また、CVAデスクのサポートに携わる。他に新日本監査法人において金融コンサルタントの経験も有する。
カリキュラム
- <石崎>はじめに
-
<石崎>Python導入
Pythonプログラミングの基礎
変数と組み込み型の概要
条件分岐とループの概要
関数の概要
モジュールの利用
Numpy
Scipy
-
<石崎>Vanilla Models
Lognormal Black model
Normal model
Risk sensitivities
-
<石崎>SABR Model
SABR modelの概要
SABRパラメータ
Haganらによる近似
Lognormal近似
Normal近似
キャリブレーション
Risk sensitivities
-
<石崎>LIBOR Market Model
Short rate model
HJM framework
LIBOR Market Model
キャリブレーション
-
<石崎>SABR LIBOR Market Model
SABR LIBOR Market Model
キャリブレーション
- <土屋>金利デリバティブ・モデルにおけるスキューとLMM/SABR
- <土屋>トレーディング実務における留意点
- <石崎&土屋>質疑応答
※カリキュラム内容は一部変更になる場合がありますので、あらかじめご了承ください。
ワークブック
事前学習用
-
・Pythonプログラム
参考サイト(事前学習用)
- ・シグマインベストメントスクール「エクセルを使ったモンテカルロ・シミュレーション」
- ・シグマインベストメントスクール「金融エンジニアリング キーワード解説」
参考書籍
-
”SABR and SABR LIBOR Market Models in Practice: With Examples Implemented in Python (Applied Quantitative Finance)”
Christian Crispoldi, Gérald Wigger, Peter Larkin(著)
受講料
64,800 円(税込)
【割引料金のご案内】
- ・同一法人から2名以上同時にお申込み頂いた場合、1名あたりの受講料は2割引の「51,840円(税込)」とさせていただきます。
お申し込み方法
WEB申込
下記申込みフォームに必要事項を入力し、送信してください。
(お申し込みボタンを押すと、新しいウィンドウまたはタブが開きます。)
送信されますと、弊社より確認メールが届きます。
セミナー お申込み
6月13日(火) 10:00~16:00お申込みに関する注意事項
- 定員になり次第、受け付けを終了いたします。
- お申込み状況により、延期または中止になる可能性があります。
開講前に中止の旨をご連絡しますので、ご了承ください。
受講料をお支払い済みの方には、受講料を返金いたします。 - セミナーの開催確定後、その旨のご連絡と併せ「受講証」「請求書(希望された方)」をメールにてお送りします。
- お支払方法「銀行振込」でお申し込みの方には、開催確定後、受講料の請求書をお送り致しますので、所定の金額を全納してください。
※原則、実施日までにお振込をお願い致します。ただし、法人でお支払いの場合は、御社の「締め・支払い」規程に基づき、受講料をお振込頂ければ構いません。 - セミナー当日は、「受講証」を必ずご持参ください。
- 開催前日および当日のキャンセルはお受けしかねます。予めご了承ください。
お申込みに関するお問合せ
電話番号:03-3665-8191
Pythonプログラム(事前学習用)
#Lognormal Black model
from scipy.stats import norm
import math
def black(f0, y, expiry, vol, isCall):
#Compute the Black formula.
#f0: forward rate at time 0
#y: option strike
#expiry: option expiry (in years)
#vol: volatility
#isCall: True or False
option_val = 0
if expiry * vol == 0.0:
if isCall:
option_val = max(f0-y,0.0)
else:
option_val = max(y-f0, 0.0)
else:
d1 = dPlusBlack(f0, y, expiry, vol)
d2 = dMinusBlack(f0,y,expiry,vol)
if isCall:
option_val = f0 * norm.cdf(d1) - y * norm.cdf(d2)
else:
option_val = y * norm.cdf(-d2) - f0 * norm.cdf(-d1)
return option_val
def dPlusBlack(f0, y, exipiry, vol):
d_plus = (math.log(f0/y) + 0.5 * vol * vol *expiry) \
/ vol / math.sqrt(expiry)
return d_plus
def dMinusBlack(f0, y, exipiry, vol):
d_minus = dPlusBlack(f0, y, expiry, vol) - vol * math.sqrt(expiry)
return d_minus
if __name__ == "__main__":
isCall = True
f0 = float(input('f0 (forward rate at time 0): '))
y = float(input('y (option strike): '))
expiry = float(input('expiry (in years): '))
vol = float(input('volatility: '))
ic = input('isCall? (0)yes, (1)no: ')
if ic == '1':
isCall = False
option_val = black(f0, y, expiry, vol, isCall)
print(option_val)