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


menu

クオンツ・ワークショップ with BTMU デリバティブ/クオンツ

【現役クオンツが教える!実践・Python金融工学2】
スマイルモデル(SABR、ShiftedSABR)実装と
マイナス金利対応モデル

※Python(Anaconda)をインストール済みノートパソコンを弊社で準備いたします。

【開催日時】 2017年 9月 8日(金) 9:30~16:30(6時間)
【講師】<メイン>関友宇、<サポート>町田暢之、高須翔
【受講料】75,600 円(税込)

ワークショップの特徴

python

Pythonはクオンツ分野でも最も注目されているプログラミング言語です。 オブジェクト指向言語で、豊富な機能を備えている一方で、非常に使いやすく、 無料で入手できる、ポータブルであるといった特徴も備えています。 科学技術計算、統計解析、機械学習などに有益なモジュール (numpy, scipy,scikit-learn, statsmodels等)も充実しており、 クオンツ分野の解析、情報処理、計算にも広く使われています。
 本ワークショップでは金利オプションプライシングのモデル実装及び実践を行います。 Black-Scholesモデルに加えて、マイナス金利導入以降メジャーとなったノーマルモデル、シフトモデルを扱います。 また、金利オプションマーケットでよく使用されるSABRモデルを実装し、ボラティリティスマイルへのキャリブレーションを行います。 これらを組み合わせることで、マイナス金利、ボラティリティスマイルに対応した金利オプションのプライシングが可能になります。

実施スケジュール

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

講師

関 友宇<メイン> 講師写真
株式会社三菱東京UFJ銀行 デリバティブ・デスク・クオンツ
2012年京都大学卒業、2014年同大学院理学研究科物理学修士課程修了
同年株式会社三菱東京UFJ銀行入行。一貫してデリバティブ・トレーディングデスクの分析サポート業務に従事。
現在為替モデル及びフロントツール高度化を担当。

町田 暢之<サポート> 講師写真
株式会社三菱東京UFJ銀行 デリバティブ・クオンツ(新商品開発、システム開発)
2010年立命館大学卒業、2012年同大学院理工学研究科基礎理工学専攻数理科学コース修士課程修了
同年株式会社三菱東京UFJ銀行入行。
入行以来、デリバティブトレーダーのサポート業務として、デリバティブ新商品開発、リスク分析、及びシステム開発に従事。
直近は、デリバティブシステムの海外展開を担当。

高須 翔<サポート> 講師写真
株式会社三菱東京UFJ銀行 デリバティブ・クオンツ
2012年東京大学経済学部卒業、2014年同大学大学院数理科学研究科修士課程修了。
同年株式会社三菱東京UFJ銀行入行。一貫してデリバティブのモデル開発業務に従事。
現在、金利系・為替系デリバティブのモデル開発業務を担当。

カリキュラム

  • 金利オプションマーケットと価格付け
    (1)金利オプション(キャップ、スワップション)の商品性
    (2)金利オプションのマーケット
    (3)金利オプションの価格理論
  • オプション解析式実装、マイナス金利対応
    (1)フォワードスワップのプライシング
    (2)Black式の実装
    (3)マイナス金利モデル(shifted Black, Normal式の実装)
  • スマイルモデル(SABR、Shifted SABR)実装
    (1)インプライドボラティリティ計算関数実装
    (2)SABRモデル実装、shifted SABRモデル実装
    (3)ボラティリティスマイルへのキャリブレーション

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

ワークブック

講義資料

  • ・カリキュラム内容をカバーした講義資料をワークショップ当日に全員に配布します。
    PythonデータセットはUSBメモリ等に格納してお持ち帰りいただけます。

      事前学習用

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

      • ・ジョン・ハル(著)『フィナンシャルエンジニアリング<第9版>:デリバティブ取引とリスク管理の総体系』(共訳、金融財政事情研究会、2016) Ch.9-Ch.15, Ch.17-Ch.21, Ch.29-Ch.31
      • ・【オプション評価】村上 秀記 (著)『金融実務講座 マルチンゲールアプローチ入門: デリバティブ価格理論の基礎とその実際』(近代科学社、2015)
      • ・【pythonデリバティブ】 ”Derivatives Analytics with Python: Data Analysis, Models, Simulation, Calibration and Hedging (The Wiley Finance Series)” Yves Hilpisch (著)
      • ・【金利モデル・プロダクツ】 ”Interest Rate Modeling. Volume 1: Foundations and Vanilla Models”, Leif B.G.Andersen, Vladimir V.Piterbarg(著), Atlantic Financial Press,2010
      • ・三菱東京UFJ銀行市場企画部/金融市場部 (著)『デリバティブ取引のすべて~変貌する市場への対応~』(きんざい、2014)

      reference reference

      参考サイト

      • ・【マイナス金利】 ”New volatility conventions in negative interest environment” (http://www.d-fine.com/fileadmin/d-fine/hochgeladen/Fachartikel/WhitePaper_Vols_NegIR_V1_1_en.pdf)
      • ・【SABR】 ”Managing Smile Risk”, Patrick S.Hagan, Deep Kumar, Andrew S.Lesniewski and Diana E.Woodward (著) (http://www.javaquant.net/papers/managing_smile_risk.pdf)
      • ・シグマインベストメントスクール「エクセルを使ったモンテカルロ・シミュレーション」
      • ・シグマインベストメントスクール「金融エンジニアリング キーワード解説」
      • ・松原 望「確率論の入門基礎」(http://www.qmss.jp/prob/)
      • ・松原 望「基礎統計ワークショップ」(http://www.qmss.jp/e-stat/)

      受講料

      75,600 円(税込)

      【割引料金のご案内】

      • ・同一法人から2名以上同時にお申込み頂いた場合、1名あたりの受講料は2割引の「60,480(税込)」とさせていただきます。
      • ・お支払い方法「クレジットカード」でお申し込みの方には、割引条件を満たすことを弊社が確認した後、差額分を返金いたします。

      お申し込み方法

      WEB申込

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

      ワークショップ お申込み

      9月 8日(金) 9:30~16:30

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

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

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

       電話番号:03-3665-8191


      関連ワークショップ

      Pythonスクリプト(事前学習用)

      セミナー2日目の予習用Pythonスクリプトです。
      主に2種類の計算を行います。
      ターゲットとなる関数をf(x)とし、
      1. f(x)=0となるxの探索
      2. f(x)を二次関数でフィッティング

      これらの計算はそれぞれ、
      1. インプライドボラティリティの計算
      2. SABRモデルのパラメータキャリブレーション
      に使用します。

      
      import numpy as np
      from matplotlib import pylab as plt
      import scipy.optimize as so
      
      def target_function(x):
          '''
          ターゲット関数の定義
          '''
          return np.tanh(x) - 0.5
      
      def loss_function(f, g, x):
          '''
          関数f(x)とg(x)の誤差を計算する関数
          '''
          return np.sum(np.power(f(x) - g(x), 2))
      
      def main():
          print('xのデータとして0~3までの20グリッドを準備')
          x = np.linspace(0, 3, 20)
          print(x)
      
          print('yのデータをターゲット関数を用いて準備')
          y = target_function(x)
          print(y)
      
          print('ターゲット関数のプロット')
          plt.figure() #新規のウィンドウを描画
          plt.plot(x,y, label = 'target') # (x, y)のデータをプロットとし、'target'とうラベル付
          plt.show() #プロットデータの表示
      
      
          print('1. f(x)=0となるxの探索')
          # 初期値1として、target_function=0の根を探す。
          root = so.fsolve(target_function, 1)
          print(root)
      
      
          print('2. f(x)を二次関数でフィッティング')
          # 最小化する目的関数 func(p)を lambda を使って定義
          func = lambda p: loss_function(target_function, np.poly1d(p), x)
          # パラメータを [1, x, x^2]の係数とし、初期値[-1, 0, 0]として、目的関数を最小化するパラメータを算出
          params = so.minimize(
                  func, x0 = [-1, 0, 0], method = 'Nelder-Mead', tol = 1e-6)
          print(params.x)
          quadratic = np.poly1d(params.x)
          y_quadratic = quadratic(x)
          plt.figure()
          # (x, y)のデータをプロットとし、'target'とうラベル付
          plt.plot(x, y, label='target')
          # (x, y_quadratic)のデータをプロットとし、'quadratic fitted'とうラベル付
          plt.plot(x, y_quadratic, label='quadratic fitted')
          plt.legend(loc='lower right')
          plt.show()
      
      if __name__ == '__main__':
          main()