Pythonコード集

【Python】米金利とナスダックのトレンドをチャートで分析!基本編

Aさん
最近のナスダック総合指数の下落が気になります
原因は何ですか?

 

2月の下旬から、米株は不安定な値動きが見られます。

特に、ハイテク株が多く上場するナスダック総合指数(以下ではナスダック)の下落幅が拡大しています。

そしてナスダックの下落は、ハイテク株がけん引していることは明らかです。

 

では、なぜハイテク株の下落幅が拡大しているのか?

結論から言えば『米国の長期金利が急上昇している』からです。

 

では、米国の長期金利(以下では米金利)が急上昇するとなぜハイテク株が下落するのか?

それは『ハイテク株の割高感』が意識されているからです。

この点についての詳細は、以下の記事をご覧ください。

米金利が上昇するとハイテク株の割高感が意識される背景をまとめた記事です。

関連記事【米株】ナスダックス指数が上昇し続ける理由と今後の焦点とは?②

続きを見る

 

しかし昨年の8月以降、米金利は緩やかな上昇のトレンドにあります。

その間、ナスダックも上昇トレンドにありました。

ということは、”ある時点” から米金利の上昇がナスダックの下落要因として意識されていることになります。

そして、今後はそのリスクが意識されることにより、米国の株式市場では ”あるトレンド” が発生するでしょう。

 

そこで今回と次回では、プログラミング言語『Python』を使ってー

・米金利とナスダックの関係

・今後の米国株の焦点

について考えてみたいと思います。

 

今回と次回の記事を最後までお読みいただければ、Pythonでのチャート分析の方法や今後の米国株(アメリカ株)の焦点を知ることができます。

ぜひ最後までお付き合いください!

 

記事を読んでわかること

わかること

  • PythonでYahoo!financeからマーケットデータを取得する方法
  • Pythonでチャートを作成する方法
  • 米金利とナスダックの関係が変化した時期

 

この記事の対象となる人

こんな人におすすめ

  • プログラミング言語『Python』に興味がある人
  • Pythonを使ってチャートを作ってみたい人
  • Pythonを使ってマーケットの分析をしたい人

 

結論からいいます

  • Pythonを使えば簡単にマーケットデータが取得できる
  • Pythonを使えば簡単にビジュアルチャートが作成できる
  • Pythonを使えば簡単にマーケットの相関性が確認できる

 

Pythonで分析してみよう!

APIでYahoo!financeからデータを取得してみよう!

APIって何?という方は、Google先生に聞けばすぐにわかります。

なのでこのブロブでは、APIを使ってYahoo!financeから実際に株価のデータを取得し、Pythonで作成したチャートで分析する方法にフォーカスします。

その方が、PythonやAPIに対する理解も深まると思います。

 

さて、今回のテーマのひとつがー

米金利とナスダックの関係

です。

 

まずは、いつも通りYahoo!financeからマーケットデータの取得をしてみましょう!

※スマートフォンでご覧の人は、コード一覧の画面を左右にスライドして見ることができます。

Pythonのコード例:株価の取得

import pandas as pd
import pandas_datareader as web

import matplotlib.pyplot as plt
%matplotlib inline

start='2021-01-01'

us10yt = web.DataReader(data_source='yahoo', 
name='^TNX',
start=start,
end='2021-12-31')['Adj Close']

nsdq=web.DataReader(data_source='yahoo', 
name='^IXIC',
start=start,
end='2021-12-31')['Adj Close']

print(us10yt.head(),us10yt.tail())
print(nsdq.head(),nsdq.tail())

 

print( )関数で実際にデータが取得できているかどうかを確認してみるとー

実行結果:データの確認

・米国10年債利回り

・ナスダック

ちゃんとデータが取得できていることが確認できました。

なお、データが多すぎるときは、以下のように最初と最後をチェックすればOKです。

参考

head( )関数:最初の5つのデータだけを表示する

・tail( )関数:最後の5つのデータだけを表示する

 

Pythonでチャートを作成

次は、いよいよPythonを使ってビジュアルチャートを作成します。

Pythonでビジュアルチャートを作る場合、データを簡単に可視化することができるー

matplotlib

というライブラリを使います。


matplotlibって何?という方は、以下のリンク先をご覧ください。

matplotlibとは?


Pythonのコード例:チャートの作成

from matplotlib import rcParams
rcParams['figure.figsize']=15,10
rcParams['font.size']=20

rcParams['font.family']='sans-serif'
rcParams['font.sans-serif']=['Hiragino Maru Gothic Pro', 
 'Yu Gothic', 'Meirio', 
 'Takao',
 'IPAexGothic',
 'IPAPGothic',
 'VL PGothic', 
 'Noto Sans CJK JP']


us10yt.plot(lw=3,color='green')
plt.title('米10年債利回り')
plt.grid(True)
plt.axvline('2021-02-12',color='black',ls='--')


nsdq.plot(lw=3,color='limegreen')
plt.title('ナスダック総合指数')
plt.grid(True)
plt.axvline('2021-02-12',color='black',ls='

上のコードを実行すると以下のようなビジュアルチャートが描画(びょうが)されます。

実行結果

・米10年債利回りチャート

米国10年債利回りの日足チャート(2021年以降)

 

・ナスダックのチャート

ナスダック総合指数の日足チャート(2021年以降)

 

簡単に2つのチャートが作成できました。

 

注目すべきこと

ここで注目して欲しいのは、黒い縦線の ”” の動きです。

この縦線は、『2月12日』を示しています。

2月12日より前は、米金利の上昇とナスダックの上昇が同時に発生していたことがわかります。

しかし2月12日以降、その関係に変化が見られます。

その変化とは、以下の2点です。

注目ポイント

  • 米金利が1.2%の水準を突破しその後1.6%へ急騰した
  • 米金利が1.2%の水準を突破すると同時にナスダック総合指数の下落がはじまった

このように①データをチャートで可視化して、②そのチャートを上下に並べ、③たった一本の縦線を引くだけでも、『米金利の上昇がナスダックの下落要因として意識された時期』、つまり『トレンド転換のシグナル』を簡単に把握することができるのです。

 

コードの説明

ここからは、上で書いたコードの詳細な説明に入ります。

1:まずは必要なライブラリをインポート

#pandasはデータ分析で必須のライブラリ
import pandas as pd

#pandas_datareaderはマーケットデータをYahoo!financeから取得するためのライブラリ
import pandas_datareader as web

#matplotlibはデータ可視化のライブラリ
import matplotlib.pyplot as plt
#下のように書くことでjupyter上でチャートが表示される
%matplotlib inline

まぁ、ライブラリのインポートは”公式”みたいなもんです。

書いていれば自然と慣れていきます。

 

2:マーケットデータの取得

#最初のデータ取得日を設定
start='2021-01-01'

#米国長期金利(10年債利回り)のデータを取得するコード
us10yt = web.DataReader(data_source='yahoo', 
name='^TNX',
start=start,
end='2021-12-31')['Adj Close']

#ナスダックのデータを取得するコード
nsdq=web.DataReader(data_source='yahoo', 
name='^IXIC',
start=start,
end='2021-12-31')['Adj Close']

ポイントは『DataReader』の引数です。

DataReaderの引数

data_source:ここで”yahoo”と設定してyahoo!financeからデータを取得する

name:ここで取得したいデータのティッカーコードを指定

start&end:ここで取得したいデータの期間を設定

['Adj Close']”Adj Close”のみのデータを取得するコード

 

なお、yahoo!financeのティッカーコードについては以下の記事をご覧だくさい。

関連記事【Python】Yahoo!financeのデータでローソク足を作成してみよう

続きを見る

ちなみに米国10年債利回りのティッカーコードは『^TNX』となります。

ナスダック総合指数のティッカーコードは『^IXIC』です。

 

3:ビジュアルチャートの作成

さて、いよいよPythonでチャートを作成するコードです。

まずはどんなチャートを作るのか?その設定からです。

#rcParamsでチャートのサイズ、フォントサイズ、フォントタイプを始めに設定
from matplotlib import rcParams

#チャートのサイズを設定
rcParams['figure.figsize']=15,10

#フォントのサイズを設定
rcParams['font.size']=20

#フォントのタイプを設定
rcParams['font.family']='sans-serif'
rcParams['font.sans-serif']=['Hiragino Maru Gothic Pro', 'Yu Gothic', 'Meirio', 'Takao', 'IPAexGothic', 'IPAPGothic', 'VL PGothic', 'Noto Sans CJK JP']

ポイントは『rcParams』の使い方です。

rcParamsとは?

・rcParamsはmatplotlibのレイアウト全般を設定するコード

・『plt.rcParams["設定したいパラメータ"] = (値)』でレイアウトを調節できる

 

チャートの設定が終わったら、次は米金利とナスダックのデータをラインチャートで可視化します。

コードは以下です。

#米金利のチャートを作成するコード
us10yt.plot(lw=3,color='green')

#タイトルを作成
plt.title('米10年債利回り')

#グリッドラインの表示
plt.grid(True)

#2月12日に黒い縦線を引くコード
plt.axvline('2021-02-12',color='black',ls='--');



#ナスダックのチャートを作成するコード
nsdq.plot(lw=3,color='limegreen')

#タイトルを作成
plt.title('ナスダック総合指数')

#グリッドラインの表示
plt.grid(True)

#2月12日に黒い縦線を引くコード
plt.axvline(x='2021-02-12',color='black',ls='--')

上の注釈を読んでいただければ、どのコードがどんな役割を果たしているのか?がすぐにわかると思います。

ポイントは、一番最後の『plt.axvline』です。

『plt.axvline』は、”あるx軸のポイントを起点に1本の垂直線(vline)を引いてくれ”という意味です。

今回、x軸のポイントは "2月12日" と設定しました。

上でも指摘したとおり"2月12日" を境にして米金利が急上昇し、かつナスダックが下落した時点だからです。

plt.axvlineの引数

x:ここで縦線を引きたいx軸のポイントを設定

color:縦線の色を設定

ls(line styleの略):ラインのスタイル(今回は点線 ”--” )を設定

 

垂直のことを英語で表現すると『vertical』となります。

よって”vline”は、”vertical line”の略となります。

 

ちなみに、チャートに横線を引くコードは『plt.axhline( )』となります。

違いは”hline”です。

これは、水平線を意味する"horizon line"の略です。

"horizon" は水平という意味です。

 

次回はseabornによる分析

seabornのサイトより

今回は、Pythonで①米金利とナスダックのビジュアルチャートを作成し、②それらを上下に並べ、③一本の縦線を引くだけで、”2月12日を境にして米金利の上昇がハイテク株の下落圧力を高めている” ということが分かりました。

これは、”2月12日を境にしてナスダックのトレンドが変化している”ことを意味します。

この事実はとても重要です。

これから米株に投資する際、セクターや銘柄の選定を慎重に選ぶ必要があるからです。

この点について、次回以降の記事で解説していきます。

 

今回ご紹介したPythonのチャート分析は、基本の ”き” です。

そこで次回は、今回の基礎編をベースに統計学の手法を取り入れて、米金利とナスダックの関係についてもう少し詳しく分析してみます。

ちょこっとだけヒントを言うと『seaborn』というライブラリを使います。

こうご期待!


seabornって何?という方は、以下のリンク先をご覧ください。

seabornとは?


まとめ

まとめ

  • Pythonを使えば簡単にマーケットデータが取得できる
  • Pythonを使えば簡単にビジュアルチャートが作成できる
  • Pythonを使えば簡単にトレンドの転換点がわかる

注記事項

ジェイの米国株投資ブログ(以下当サイト)に掲載されている記事は、投資の助言を目的としたものではありません。当サイトに掲載されたコンテンツの正確性については、可能な限り注意を払っています。しかし、意図せず誤情報が紛れ込む可能性や情報そのものが古くなっている可能性があり、その正確性を完全に保証するものではありません。
当サイトのコンテンツを参考に投資を行い、その後発生したいかなる結果についても、当サイト並びにブログ運営者は一切責任を負いません。すべての投資行動は『自己責任の原則』のもとで行ってください

 

最後に

Pythonを学びたい方へ

今やPythonは、マーケットの分析に限らず、あらゆる分野で使われているプログラミング言語です。

Pythonを学んでおけば株式の投資に役立つだけでなく、これからのキャリアを形成する上でも力強い武器となるでしょう。

『私もPythonを学んでみたい!』

という人は以下のリンク先をご覧ください。

プログラミングを学ぼう

 

なぜプログラミングを学ぶ必要があるのか?その理由がわかります。

そして『これがPythonを効率的に学ぶ方法だ!』と、ジェイが自信をもっておすすする効率的な学習方法もわかります。

この記事と出会ったのも何かの縁です。
ぜひチャレンジしてみてください!

-Pythonコード集