マイクロ・サービス: FRTB モデリング・リスク・ファクターズ

(This is a japanese translation of the original article Microservices: FRTB Modellable Risk Factors)

  • FRTB規制は、ノン・モデラブルなリスク・ファクターは、キャピタルチャージにおいて、ストレス時のアドオンを賦課することを明示している
  • リスク・ファクターをモデラブルとするためには、持続的に利用可能であるリアル・プライスであるかどうかのテストにパスしなければならない
  • CLARUSのAPIは、OTCデリバティブについて、リスク・ファクターがモデラブルかどうかをテストする関数を提供している
  • このファンクションは、多くのプログラミング言語で作動し、それらには、Python、R、Julia、C++、Javaが含まれる
  • また関連する多くの関数が利用可能となっている。詳細はAPI Documentationを参照願いたい

FRTBのモデラブル・テスト

持続的に利用可能である“リアル・プライス”であるかどうかのテストの定義は;

  • リスク・ファクターは年間を通して最低でも24回の取引を観測できるリアル・プライスであること
  • 連続する2つの取引の間隔は最大で1ヵ月であること
  • 上記についての検証は毎月行われること
  • 期待ショートフォールの期間(例えば12か月)に亘って測定されること

より詳細な説明は、FRTB モデラブルとノン・モデラブルなリスク・ファクター参照

ブラウザー上でダイレクトに実行する

 関数が簡単に実行できるようになっている。最初の例では、ブラウザー上で直接実行できるのだが、コードを書くことすら不要としている。

下記のURLは関数を実行することが可能となっている;

https://eval.clarusft.com/api/rest/v1/frtb/modellablerf.html?riskfactors=USSW2,USSW3,USSW4,USSW5

説明を簡略化するために、リスク・ファクターをBloombergの10年米国ドル・スワップのチッカーにセットする。

ドル・スワップのチッカーにセットする。URLをクリックして関数を実行させるためには、ここで、ユーザー・ネームとパスワードを設定して登録が必要だ。結果は下記のとおりで、全てのリスク・ファクターがモデラブル・テストをパスしている。

RiskFactor  Ticker    Modellable  Count  Gap  Comment
USSW2       USSW2     TRUE         6029  
USSW3       USSW3     TRUE         5764
USSW4       USSW4     TRUE         2177
USSW5       USSW5     TRUE        12264 

Pythonで実行

import clarus

clarus.ApiConfig.api_key = ''
clarus.ApiConfig.api_secret = ''

mylist = open('riskfactors.txt').read()
print (clarus.frtb.modellablerf(riskfactors=mylist)) 

コードは2,3行で、ClarusのPythonモジュールに依拠している(これはひろく使われているRequestsライブラリーに依拠している)。また秘密鍵等はここで登録後入手可能。結果は次の通り;

RiskFactor  Ticker    Modellable  Count  Gap  Comment
USSW1       USSW1     TRUE         1112
USSW2       USSW2     TRUE         6029  
USSW3       USSW3     TRUE         5764
USSW4       USSW4     TRUE         2177  
USSW5       USSW5     TRUE        12264 
USSW6       USSW6     TRUE         1410 
USSW7       USSW7     TRUE         3132 
USSW8       USSW8     TRUE         1142 
USSW9       USSW9     TRUE         1273
USSW10      USSW10    TRUE        19281
USSW11      USSW11    TRUE           76
USSW12      USSW12    TRUE         1029            
USSW13      USSW13    FALSE          25   81  First trade not within a month of start
USSW14      USSW14    FALSE          30   61  Gap of greater than a month found
USSW15      USSW15    TRUE         1877
USSW20      USSW20    TRUE         2098
USSW25      USSW25    TRUE          817
USSW30      USSW30    TRUE         8887
USSW40      USSW40    TRUE           97

上記は、ほとんどのリスク・ファクターがテストをパスしている(つまりモデラブルの列がTrueになっている)ことと、当該リスク・ファクターの過年度の観測数が示されている。

テナー13年と14年の2つのリスク・ファクターがテストをパスしなかった。これは、年間24回のトレードが観測できなかったからではなく、連続する2つのトレードの間隔が、それぞれ81日、61日と、1ヵ月を超えたからである。

モデリング・テストの検証

 使用されたトレードのリストに戻ることで、モデラブル・テストを検証する関数もある。下記は1つのリスク・ファクターについて、実行のためのコードの1部である。

response = clarus.frtb.modellablerftrades(riskfactor='USSW11'))
print (response) 

このコードによって作成された最初の数行の結果は、

TICKER TIMESTAMP              STATUS VENUE  PRICE  NOTIONAL    SDR
USSW11 2016-03-31 11:24:09.0  C      On     1.74   5000000.0   BBG
USSW11 2016-04-07 08:27:25.0  C      On     1.664  1.0E7       BBG
USSW11 2016-04-08 02:13:58.0  C      On     1.648  1.0E7       BBG
USSW11 2016-04-11 15:28:58.0  C      On     1.675  5000000.0   BBG
USSW11 2016-04-12 15:56:32.0  C      On     1.7012 7000000.0   BBG
USSW11 2016-04-27 19:36:57.0  C      On     1.822  2.5E7       BBG
USSW11 2016-04-29 12:20:28.0  C      On     1.807  3.9E7       BBG
USSW11 2016-05-02 13:20:14.0  C      On     1.7971 3.9E7       BBG
USSW11 2016-05-06 14:24:31.0  C      On     1.685  1.2E8      DTCC
USSW11 2016-05-23 13:32:10.0  C      On     1.7625 3000000.0  DTCC
....

上記は各トレードのタイム・スタンプが記載されていて、クリアーまたはアンクリアー、オンまたはオフSEFといった取引基盤のタイプ、プライス、想定元本、報告がなされた情報蓄積機関を示している。

その他のリスク・ファクター

次に、両サイド米国ドルの1ヵ月Libor vs 3ヵ月Liborのベーシス・スワップに関するファクターを、適切なチックによって関数を走らせることでトライしてみる。

RiskFactor  Ticker    Modellable  Count  Gap  Comment
USBA1       USBA1     TRUE        251 
USBA2       USBA2     TRUE        304 
USBA3       USBA3     TRUE        466
USBA5       USBA5     TRUE        965
USBA10      USBA10    TRUE        710 
USBA15      USBA15    TRUE        150 
USBA20      USBA20    TRUE        102 
USBA30      USBA30    TRUE        133 

上記は、1年から30年までの間で、我々が使用するカーブだ。

他にもトライすべきカーブがある。例えば、3ヵ月Libor vs 6ヵ月またはフェッド・ファンド・レート等。

続いて、他通貨、またはクロス・カレンシー・スワップ。

続いて、スワップションのボラティリティ

それらは、金利デリバティブのトレーディング・デスクの相当部分のリスク・ファクターをカバーするだろう。

内部モデルで使われるリスク・ファクターを設定するための多くのデータが用意されている。そして重要なことは、これらは、コストとなるストレス期のアドオンとしての資本賦課ではないことを保証する。

もしこの試行に興味のある方はご連絡をお待ちしています。

無料ニュースレターの入手先は、こちらです

Stay informed with our FREE newsletter, subscribe here.