PythonプログラムでSBI証券・野村証券のIPOブックビルディング申込を自動化しよう!

数年前に、資産運用で日本株を購入していたことがあるのですが、よく狙っていたのがIPO銘柄なんですよね。

>IPOとは、Initial Public Offeringの略語で、日本語では「新規公開株」や「新規上場株式」と表します。具体的には、株を投資家に売り出して、証券取引所に上場し、誰でも株取引ができるようにすることをIPOといいます。
そして、IPO株投資とは、新規上場するときに投資家に配られる“株を買う権利”を抽選で手に入れ、上場日のはじめに付く株価（初値〔はつね〕）で株を売ることで利益を出すことです。もっとかんたんに言えば、「上場する前に株を手に入れて、上場日に売る」という作業。　たったこれだけで利益が出る投資法です。（得体のしれない“未公開株詐欺”とは違って、信用のある証券会社から公正な抽選によって手に入れます）
https://www.ipokiso.com/basic/index.html


引用した文章に書いてあるように、IPO銘柄は『儲かる確率が高い』ということなんです。

それだけにIPO銘柄はとても人気が高く、抽選の倍率がかなり高いんですけど・・・

その抽選に申し込む作業のことを『ブックビルディング申込』と言います。

この作業がとても面倒くさいんです！！

ブックビルディング申込がとても面倒くさい割に、IPO銘柄はとても人気が高いので当選するとは限らないという・・・かなりコスパが悪いなぁと思っていました。

そこで、ブックビルディング申込をPythonプログラムで自動化できないかと思い実装しました！

**自動化プログラムを作ったあとは、ブックビルディング申込にかかる時間がかなり短縮されましたし、全く当選しなかったIPOも1度当選することができました！**

今回は、是非みなさんのブックビルディングにかける時間を短くできればいいなぁという思いでプログラムを公開します！！

## 事前準備
IPOブックビルディング申込プログラムをご自身のPCで動かすためには、いくつか事前準備が必要になります。
順を追って説明していくので、ご安心ください！
### 実行環境
ブックビルディング自動化プログラムの実行環境は以下を想定しております！
- OS：macOS
- 言語：Python3系
- IDE：IntelliJ IDEA
- ブラウザ：Google Chrome

OSについては、Windowsでも実行可能ですが、プログラムを実行するための事前準備をmacOS想定で説明している関係上、macOSとしています。

### IntelliJ IDEAのインストール
まず、プログラムを実行するときに使う開発環境をインストールします。
手順は以下にまとまっていますのでインストールが必要な方は適宜ご参照ください！

https://qiita.com/toranoko92114/items/5ba147a76344ca00a1d9

### Python3系のインストール
次は、プログラムはPythonで書いていますので、Pythonをインストールしなければいけません。
手順は以下にまとまっていますのでインストールが必要な方は適宜ご参照ください！

https://qiita.com/toranoko92114/items/08b287e54bdc36943375

### Seleniumのインストール
次は、ブラウザの自動操作を可能にするツールをインストールします。
手順は以下にまとまっていますのでインストールが必要な方は適宜ご参照ください！

https://qiita.com/toranoko92114/items/f2ca1f4ee5634d918ed6

### ChromeDriverのインストール
次は、SeleniumをGoogle Chromeで使う時に必要なツールをインストールします。
手順は以下にまとまっていますのでインストールが必要な方は適宜ご参照ください！

https://qiita.com/toranoko92114/items/baa0e7cc9ed1443275be

### webdriver_managerのインストール
次に、先ほどインストールしたChromeDriverをプログラム実行時に自動的にアップデートしてくれるツールをインストールします。
手順は以下にまとまっていますのでインストールが必要な方は適宜ご参照ください！

https://qiita.com/toranoko92114/items/f83b4e4b79194afaaa4a

### Intellij IDEAでのインタプリタ設定

これまでに準備してきたPython3（Seleniumやwebdriver_managerが内包されているもの）を、IntelliJ IDEAで実行環境として設定しましょう！

#### 1.ファイル | プロジェクト構造 ⌘ ; に移動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/630308/6287544f-cbff-496c-c3a8-5d11099282c5.png)

#### 2.プロジェクト構造ダイアログで、プラットフォーム設定セクションの SDK を選択し、「＋」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/630308/09e18caa-c1c3-b5ce-d866-9dfafdfa0a3b.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/630308/b1e05003-dc9f-cc81-481a-970261a88670.png)

#### 3.ポップアップメニューから 『Python SDKの追加』 を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/630308/0341562d-032b-663c-1113-e1115b00f804.png)

#### 4.Python インタープリターの追加ダイアログの左側のペインでシステムインタープリターを選択し、「...」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/630308/99889ecc-e7e6-6dec-1ee0-f265119619c0.png)


#### 5.Pythonインタープリターの選択ダイアログで、HomebrewでインストールしたPython3系のパスを選択して「OK」をクリックします。
ご自分がインストールしたPython3系のパスは、ターミナルで以下のコマンドを実行すればわかります！
```bash
% which python3.9
/opt/homebrew/bin/python3.9
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/630308/1460ba3c-90d5-4b02-3d97-09883f63a9b0.png)

#### 6.プロジェクト構造ダイアログにPython3.9（ここはご自分がインストールしたバージョンに読み替えてください）が設定されていることを確認したら、「適用」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/630308/a44a1e7d-ab8a-c78c-5fc0-d829dac080a4.png)

## IPOブックビルディング申込プログラムはこちら

https://note.com/toranoko114/n/n851699d591a2

https://note.com/toranoko114/n/n2f66010eb284

## IPOブックビルディング申込プログラムの実行方法
SBI証券のIPOブックビルディング申込プログラムを例に取ります！

僕はファイル名前を『sbi_bookbuilding.py』と命名していますので、このファイルを実行します。

といっても簡単で、IntelliJ IDEAで以下のコマンドを実行するだけです。

`% python3 sbi_bookbuilding.py `

実行すると、以下のような実行ログが出力されます。

```bash
====== WebDriver manager ======
Current google-chrome version is 98.0.4758
Get LATEST chromedriver version for 98.0.4758 google-chrome
Trying to download new driver from https://chromedriver.storage.googleapis.com/98.0.4758.102/chromedriver_mac64.zip
Driver has been saved in cache [/Users/xxxx/.wdm/drivers/chromedriver/mac64/98.0.4758.102]

=======================Start==============================

（株）セレコーポレーション

=======================End==============================

```
==Startと==Endの間に企業名が出力されたら、その企業のIPOブックビルディング申込が完了したということを指しています！

実行方法は以上です！