はじめに
保有する株式の資産推移を見たいと思い、株価データを口座がある証券会社から手動で取得していたが、大変なのでUiPathを使って自動化してみた。
UiPathについて
Webであればスクレイピングが主流だが、昨今は制限が厳しくなっている。
今回使用したのは、SBI証券が提供しているアプリケーション「HYPER SBI 2」である。
UiPath は昔少し触った事があった程度で久しぶりにインストールして使ってみた。
自動化ツール(RPA)にはいろいろな製品があるが、無償で使えるバージョン(コミュニティ)があるのはUiPath位じゃないだろうか。
アカウントを作成して、マイページに入ると、ダウンロードができる。(サイズが1GB位ある)
手動での手順
SBI証券が提供する「HYPER SBI 2」を使って、保有する銘柄の株価情報を CSV で取得する手順。
個人が保有する銘柄はそれほど多くないので1回だけなら苦にならない。
ただ、頻繁に更新するとなればだんだん面倒になってくる。
日経平均株価を取得する例では、
左隅のドロップダウンで「主要指標」を選択し、「日経平均」を選択
[照会]->[CSVエクスポート]ボタンを順に押していく
個別銘柄の場合も、同じ画面で左隅のドロップダウンで「個別銘柄」を選択し、銘柄コードを入力して
[照会]->[CSVエクスポート]の手順。
自動化方法
ともかく、あまり時間を掛けたくなかったので、簡単な方法にした。
あるフォルダにファイル名を銘柄コード4桁にしたファイルを置いておき上書き更新する方法とした。
日経平均株価は便宜的に、「0000.csv」といった感じ。
UiPath では1つの操作をアクティビティ(activity)と言う単位で行い、繋げていくことで処理を行っていく。
繰り返し(Loop)や分岐(If)も1つのアクティビティとなる。
実は、どこに必要なアクティビティがあるのか探すのが初心者にとっては一番わかり難い。
ここでは下の様にフォルダー内ファイルの繰り返しアクティビティを使った。
「CurrentFile」というのがファイルオブジェクトで「CurrentFile.Name」のようにファイル名がプロパティの一つの要素として取得できる。
1銘柄の操作は、レコーダー を使って簡単に生成できる。
ただし、今回キーボード入力が必要なところでうまく出来なかった。
この部分は後で、手動で「テキストを設定」アクティビティを挿入している。
下記は、「ファイルの保存」ダイアログでのファイル名の入力の部分。
ここで「code」は自分で定義した変数、ファイル名の4文字を代入している。
まさに、単純な繰り返しなのでこれだけである。
というところで、約半日で一通り動くようになった。
まだ、UiPath 自体の細かい操作は良く理解していない。
それでも動くのがRPAの真髄といったところか。
CSVの後の処理
本題とは外れるが、落としたCSVはデータベースである PostgreSQL にバッチコマンドでロードして差分登録を行っている。なので株価の抽出期間はいじる必要が無い。
株式分割があると過去に遡って株価を修正する必要があるので、過去から再登録が必要になる。
最後に
レコーダーで自動作成されたボタンの認識率が良いのには少々驚きだった。
UiPathは便利だと再認識した。