Pythonで「儲かりそうなアメリカ株」を見つける
良い株の3つの条件
↓のnoteではニューヨーク証券取引所(NYSE)に上場してる米国株のなかで、儲かりそうな企業を探しました。そのコードの紹介・解説noteです。
あと、後半ではテンバガー狙えそうな、NASDAQ銘柄で探してみました。
広瀬さんのコチラのご著書では、以下の条件を満たす企業の株が良い!と述べられてます。
①営業キャッシュフローが毎年、着実に伸びていること
②営業キャッシュフローが純利益よりも大きい企業
③営業キャッシュフローマージンが15~35%の間の企業
※その他にも、本書にはわかりやすい解説が多く、勉強中の方にはオススメの一冊です。
で、結論として、
「921社(SBI証券で取引できるNYSEの米国株)」の対象の中から、「26社」が広瀬式の条件に当てはまりました。
そこから、さらに、割安な株として以下の「7社」であることがわかりました。
※もっと知りたい方はコチラ
・アリソン・トランスミッション(ALSN)
・ベル・カナダ・エンタープライズ(BCE)
・カーニバルコーポレーション & PLC (CCL)
・コサン (Cosan Limited) (CZZ)
・エンコンパス・ヘルス・コーポレーション(EHC)
・ノルウェージャン・クルーズライン(NCLH)
・フィリップ モリス インターナショナル(PM)
早速、数社購入しました。これからが楽しみです。投資は自己責任で。
大きな流れ
ってことでやったことの解説です。大きな流れは以下です。
step 1:株価サイトをスクレイピング、企業情報の収集、リスト化
step 2:広瀬式の条件に見合う企業をリストから、一気に探す。
本noteを読んでもらうと、以下が出来るようになることが見込まれます。
①基本的な「スクレイピング」のやり方、テクニック
②広瀬式の銘柄選定を、実際に活かせられる
③一社ずつ調べなくても、網羅的なリストから手軽に銘柄を見つけられる
※Pythonは最低限必要な箇所で使用し、その他はエクセルやスプレッドシートの便利機能も使います
基礎的なPythonの知識と株式投資の知識がない方でも、わかるような内容に努めました。
が、どちらか片方でも、少しは前提知識ある方が楽しいと思います。ってことでいきます。
いつものように「Jupyter Notebook」を使います。
step 1:株価サイトをスクレイピング、企業情報の収集、リスト化
なにはともあれ、良い企業を探すためのリストが必要です。
コチラのサイトから情報をスクレイピングさせてもらいます。
再掲しますが、広瀬氏の著書で言われている良い株の条件は以下です。
①営業キャッシュフローが毎年、着実に伸びていること
②営業キャッシュフローが純利益よりも大きい企業
③営業キャッシュフローマージンが15~35%の間の企業
なので、当然ですが、以下の情報が必要です。
各社の
・営業キャッシュフロー
・純利益
・売上(営業キャッシュフローマージンをもとめるため)
早速やってみましょう。
①試しに、1つの企業の営業キャッシュフローをスクレイピング
・使用するライブラリをインポート
import pandas as pd
import numpy as np
from pandas import Series,DataFrame
import requests
from bs4 import BeautifulSoup
from io import StringIO
import requests
import time
サンプルとして、グーグル(Alphabet Inc. ティッカーシンボルはGOOG)の営業キャッシュフローをスクレイピングしてみます。
↓の赤枠が、欲しい情報(=営業キャッシュフロー)です。
※「営業キャッシュフロー」の意味がよくわからない方はコチラ。
・URL内の情報を取得して、変数に格納
#試しに一つの企業の情報を取得
url="https://www.marketwatch.com/investing/stock/goog/financials/cash-flow"#GoogleのURLをセット
test_url = requests.get(url)
test_soup = BeautifulSoup(test_url.text,"html.parser")
test_information = test_soup.find_all("td", class_="valueCell")
これで、先ほどのURL内の情報がtest_informationに格納されました。
・営業キャッシュフローに該当するリスト要素を指定
#該当するList内要素を取得
print(test_information[75:80])
リストの中の、75~80番目が営業キャッシュフローの数値が入っている要素です。
↓のようになっていると、しっかりスクレイピングできています。
下記の実際の画面とあわせて確認すると、
(2014~2018で)22.38B、26.57B、36.04B、37.09B、47.97Bとしっかり取得できています。
不要な文字などがありますが、後ほど削除するのでここではスルーでOK。
これで、Google社の営業キャッシュフローの情報を取得しました。同じ要領で、「純利益」「売上」を取得し、それをいっぱい集めれば、条件に合致する株を見つけられます。
が、そんなことはしんどいですね。繰り返し処理でサクッと楽にやっちゃいましょう。
②さくっと一気に行います
※筆者の使用しているのがSBI証券なので、同社を前提にします。
・まず、ティッカーシンボルのリストを作ります
コチラからSBIで取り扱いのある米国株をズラーっとコピペします。
貴重なお時間で読んでいただいてありがとうございます。 感謝の気持ちで、いっPython💕