はじめに
株式投資で個別銘柄のテクニカル分析をするとき、どのテクニカル指標を分析していいかわからないということはありませんか?
実は、中級者くらいの方でも、銘柄毎にパフォーマンスが高い指標が異なるので、判断に困ります。
そこで、初心者の方でもできる分析方法として、株マップが算出している個別銘柄毎のパフォーマンスの高いテクニカル指標をWebスクレイピングで抽出するプログラムを紹介します。
この記事で解決する悩み
- 個別銘柄分析をするとき重点的に確認すべきテクニカル指標を選定する方法がわからない
このように、平均パフォーマンス&勝率の高いテクニカル指標をスクレイピングします。

スクレイピングとは?
スクレピングとはWebから、情報を抽出することを言います。
詳細は、以下のページを参考にしてみてください。
株マップ

株マップが、スクレイピングしていいサイトかどうかを確認します。
確認結果、特に規制はされていなそうです。(2021/1月21日時点)
User-Agent: *
Disallow:
User-Agent: Slurp
Crawl-delay: 1
User-Agent: bingbot
Crawl-delay: 30
User-Agent: MJ12bot
Crawl-delay: 20
User-Agent: SemrushBot
Crawl-delay: 30
スクレイピングするURL
以下三つのサイトからスクレイピングします。



というのも、以下の表をスクレイピングしてこようと考えているためです。
しかし、この表は、以下三つに分かれているため、それぞれのURLからスクレイピングすることとなります。
- 通算パフォーマンス
- 平均パフォーマンス
- 最高/最低パフォーマンス

開発環境

今回の記事は、Jupyter Notebookで行います。インストール方法や立ち上げ方がわからない方は、こちらの記事を参考ください。
株マップからスクレイピングするコード
スクレイピング
code = str(9433)の中の数字を自分が知りたい銘柄のコードに変更してください。
今回は、9433 = KDDIで仮に、コーディングしてみます。
#最適なテクニカル指標を株マップから取得
import pandas as pd
import seaborn as sns
code = str(9433)
technical = pd.DataFrame()
url_1 = 'https://jp.kabumap.com/servlets/kabumap/Action?SRC=techBunseki/base&codetext='
url_2 = '&PERF_MODE='
url = url_1 + code + url_2
mode_num = ["0","1","2"]
files = []
for i in mode_num:
technical = pd.read_html(url+i)
technical_trend = technical[10]
technical_overheated = technical[11]
technical = technical[13]
files.append(technical)
スクレイピングには、以下を使用します。
- pd.read_html()
pandasの機能の一つで、所定のURLからテーブルデータを抽出する関数です。非常に使えます。
可視化
seabornで、セルに色をつけます。
cm = sns.light_palette("#2ecc71", as_cmap=True)
それぞれ可視化していきます。
#通算パフォーマンス
print("#通算パフォーマンス")
files[0].style.background_gradient(cmap=cm)

#平均パフォーマンス&勝率
print("#平均パフォーマンス&勝率 ")
files[1].style.background_gradient(cmap=cm)

#最高最低パフォーマンス
print("#最高最低パフォーマンス ")
files[2].style.background_gradient(cmap=cm)

technical_trend

technical_overheated

綺麗に抽出できました。
分析
- 平均パフォーマンスから、75日乖離率をシグナルにトレードしようかなと見立てを立てることができます
- RSIやストキャスティックを使った買いのトレードも良さそう
- 今は、過熱感は、そこまでなく上昇トレンドにあるということがわかります
こんな風に、プロでない初心者の方でも、どのテクニカル指標を使えばいいかが一発でわかります。
また、Jupyter Notebookで記録を残すことで、自分が何を指標にトレードの判断をしたのかを残しておくことができます。
これがスクレイピングをするもっとも重要な理由です。
まとめ
個別銘柄毎の重要なテクニカル指標がわからないという方向けに、株マップからスクレイピングする方法を解説しました。
スクレイピングには、以下の方法を使うと短い分量で、テーブルデータを抽出できます。
- pd.read_html()
もっとスクレイピングを勉強してみたいという方は、こちらの記事も参考にしてみてください。
スクレイピングに関する記事は、この他にもありますので、ぜひチェックしてみてください。
今回の記事は、以上です。
最後までお読み頂きありがとうございました。
コメント