見出し画像

IPO申し込み自動化BOTを作る①

手軽に始められるかつリスクが少ないものとして、IPO(新規公開株)への投資があります。上場前の株を購入する権利を得た後に購入し、上場日に売るというものです。購入価格より上場日の初値の方が高くなりやすいため、リスクが低いといわれています。

簡単に?利益を上げやすいことからIPO銘柄は人気が高く、上場前の株を購入する権利の抽選倍率は非常に高いです。そのため根気よく応募することが重要となります。

応募は証券会社のWebページから数回クリックするだけで可能ですが、ブックビルディング期間を確認し、その都度応募するのには手間がかかります。そこで、自動申し込みするプログラムを作成してみることとしました。対象はIPOチャレンジポイント制度もあることから、SBI証券としました。

手法

Pythonで作成したプログラムにより、IPOへの自動応募を実現します。ただ2020/10/22現在、IPO申込可能な銘柄がないことから、今回はログイン後IPOページを開くまでの自動化とします。将来的には、開いたページから申込可能な銘柄を抽出し、自動申し込みする予定です。

利用環境

・OS:Windows 10
・ブラウザ:Google Chrome
・言語:Python 3.8.6
・ライブラリ:Selenium 3.141.0

SeleniumとPythonを用いてブラウザ上での操作を自動化します。

プログラム

下準備として、Chrome driver.exeをダウンロードし、プログラムを作成するディレクトリ配下に格納しておきます。またSeleniumについてもpipで導入しておきます。その後下記プログラムを実行することで、SBI証券のページを開く→ログイン処理を行う→IPO画面に遷移する、という操作を自動実行できます。

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from time import sleep

options = Options()
options.add_argument('--disable-gpu')
options.add_argument('--disable-extensions')
options.add_argument('--proxy-server="direct://"')
options.add_argument('--proxy-bypass-list=*')
options.add_argument('--start-maximized')

DRIVER_PATH = './chromedriver.exe'
USERNAME = '********'
PASSWORD = '********'

# ブラウザの起動
driver = webdriver.Chrome(executable_path=DRIVER_PATH, chrome_options=options)

# Webページにアクセスする
url = 'https://www.sbisec.co.jp/ETGate'
driver.get(url)

# ロード完了後まで待つ
sleep(5)

# ユーザーネームの入力
element = driver.find_element_by_css_selector('#user_input > input[type=text]')
element.send_keys(USERNAME)

# パスワードの入力
element = driver.find_element_by_css_selector('#password_input > input[type=password]')
element.send_keys(PASSWORD)

# ログインボタンの押下
element = driver.find_element_by_css_selector('#SUBAREA01 > form > div > div > div > p.sb-position-c > a > input')
element.click()

# 国内株式→IPO・POを押下
ipo_url = 'https://site1.sbisec.co.jp/ETGate/?OutSide=on&_ControlID=WPLETmgR001Control&_DataStoreID=DSWPLETmgR001Control&burl=search_domestic&dir=ipo%2F&file=stock_info_ipo.html&cat1=domestic&cat2=ipo&getFlg=on'
driver.get(ipo_url)

# 新規上場株式ブックビルディング / 購入意思表示ボタンを押下
element = driver.find_element_by_css_selector('#main > div:nth-child(11) > div > div > a > img')
element.click()

1. SBI証券のページを開く

画像1

2. ユーザーネーム、パスワードを入力してログイン処理を行う

画像2

3. IPOページに遷移する

画像3

次回はブックビルディング期間になり次第、実際に応募するプログラムを作成したいと思います。

→書きました。


→さらにこの処理を自動実行するシステムを構築しました


この記事が気に入ったらサポートをしてみませんか?