
資産管理は見える化したいけれど、課金はなるべく厳選したい。
無料サービスですませられるなら、その範囲で満足すればいい。
そう思って、これまでは「マネーフォワード」だけで家計も資産も管理して、取れる範囲だけを記録していたんですがね…。
最近はどうにもムズムズしすぎて、遂にAPIサービスに課金してしまいました。
同じ上場銘柄でも、通貨やアセットの違いを意識したくなった
銀行口座や証券口座と連動するタイプのアプリは、証券口座の個別銘柄を単に「株式(現物)」などと分類するし、投資信託は「投資信託」と分類しますね。せいぜい市場とあわせて「リート」を別枠に出してくれる程度。
しかし、たとえば「1482 米国債7-10年ヘッジ有ETF」というETFなんかだと、どう考えても株式じゃないんだよなぁ。更に言うと、円でもない。
自分の意図としても、「外貨に、債券に投資する」つもりで取得したものなので、この金額が増えるにつれて「株式(現物)」という集計区分がどうにも気持ち悪くなってくるわけです。
自動集計に任せていたら、本当の債券比率が把握できない…。
外貨比率という考え方も同じで、たとえ円口座で保有したとしても、「1655 S&P 500 米国株 ETF」は円投資ではなくて、ドル投資を行っているわけです。自分の投資なので、こういうのは実態通りに把握したいじゃないですか。定期的に、自動的に。
① 最初は手軽に、スプレッドシート関数から始めたけれど…
そこで第一歩としては、保有銘柄や投資信託に「意図する通貨」「意図するアセット」の属性をそれぞれ付与しておき、それらの時価を属性ごとに集計する枠組みを作ってみました。
探せばどこかにそれっぽいアプリがありそうですが、うまいこと探せなかったのでGoogleスプレッドシートのスクラッチで始めています。(何かオススメアプリがあったら教えてください…。)
自分はともかく面倒くさいのが嫌いです。
コードを書けだと? やだぴょーん!
というわけで、全く深く考えずにスプレッドシートの機能を使って
=GOOGLEFINANCE("TYO:銘柄コード", "price")
のようなノリで始めたところ、これがともかく使えない。銘柄A はOKだが銘柄B は未対応とか、時間帯によっては全滅とか、ともかく日本株への対応が足りなくてデータが揃いません。
② スクレイピングを渡り歩くのに疲れた
仕方ないなぁ、次善の策で、と入ったのはやはりスプレッドシートに直接入力するタイプのWebスクレイピングでした。
スクレイピングというのは、Webサイトから自動的にデータを集めて成形する操作のことですが、株価取得という観点だとこんな感じのやつのことです。
=IMPORTXML("https://株価のあるURL/" & 銘柄コード, "//*[@class='なにがし']" )
最初は良いかと思いました。
しかし、だんだんとWebスクレイピングは禁止サイトが増えてゆき、データ取得が失敗するようになります。約80銘柄という保有数の多さも良くないのでしょう。
ワークシートに銘柄を羅列し、すべての行に式を書くと、相手サイトは一気に行数分のリクエストを受け付けます。あちこちの個人投資家がこれをバンバンやりだすと堪らんというわけで、次第にどこのサイトでも、一定回数以上は禁止とか、そもそもスプレッドシートからのアクセスは禁止などの対策が当たり前となりました。
それでも、面倒イヤイヤの一心で諦めず、Yahooファイナンスが禁止されたら、株探へ逃げ、それも閉じたら stooqという金融ポータルがあるらしい等々と、散々渡り歩いた挙げ句…、
「こりゃもう駄目だな、辞めよう」という結論に至りました。
なにも、人様に迷惑をかけたいわけじゃないのです。
ちゃんとどこかに登録して、正規の身分を貰って、規約に沿った使い方をして、末永く安定して心の平安を得れば良かったのですね。
③ 要件通りのAPIに狙いを定めたけれど、無料版の厳しさに泣いた
それからはAPI探しの旅が始まりました。
APIも「http://~」にリクエストを送る点ではスクレイピングと同じですが、違うのはリクエスト先がWebページではなく、「エンドポイント」と言われるAPI専用窓口である点です。
スクレイピングは Webページを見るふりでデータを取るのに対し、APIアクセスは最初からデータ窓口に頭を下げて、予め付与された「APIキー」を提示することで正規にデータを戴くもの。
APIキーをゲットするには、ユーザー登録がいりますね。
さて、では、どこに登録しようか…。
最初に狙ったのはやはり無料プランです。(せこい)
海外由来ばかり紹介したがる ChatGPT(の、これまた無料版)にもめげず探索すると、おぉ。日本語で日本市場のちゃーんとした奴がありましたよ。
なんと、天下のJPX(日本取引所グループ)様が公式にデータをくださると!
銘柄の抜け漏れもなく、自分にとって理想的でした。
jpx-jquants.com
もちろん無料でも登録できて、データのアクセスは課金量次第。無料プランは直近12週間よりも古いデータしか取れず、更に「1分あたり呼び出し5回まで」の制限があります。
つまり、無料ユーザーは過去のデータを、12秒おきに1銘柄ずつ取得できると(苦笑)
自分は約80銘柄を保有しているので、単純計算はこうかな?
12秒 x 80銘柄 = 960秒 = 約16分
で、ここまで来るともうコードを書かないわけにはゆかないので、覚悟を決めて… 生成 AIに作ってもらいました笑
実行環境は PC要らずの不夜城、Google Cloud Platform に作成。
株価の更新先は、12ヵ月分の枠を備えたGoogleスプレッドシート。
毎月末の最終営業日の株価を、スプレッドシートの対応する月度部分に更新しておくれ~。それではレッツゴー!
→ストレスありすぎて挫折💀
生成AIがあるとはいえ、最初から全部のすりあわせは難しかったので、ざっくりから詳細へ… と段階的に進める最中、1分あたり呼出5回の制限はツライ修行でした。 気が逸るとペナルティが発動するし、それで「茶でも飲むか」なんてやっていると、フルタイム勤め人の残り時間などすぐに枯渇します。
出来たとしても、フリー版で取得可能な株価は3ヵ月以上前のものだしなぁ。
あー。
これ、絶対お金を払いたくなる罠だわ…。
役立つサブスクって、いいところは全部課金だよねー。世の中ってそうだよねー。
④ もういっそ課金しちゃえ… で、本当にスッキリした
結局、ライト版のユーザーになって月額 1,650円をお納めしました。
「完成形が出来るまでの間だけ…」なーんて言い訳は、既に忘れています。
そして何より、「直近12週間を除く」の制限が解除されて、好きな日の株価が取れるようになったのが決定的で、最早足抜けできなくなったのでした。ちゃんちゃん。
呼出回数の制限も 1分あたり60回、まぁ80銘柄ならこのあたりで充分でしょう。
特に、月末締めをしたい自分にとっては、最新株価よりも日付指定株価が欲しいもの。ちょっと忘れて日をまたいでも、前月末最終日の株価で勝手に集計が更新される気楽さに救われます。
そうそう、J-Quantsは 財務情報も取れるので、もうちょっと頑張れば保有銘柄ROEとかも並べて見られるんだな。SUGEE…。
頑張るって誰が?
自分が2割、生成AIが8割ですw
これからは、資産管理のお供に J-Quants。せっかく課金したので、これからもっと便利な活用方法も見つけたいですね。
お読みいただきありがとうございました。
ついでに ↓クリック応援↓ も戴けると、大変励みになります!
