【コピペで動く!】債券利回り上昇時に株価は落ちるのか?過去の利回り上昇時はどうだったのかGoogle Colabで確認してみた。利回りが上昇すると株価指数は?!

スポンサーリンク
投資

債券利回りが反転上昇の傾向を示しています。その上昇におびえるかのように株価指数は調整の様相ですが、過去の債券利回り上昇時にどのような動きがあったのか、確認してみたいと思います。

2022/03/30追記:現在の米国債券関連のチャートを追加します。

Treasury yield curve flattening/inversion signals/Constant Maturity

VolReturn
VolReturn

米国債10年と2年の利回り差

また、債券についてより基本的なことから知りたいという方には私の記事ではありませんが、以下の記事をご参考にいただければと思います。非常にわかりやすく書かれていると思います。

【債券必須知識】イールドカーブの形状解説と事例|フクロウさん
※当記事は2022年1月14日にMarket Passにて掲載した記事をリメイクしnoteに投稿したものとなります。Market Passにアクセス出来ずご迷惑をおかけし大変申し訳ございません。購読解除はこちらより。 はじめに 「債券は情報がない」 「なんだか小難しい…」 「どういう勉強していいかわからない...

追記終了

データの取得

今回のデYahoo! US USのサイトから3種類のデータを取得します。

Treasury Yield 10 Years (^TNX) : アメリカ 10年債券利回り

CBOE Interest Rate 10 Year T No (^TNX) Charts, Data & News - Yahoo Finance
Find the latest information on CBOE Interest Rate 10 Year T No (^TNX) including data, charts, related news and more from Yahoo Finance

S&P 500 (^GSPC)

S&P 500 (^GSPC) Charts, Data & News - Yahoo Finance
Find the latest information on S&P 500 (^GSPC) including data, charts, related news and more from Yahoo Finance

NASDAQ Composite (^IXIC)

NASDAQ Composite (^IXIC) Charts, Data & News - Yahoo Finance
Find the latest information on NASDAQ Composite (^IXIC) including data, charts, related news and more from Yahoo Finance

確認できる範囲では1985年あたりから、データが所得できるようです。それらがどのような値動きをしたのか、過去の債券利回り上昇時にS&P500指数やナスダック指数はどのような値動きをしたのか、確認してみたいと思います。

以前こちらで使用したでデータ取得もとであるセントルイス連銀では株価指数の取得可能期間がS&P500は2012年からと、若干データ数が少ないように感じたいので、今回はYahoo! USのデータソースを利用することにしました。

Pythonによる分析

今回も以前同様使用するツールはGoogle Colaboratoryのpythonを使います。無料で、簡単に行うことができます。Google Colaboratoryについては以前書いた記事をご参照いただければと思います。

実際のコードとやっていること

コードは以下の通りです。

!pip install yfinance --upgrade --no-cache-dir

import datetime
import yfinance as yf
import matplotlib.pyplot as plt
import pandas as pd
pd.options.display.float_format = '{:.4f}'.format

start_D="1985-1-1"
end_D = datetime.date.today()
codelist = ["^IXIC","^GSPC","^TNX"]

data2 = yf.download(codelist, start=start_D, end=end_D)["Adj Close"]
display(data2.head().append(data2.tail()))

display(data2.describe())

fig = plt.figure()
ax1 = fig.add_subplot(111)
ax2 = ax1.twinx()

ax1.plot(data2.index,data2["^IXIC"],label="NASDAQ Composite",color="blue")
ax1.plot(data2.index,data2["^GSPC"],label="SP500",color="orange")
ax2.plot(data2.index,data2["^TNX"],label="Treasury Yield 10 Years",color="red")

h1, l1 = ax1.get_legend_handles_labels()
h2, l2 = ax2.get_legend_handles_labels()
ax1.legend(h1 + h2, l1 + l2,loc='center left', bbox_to_anchor=(1, 0.5), fontsize=18)  
ax3.grid()
plt.show()

データの取得と各列の要約統計量を取得し、まずはそのままの値を右軸に債券利回り、左軸に株価指数のメモリとして、出力します。

まず驚きはS&P500は1985年には165だったものが現在4391と、約26倍になっていることと、ナスダックにいたっては245が14579と約60倍にもなっていることです。

十分、インフレです。それ以上は何も言いますまい。。。
早く始めた方が有利でしたね、、(恐らく今も、有利です。)

アメリカ 10年債券利回りについては12から1.6まで落ちているようです。無リスクの資産運用先としての米国債という物がありますので、運用利回りが下がると、それを補うようにリターンを必要とする資金がいろいろ運用先を求めて動いているという事もあると思います。

データ分析の前処理

今回は株価指数が非常に大きな変化をしています。基本的には10倍以上になっていたりするので、本来は対数処理など、データ分析の前処理をする必要があります。

データの差分や無次元化、株価などであれば対数正規分布への処理など、いろいろありますが、ここは簡便にパーセント処理した状態での解析とします。

興味がある人、さらに言えば、より精密な分析をしたい方はそのあたり、ご自身で行ってみてください。

今回はデータの空白地帯が終わった1992年以降で日次での変化率で分析を行っていきます。

df1=data2["1992-1-1":].pct_change().copy()
display(df1.describe())

fig = plt.figure()
ax3 = fig.add_subplot(111)
ax4 = ax3.twinx()

ax3.plot(df1.index,(1+df1["^IXIC"]).cumprod(),label="NASDAQ Composite",color="blue")
ax3.plot(df1.index,(1+df1["^GSPC"]).cumprod(),label="SP500",color="orange")
ax4.plot(df1.index,(1+df1["^TNX"]).cumprod(),label="Treasury Yield 10 Years",color="red")


h1, l1 = ax3.get_legend_handles_labels()
h2, l2 = ax4.get_legend_handles_labels()
ax3.legend(h1 + h2, l1 + l2,loc='center left', bbox_to_anchor=(1, 0.5), fontsize=18)  
ax3.grid()
plt.show()

ここでは累積積を算出して実際の価格推移に変更します。累積積とは1番目の要素 * 2番目の要素 * 三番目の要素 * … と和が累積されていく計算のことです。

同じ形のチャートになっていることが見て取れると思います。

クロスプロット

横軸X軸を債券利回りの日次の変化率、縦軸Y軸を株価指数の変化率としてクロスプロットを行います。

import seaborn as sns
sns.set_style('whitegrid')
import warnings
warnings.filterwarnings('ignore')

sns.jointplot('^TNX',"^IXIC",df1,kind='reg')
sns.jointplot('^TNX',"^GSPC",df1,kind='reg')

!?この結果は、”利回りが上昇すると株価指数は上昇する”という結果でしょうか。

たしか、利回りが上昇するので、株価指数の下落に気を付けないといけない、、、というのが最近の動向だったはずで、この結果は全く逆なのですが、良かったのでしょうか?

なにかコードにミスをしているかもしれないので、元のデータに戻って確認してみます。

データチェック

利回りの上昇している区間を二つ指定します。
(1998-9-1から2000-1-1)と(2016-7-1から2018-11-1)

その区間の指数の値動きを見てみます。

Zone1_start = datetime.datetime(2016,7,1)
Zone1_end = datetime.datetime(2018,11,1)

Zone2_start = datetime.datetime(1998,9,1)
Zone2_end = datetime.datetime(2000,1,1)

fig = plt.figure()
ax5 = fig.add_subplot(111)
ax6 = ax5.twinx()

ax5.plot(df1.index,(1+df1["^IXIC"]).cumprod(),label="NASDAQ Composite",color="blue")
ax5.plot(df1.index,(1+df1["^GSPC"]).cumprod(),label="SP500",color="orange")
ax6.plot(df1.index,(1+df1["^TNX"]).cumprod(),label="Treasury Yield 10 Years",color="red")

h1, l1 = ax5.get_legend_handles_labels()
h2, l2 = ax6.get_legend_handles_labels()
ax5.legend(h1 + h2, l1 + l2,loc='center left', bbox_to_anchor=(1, 0.5), fontsize=18)  

ax5.axvspan(Zone1_start,Zone1_end, color = "gray", alpha=0.3)
ax5.axvspan(Zone2_start,Zone2_end, color = "gray", alpha=0.3)

ax6.grid()
plt.show()

確かに利回りが上昇している間、株価指数とくにハイテクが強く上がっているように見えます。

経済理論的には?

経済理論的なものはどうでしょうか?

大和証券:株はインフレに強いが、デフレに弱い

Not Found(404) | 大和証券

企業の売上=数量×単価ですから、インフレの時は、単価が上昇するため利益が大きく増加します

という記事もあれば、

SMBC日興証券:金利が上がると株価はどう動く?

金利や為替と株価の関係│はじめての株式投資│SMBC日興証券
金利が上がると株価はどう動く?、為替が動...

継続的に景気が良くなり、金利が上昇する環境下では、(中略)金利上昇と株価上昇が起こります。
反対に、金利上昇が悪い影響を及ぼす場合があります。これは金利が上昇することにより、企業は借入れコストが上昇する為、設備投資の縮小を行います。また、個人消費でも住宅ローン金利が上昇することから、住宅購入を見送ることも考えられ、企業業績低迷への不安が高まり株価は下落する傾向があります。

いったい、どっちでしょうか??

auカブコム証券:逆相関の関係

米国債利回りと日経平均のトレンドを再確認/チャートで読み解く相場分析! | 株のことならネット証券会社【auカブコム】
米国債利回りと日経平均のトレンドを再確認/チャートで読み解く相場分析!のページです。「株」や投資信託を始めたい初心者の方に最適なネット証券会社なら、安心のMUFGグループの「auカブコム証券」へ。

株式市場と国債市場の関係はシーソーの関係になります。つまり、逆相関の関係ということです。

相関的には順にも逆にもなりそうというあたりさわりのない答えになりそうです。

企業業績に悪影響を与えない程度の金利上昇であれば、株価指数は上がる可能性はあるし、特に会社内に固定資産を持ってないようなハイテク企業については価格の値上げ交渉力があれば、そのまま利益の増加という果実を受け取れるという可能性がありそうです。

先行きの見える水晶玉を持っているわけではないので、あまり断定的なことは言えませんが、
利回り上昇=株価下落
と思考停止的に考える必要はないのではないでしょうか。

ディスクレーマー

投資に関する免責事項情報の提供・作業代行を目的としており、投資勧誘を目的とするものではありません。

---

関連記事を紹介します。

【コピペで動く!】日本株、米国株で個別銘柄ベータ値(β値)を簡単に調べる方法 Python 米国株 Webサービス&コード 【Google Colabで違いをみつけろ!】
【コピペで動く!】Pythonで1.5GBのcsvファイル読み込み高速化:1分5秒⇒4秒程度 DASK , pickle (Pythonコードあり)
【コピペで動く!】レイ・ダリオ推奨「オール・ウェザー戦略」をETFで構築するには? ETFの手軽さとそのパフォーマンスの高さとは!【違いをみつけろ!】
【コピペで動く!】Google ColabでPython を用いての 効率的フロンティア と ポートフォリオの最適化 Efficient Frontier & Portfolio Optimization with Python [Part 2/2]
【解決】スクレイピングでHTTP Error 403: Forbiddenでアクセスできないときに試すべき方法【コピペで動く!】【Google Colab:Python:pd.read_html,selenium】
自動化・効率化でなにができるのか!Google FinanceやYahoo Financeからデータ取得して年初来パフォーマンスや週次騰落率のファクターチェック
米国債のゼロクーポン債STRIPSについてのメモ
【コピペで動く!】20行で資産運用モデル作成 Google ColabのPythonで 米国株の株価を取得し、グラフ・チャートを表示
過去50年間のS&P500の季節性の値動きから負けにくいポジション構築はできるのか考える・大統領選挙のアノマリー対応!【コピペで動く!】Google ColabのPythonで自分で調べてみよう!
曜日による米国株指数(S&P500)のパフォーマンスに違いはあるのか?有利なポジション取りはできるのか?【Google ColabのPython:コピペで動く!】Twitterで出てくる知見は本当か自分で調べてみよう。
TradingViewを使ってポートフォリオ運用(複数銘柄運用) 米国株 2019/10/01に10万ドル(約1000万円)投資していたらどうなった?TradingViewのミニチャートウィジェットで簡単確認!
【コピペで動く!】IB証券(インタラクティブ・ブローカーズ証券 )へのPythonでのAPI接続 ib_insync [自分が使っているPythonコード]
株価時系列データを分析する上で正規化を行う事の重要性について紹介する【違いをみつけろ!】
IB証券(インタラクティブ・ブローカーズ証券)のAPIを利用して個別株、ETF、先物のヒストリカルデータの出力できるJupyter notebookファイルの提供
SBIのNISA週間買付金額ランキングを自動更新する
【コピペで動く!】20行で資産運用モデル作成 長期、中期、短期の3区分の期間チャートをGoogle ColabのPythonで作成 【違いをみつけろ!】
プログラム環境構築初心者用におすすめ!Windows10にPython3.9.2をインストールしてIB証券のTWS経由でAPI接続してみた!
自動化・効率化できます!金融向けGoogle スプレッドシートのすぐ使える簡単な使い方4選!(Google Finance,セントルイス連銀,アメリカ合衆国財務省,スクレイピング)【コピペで動く!】
【違いをみつけろ!】StockChartsの使い方を紹介します!12枚のミニチャート表示や、 米国株配当分考慮パフォーマンスや配当・逆イールド・相対比較が可能です!
ボラティリティ クラスタリング(Volatility Clustering)について:Google ColabのPythonでの相場環境分析
米国株のティッカー(Symbol)のスクレイピングによる取得、APIによるヒストリカルデータやファンダメンタルズデータ取得について【コピペで動く!】Python,Quandl,無料枠あり
IB証券(インタラクティブ・ブローカーズ証券)に マイクロ E-mini 先物が登場 その驚きの手数料の安さ と 建玉に必要とされる証拠金は?
pyfolioで米国株ETFの分析をWebアプリでできるようにしてみた!月ごとのリターンの分布やドローダウンの時期・深さなど可視化できます!
TradingViewを使ってポートフォリオ運用(複数銘柄運用・配当込み) 日本株 2019年末に約1000万円投資していたらどうなった?【コピペで動く!】Google ColabのPythonで自分で調べてみよう!
あなたの持っている銘柄の高値からの下落率を把握していますか?人気のETF銘柄で過去の下落幅・ドローダウンをGoogle ColabのPythonウェブアプリで分析・可視化・表示!【コピペで動く!】
【コピペで動く!】株式投資での時間帯における投資行動の違いは大きい Twitterで出てくる知見は本当か自分で調べてみよう。【Google Colabで違いをみつけろ!】
高配当ETFや金ETFが今年はどのような値動き・リターンかご存じですか? 新興国ETF、米国債ETFだけでなく原油ETFやナスダックETFなど、18種類のETF・指数の現状と傾向を知り、今後の予測に役立てよう!【Google Colab・コピペで動く!】
IB証券でのオプション売り、ショートストラングルの実際(GLDでの例)”プットを売って、原資産が下がる”とどうなるか?!
【コピペで動く!】「もし、あの時に米国株に投資をしていたら」Google ColabのPython コードあり Twitterで出てくる知見は本当か自分で調べてみよう。1【違いをみつけろ!】
【コピペで動く!】ビットコインなどボラティリティの大きな銘柄を対数で分析する(Google ColabでCSVデータの読み込みと文字列データを日付、数値データへ変換する前処理、対数正規分布、について)
【違いをみつけろ!】Googleトレンドで株式市場のセンチメント調査 ”VIX”で先行きは予想できるのか?! 
IB証券(インタラクティブ・ブローカーズ証券)のAPIを利用してVIXオプションの各限月の特定の権利行使価格で、CALL,PUTで日足ベース引け値のヒストリカルデータ出力するJupyter notebookファイルの提供やメンテナンス・補修サービス、Windows10での環境構築をさせていただきました。
VIXに関するダッシュボード:恐怖指数とも言われることもあるボラティリティインデックス関係の記事を集めました。
IB証券(インタラクティブ・ブローカーズ証券) TWSへの銘柄の読み込み方法教えます
【コピペで動く!】株価の分布、銘柄の比較など、Pythonの数理統計関数(標準偏差、中央値など)による分析 【Google Colabで違いをみつけろ!】
【コピペで動く!】ゴールドと米国の実質金利の今後の動向について。WebサービスとGoogle ColabのPythonと両方で確認!
Webスクレイピングについて、ヘッダーがピボットテーブルのようになっている場合の扱いについて【Google Colab:Python:pd.read_html】
【コピペで動く!】Google ColabのPythonで可視化 Twitterで”VIX”と同時に何がつぶやかれているか!?
【コピペで動く!】VIXと米国株指数の関係 コロナ前・コロナ後 Google ColabのPythonコードあり【違いをみつけろ!】
ビジネスパーソンこそGoogle ColabでPython!インサイドセールスでのセールスファネルや財務諸表分析(PL/BS:ウォーターフォールチャート)、構成比率チャートのデータ分析可視化【コピペで動く!】
2024年M&A関係 SynopsysがAnsys買収を計画
一ヶ月後に見直してみましょう!ネタ【2024年1月】
【コピペで動く!】人間の極端なセンチメントを利用して日経平均の週次でのトレードは可能なのか?(Google Colab,順張り・逆張り)【2021/12月の結果を追記】
おはギャー!を華麗に対処するおすすめ画像8選!これであなたも立派な株クラ!!
相場は韻を踏むのか?2007年の下落と似ているところと似ていないところ
2023年投資関係情報まとめ
強い銘柄には乗って行け!?年初から強い銘柄はその後も年間を通じて強いのか?2018年以降、18種類のETF(米国株指数、ナスダック、日経平均、為替、高配当、ゴールド、原油、新興国、ビットコイン)の傾向を年単位でウェブアプリで確認!
株価のトレンド判定!様々な資産クラス18種類のETF銘柄を特定の調査期間でのトレンドをウェブアプリで分析・可視化・表示します。あの銘柄は買いに転換した?!売りで仕掛けられる?!

コメント

タイトルとURLをコピーしました