Help us understand the problem. What is going on with this article?

気になる株ニュースをQuantopianでサクっと確認してみる

More than 1 year has passed since last update.

これは,Geek Women Japan Advent Calendar 2017 - Qiita3日目にポストです.

ホントかな?と思ったら Quantopian で確認しよう

昨日のTokyo Quantopian User Group Vol.02 - connpassで初心者向けの勉強会に来てくれた皆様,ご参加ありがとうございました.今後ともQuantopian仲間や株等の分析仲間と増やしていくべくがんばります:laughing:
当日の様子はこちら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()

output_0_1.png

う〜ん.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")

output_2_1.png

赤の線が XLKとJNKの5日間の相関を毎日プロットしたものです.ヒストグラムをとってみましょう.

df_return["JNK_XLK_5dCorr"].plot(kind="hist",bins=50)

output_3_1.png

相関高い日が多いですね.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")

output_12_1.png

元記事の【「ハイ・イールド債が売られ始めると,テクノロジー銘柄にも売りが波及する.」というのが昔からよく見る光景.】というのはピンクで囲んだところ,という事になります.
ほうほう.そうかもしれませんね.

これにbetするためにはもう少し分析しないと怖いですね.どなたか,ぜひよろしくお願いします.

すぐ確認出来るQuantopian

株式データをかき集める事はとても時間がかかる事ですが,Quantopianにログインするだけで必要なデータはすぐ利用出来ます.データ分析に集中することが出来るのはありがたいことです.しかも無料.これは使わない手はない!

Quantopianは,アルゴリズムトレードも出来ます

どりらんさんの「Quantopianチュートリアル」を見てみてください.

そんな Quantopian の勉強会をしています.

Tokyo Quantopian User Groupでは今後もQuantopianを使って勉強会をしていきたいと思っています.よろしくお願いいたします.

その他の勉強会

  1. 女性のテクノロジーコミュニティGTUG Girlsは,2ヶ月に1回程度初心者向けのハンズオンイベントを開催しています.来年7年目を迎えます.女性エンジニアの輪を広げていきましょう!

  2. 金融関係のニュースやFintech関連の話題を話したり,時々もくもくしたりする勉強会,月刊フィントークもやっていますのでぜひ.

明日はPyLadiesTokyoのガンダムの人(@chanmitsu55)だ\(^o^)/

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away