これは,Geek Women Japan Advent Calendar 2017 - Qiita3日目にポストです.
ホントかな?と思ったら Quantopian で確認しよう
昨日のTokyo Quantopian User Group Vol.02 - connpassで初心者向けの勉強会に来てくれた皆様,ご参加ありがとうございました.今後ともQuantopian仲間や株等の分析仲間と増やしていくべくがんばります
当日の様子はこちらTokyo Quantopian User Group Vol.02 - Togetter
今日は,タイトルの通り,気になるニュースをQuantopianで確認してみよう!というのをやってみます.
11月11日(土)1時38分配信のガンドラック氏の不吉な警告的中か-ジャンク債とハイテク株相関復活(Bloomberg)
というニュースが気になったのでさっそくQuantopianで確認してみました.
記事を要約すると
「ハイ・イールド債が売られ始めると,テクノロジー銘柄にも売りが波及する.」というのが昔からよく見る光景.
やること
「ハイ・イールド債が売られ始めると,テクノロジー銘柄にも売りが波及する.」というのは本当か?
確認
Quantopianのリサーチ機能を使って分析
Quantopianのリサーチ機能を使って確認してみましょう.Quantopianにログインして,Researchという Jupyter Notebook を使います.ここでは,Quantopianが提供してくれる,株価データや企業データ,SNS等のビッグデータ等が無料で利用できます.すごい!
今回は,ETF の JNK(SPDR BARCLAYS HIGH YIELD BOND) と XLK (TECHNOLOGY SELECT SECTOR SPDR FUND) で確認してみます.
df = get_pricing(["JNK","XLK",],start_date='2013-12-31', end_date='2017-11-11', fields="price")
df = df.rename(columns=dict([(c, c.symbol) for c in df.columns]))
df_return = np.log(df / df.shift(1))
df_return.cumsum().plot()
う〜ん.JNKが落ち始めると,XLKも後をおっているようにみえるかな.
pandas の機能を使ってもう少し分析
get_pricing
で取得したデータは pandas の DataFrame です.なので,dataframe で使える機能を使ってもうちょっと詳しく分析していきます.
## 5日間のReturnの移動相関を演算.
df_return["JNK_XLK_5dCorr"] = df_return["JNK"].rolling(window=5).corr(other=df_return["XLK"], )
df_return["JNK_cumsum"] = df_return["JNK"].cumsum()
df_return["XLK_cumsum"] = df_return["XLK"].cumsum()
## プロット
df_return[["JNK_cumsum", "XLK_cumsum", "JNK_XLK_5dCorr"]].plot(secondary_y="JNK_XLK_5dCorr")
赤の線が XLKとJNKの5日間の相関を毎日プロットしたものです.ヒストグラムをとってみましょう.
df_return["JNK_XLK_5dCorr"].plot(kind="hist",bins=50)
相関高い日が多いですね.quantileメソッドで5%以下だけ取得します
x = df_return.dropna().quantile(0.05, )["JNK_XLK_5dCorr"]
df_return["JNK_XLK_5dCorr_lowCorr"] = df_return["JNK_XLK_5dCorr"] < x
# 条件にあった日付だけ取得
df_return[df_return["JNK_XLK_5dCorr_lowCorr"]].index
DatetimeIndex(['2014-01-09', '2014-01-10', '2014-04-04', '2014-04-07',
'2014-04-25', '2014-04-28', '2014-04-29', '2014-05-05',
'2014-06-25', '2014-06-26', '2014-07-30', '2014-10-02',
'2014-11-03', '2014-11-11', '2014-11-12', '2014-11-13',
'2014-11-14', '2014-11-17', '2014-11-18', '2014-11-19',
'2014-11-20', '2014-11-26', '2014-11-28', '2014-12-26',
'2014-12-29', '2015-01-26', '2015-04-13', '2015-04-14',
'2015-06-03', '2015-06-08', '2015-06-09', '2015-07-17',
'2015-07-20', '2015-08-18', '2015-09-17', '2015-11-25',
'2015-11-27', '2016-04-25', '2016-04-26', '2016-04-27',
'2016-06-03', '2016-11-03', '2016-11-30', '2016-12-27',
'2017-03-08', '2017-05-03', '2017-08-29', '2017-09-28',
'2017-09-29'],
dtype='datetime64[ns, UTC]', freq=None)
では,JNKは5日前から当日まで,XLKは当日から5日後までの価格の変化率をだして,上記の日付に該当する日だけをプロットしてみましょう.
df['JNK_change_from_5days_before'] = df['JNK'] / df['JNK'].shift(-5) - 1
df['XLK_change_after_5days_future'] = df['JNK'].shift(5) / df['JNK'] - 1
df.loc[df_return[df_return["JNK_XLK_5dCorr_lowCorr"]].index].plot(kind='scatter',
x = "JNK_change_from_5days_before",
y = "XLK_change_after_5days_future")
元記事の【「ハイ・イールド債が売られ始めると,テクノロジー銘柄にも売りが波及する.」というのが昔からよく見る光景.】というのはピンクで囲んだところ,という事になります.
ほうほう.そうかもしれませんね.
これにbetするためにはもう少し分析しないと怖いですね.どなたか,ぜひよろしくお願いします.
すぐ確認出来るQuantopian
株式データをかき集める事はとても時間がかかる事ですが,Quantopianにログインするだけで必要なデータはすぐ利用出来ます.データ分析に集中することが出来るのはありがたいことです.しかも無料.これは使わない手はない!
Quantopianは,アルゴリズムトレードも出来ます
どりらんさんの「Quantopianチュートリアル」を見てみてください.
そんな Quantopian の勉強会をしています.
Tokyo Quantopian User Groupでは今後もQuantopianを使って勉強会をしていきたいと思っています.よろしくお願いいたします.
その他の勉強会
-
女性のテクノロジーコミュニティGTUG Girlsは,2ヶ月に1回程度初心者向けのハンズオンイベントを開催しています.来年7年目を迎えます.女性エンジニアの輪を広げていきましょう!
-
金融関係のニュースやFintech関連の話題を話したり,時々もくもくしたりする勉強会,月刊フィントークもやっていますのでぜひ.
明日はPyLadiesTokyoのガンダムの人(@chanmitsu55)だ\(^o^)/