日銀BOTottoについて

日銀BOTotto「日銀の事をつぶやきたいBotで、前場の終わりにその日のETF購入見込み、日銀の資産購入の動き」をつぶやきます。

僕がゴールデンウィークのStay Home企画でプログラムを勉強し始め、「何か作ろう」と考えて思いついたものです。深い意味はあんまりないです。が、思ったより作りこんだのでフォローして頂ければ嬉しいです。

日銀BOTottoの紹介です。

機能1. 前場終わりにETF購入予測をつぶやく

前場終了の11:30に「前日のTOPIXの終値」からの騰落率を見て、午後に日銀の購入見込みを呟きます。

「前場終わりで前日終値-0.5%以上下落」だと、ほぼ確実に購入と言われていましたが、それより低い下落率でも日銀購入が入ることも20-30%の割合であります。

今のところ

 「かなりの確率で買い入れますよ」

   →100%買い入れ

 「買い入れはないです」

   → 100%買い入れなし。

 「買い入れるか微妙です」

   → 1回だけ買い入れ

って感じです。

Python勉強したので語らせて!

仕組みは、Google Cloud Schedulerで定期起動させたGoogle Cloud Function上の関数でChromedriverを動かし「東京証券取引所が発表しているデータ」を取得しています。途中から前場の分足のキャプチャ画像も入れる様にしました。(プログラムなのに画面キャプチャ出来ると知ってビックリしました。)

画像キャプチャのTweetは微妙な感じがしますが、「分足のデータ」は無料では手に入りません。なので「毎日1分間隔データを取得しCSVファイルに落とす」「日付指定で分足チャートが取れるAPI(自分用非公開)」プログラムを作成し、データ取得の為に毎分周期で動かす事を始めました。年中動かしっぱなしになるのでコストが心配で様子見です。下記がAPIで取得できる画像です。

 

機能2.日銀のETF購入実績をつぶやく

その日の夜に実際に日銀のETFの購入があったかを呟きます。

購入がないとアッさりしてますが、実際ETFの購入があった際には「復習」として「その日の日経平均のチャート」を呟きます。下記例は明らかに後場になって上昇していて日銀の影響が想像できるチャートです。

Python勉強したので語らせて!

周期起動は他と同じ仕組みですが、日銀が毎日更新・公開している「指数連動型上場投資信託受益権(ETF)および不動産投資法人投資口(J-REIT)の買入結果ならびにETFの貸付結果」を利用しています。「エクセルファイルをダウンロード→データ整形・作成→グラフ作成→ツイート」をプログラムで自動化しています。Pythonはグラフのデザイニングが難しいですね。

 

機能3.日銀の資産実績について呟く

3-1 日銀のバランスシート上の資産

日銀の総資産は決算以外に、営業毎旬報告として10日毎に更新・公開されます。こちらは約定金額ベースの資産になります。

更新された翌日に「国債保有額」「ETF保有額」「社債保有額」「REIT保有額」を呟きます。また一カ月前からの増減も記載してます。

Python勉強したので語らせて!

HTMLのWebページからのスクレイピングです。最新ファイルのURLの作成→最新バランスシートのHTMLを取得→テーブルタグ情報から文字列サーチと値取得と典型的な手法です。

3-2 今年の国債の購入額

今年の国債の保有増加額を更新時に呟きます。年間80兆円の上限が撤廃されていますが、上半期はペースが遅いと思っていましたが、コロナの対応で国債が30兆円位追加で発行されるので、受け皿としては準備OKですね。(皮肉ってます)

 

3-3 今年のETFの購入額

今年のETFの購入額を更新時に呟きます。2019年は6兆円が上限でしたが、2020年は上限が12兆円まで拡大されています。「状況に応じて」ということで12兆円買い入れるかは未定です。

 

3-4 なぜかFRBの資産額も

週に一度つぶやきます。日銀が600兆のバランスシートに対して、FRBは7兆ドルほどになっています。世界の中央銀行の緩和政策と連携していくという意味で気になります。

 

機能4.日銀/ETFのニュースについて呟く

毎日お昼頃に、過去24時間に「日銀のETF」関連のニュースがあればつぶやきます。ニュースの質の問題から現在は敢えて「日経新聞」に限定しています。

 

Python勉強したので語らせて!

Googleでのニュース検索でRSSフィードを「キーワード」と「期間指定」で作成できます。これを1日一回チェックし、24時間以内の該当ニュースだけツイートするプログラムを書きました。重複でツイートしない様に時間を厳密にするのが、少し面倒でしたが、サンプルコードはたくさん落ちているので、30分もかからず動きました。

機能5.「教えて!にちぎん」を呟く

日銀が出している「教えて!にちぎん」は、日本銀行や金融、経済に関する質問についてQ&A形式で解説したコンテンツです。

こちらをランダムで呟きます。Twitterの文字数制限があるので簡易化する場合がありますが、本コンテンツへのリンク付きで呟きます。

Python勉強したので語らせて!

日銀のサイトに約200程のQ&Aがあったので、日銀のサイトをスクレイピングし、データフレームを作成しました。日銀のサイトはシンプルで綺麗に作られているので練習台にも良いです。Twitterの文字数制限の140文字に収める様に

・「2文以上のものは1文のみ利用する」

・回答で「トータルで制限の140文字を超えた場合は削り(…続く)等をつける

・実際のコンテンツへのリンクを短縮URLに変換し付与する。

等の処理をしました。処理済のシナリオを「クラウドのストレージ」に保存しています。ストレージを使うと幅が広がりますね。

今後の日銀BOTottoの展望

ネタがマイナーなだけに拡張性があまりないですね。

日銀が公開している情報の開示場所や内容が変われば、動かなくなりますが、日銀はフォルダ構成や情報開示のフォーマットが安定しているのでリスクは低いかと思っています。

日銀の買い入れ予測は、現在、トライアルで毎日分足データを取得してみています(下記、キャプチャ)。前場の終わりと購入実績のデータが溜まったら機械学習にかけてみたいな、と思いました。

趣味を続けるのに重要な「コスト」ですが、Google Cloudを使っていますが、今までに「36円のコスト」しか発生していません。しかも「無料枠300ドル」があるので支払いはゼロですね。コストの心配をしなくても良いというのは続けやすいですね。

何事にも言えますが、興味を持てて続ける事ができれば良いですね。

Python初めて一カ月の記事です。

オッサンがゼロから一か月Pythonプログラムして感じた事