お仕事おつにゃッス🐈
文系未経験から社内SEになった、あっきょ(@daily_code_JP)です!
あなたが保有する日本の個別株の損益をいちいち管理するのは面倒くさいですよね。
また、日々変動するのでエクセルで管理するのも難しいでしょう。
この記事ではそのお悩みをコピペOKのGASで解決します。
こんな人におすすめ!
- 自分が持っている株式の損益管理を自動化したい
- エクセルを使っているけど、もっと便利で使いやすいものに変えたい
- JavaScriptを学んだけど何をつくればいいかわからない
誰でも無料で簡単にできますので、お気軽に学んでいきましょう!
日本株の損益計算する完成イメージ
スプレッドシートで日本の株式の損益計算を行います。
個別株を行ごとに分けてリアルタイムで「終値」を取得して損益も自動計算する仕組み。
この記事では、日本の自動車メーカーの株式を500株ずつ保有している想定で開発します。
この記事で例に出した銘柄はあくまで例です。運営者が保有もしくは売買を推奨している株式ではありません。
日本の株式データを取得する方法
GASで日本株を取得するには「スクレイピング」という技術を使用します。
スプレッドシートにはアメリカの株式のデータ取得する関数はありますが日本株には未対応。
なので、Googleファイナンスのサイトにアクセスして情報を収集する必要があります。
米国株の株価を取得する方法はこちら。
スクレイピングとは?
スクレイピングとは、WEB上にある特定のデータを自動的に取り出して保存する技術。
トレンド調査や競合調査など、大規模にデータを集めるときに使います。
収集から保存までの流れを自動化すると手間と作業時間を大いに減らせるます。
このように、1クリックで必要な情報を手に入るのがスクレイピングです。
参考サイト : Web スクレイピングとは?自社サイトが晒される脅威から対策まで解説 | SBテクノロジー (SBT)
スクレイピングで気を付けること
スクレイピングを行うには運営サイトが許可しているかを確かめる必要があります。
サーバーへの過度な負荷や抽出したデータの著作権侵害の可能性があるために禁止していることがあるからです。
スクレイピングの許可は公開されているGoogleファイナンスのrobot.txtを確認します。
「Allow: /finance」とあるので個人利用のスクレイピングは問題ないといえます。
スクレイピングするときは必ずrobot.txtを確認ッス!
日本株の管理をする準備
Google Apps Script で日本の株価を取得する準備をします。
ファイルは1つ必要です。
必要なファイル
- Google スプレッドシート…株式データの保存と株価のリアルタイム更新
Google スプレッドシートの作成
Google スプレッドシートを作成していきます。
シートには下のリストの6項目を登録します。
項目 | 詳細 |
---|---|
コード | 購入した株式の証券コード |
企業名 | 購入した日本の株式の企業名 |
保有数 | 購入した株式数 |
取得単価 | 購入した株の平均取得単価 |
終値 | 市場が大引したときの株価 |
損益 | 「終値 – 取得単価」で算出される損益 |
スプレッドシートの1行目に各見出しを記入。
2行目以降に保有している個別株の情報を記入します。
スプレッドシートの準備は以上です。
サンプルコードを貼り付ける方法
サンプルコードはGoogle スプレッドシートにコピペ。
上バーの「拡張機能」の中にある「Apps Script」をクリックしてコードを貼り付けます。
Parserライブラリの導入
GASでスクレイピングを行うには「Parserライブラリ」をダウンロードする必要があります。
コードを貼り付けるApps Scriptの左側にある「ライブラリ」をクリック。
スクリプトIDに「1Mc8BthYthXx6CoIz90-JiSzSafVnT6U3t0z_W3hLTAX5ek4w0G_EIrNw」と記入して検索ボタンを押します。
Parserのバージョン8を導入。
確認できたら追加ボタンを押すと準備は完了です。
日本株の株価を管理するサンプルコード
日本株の現在の価値をリアルタイムで表示する関数を紹介していきます。
解説の項目
- GETPRICE() | 日本株の株価を自動取得する自作関数
- サンプルコード
- 【質問】コード内のdivは何?
GETPRICE() | 日本株の株価を自動取得する自作関数
スクレイピングで日本株の株価を取得するには、自作関数のGETPRICE関数を使用します。
引数には4桁の証券コードを記入します。
例えばトヨタ自動車の場合、引数に「7203」と書きます。
サンプルコード
右上にあるマークを押すとコードのコピペが一瞬でできます。
function GETPRICE(code){
const url = "https://www.google.com/finance/quote/" + code + ":TYO"; //URL
const html = UrlFetchApp.fetch(url).getContentText(); //fetch通信でサイト内の文章を取得
let stockPrice = Parser.data(html)
.from('<div class="YMlKec fxKbKc">') //現在の株価が書かれている箇所
.to("</div>")
.build();
return stockPrice.replace("¥",""); //replaceメソッドで「¥」と取り除いて数字のみを返す
}
【質問】コード内のdivは何?
紹介したコードの中には「div」の文字がありますが、GASには存在しません。
これはHTML(HyperText Markup Language)というWebサイト作成で使う言語でページを構造化する役割があります。
スクレイピングでは、この構造化したHTMLを読み取って株式データを抽出しています。
HTMLがわかれば、サイトに掲載されたPERや時価総額なども取得できるッス!
日本株の株価を取得するテスト
実際に日本の株式のデータを取得してみましょう。
E列に「=GETPRICE(A2)」と記入。
スクレイピングが完了して株価が現れます。
2022年9月20日現在の結果が表示されました。
次はF列に現在の損益を計算します。
「=E2*C2-D2*C2」と記入します。
損益の計算式は以下の通り。
損益 = 現在の株価 × 取得数 – 取得単価 × 取得数
現在の損益が反映されました。
同じ方法でほかの株式にも反映してみましょう。
含み損の場合は数字の前にマイナスがついています。
おわりに | プログラミングで株式の管理を楽に!
以上がGoogle Apps Scriptで保有している日本株の情報を管理する方法でした。
そのままコピペしたり株式管理に使ったりしてみましょう。
プログラミングスキルを身に付ければ今よりも格段に資産運用が楽になります。
とくにGASなら初心者でもわかりやすく学びやすいのが特徴。
投資家だけでなく事務職や営業職にも人気です。
GASを効率的に学ぶなら以下の2つの方法が多いです。
- 参考書やオンライン教材で独学
- プログラミングスクールを利用
正しく学ぶことで非エンジニアでも実用的な業務効率化のスキルが身に付きます。
デイコーでは、GASのサンプルコードからおすすめのプログラミングまで幅広く紹介。
初心者にもわかりやすく解説しています。
プログラミングスクールは82社を分析したッス!
次回の記事もご期待ください!
それでは、よいプログラミングライフを!