【Python Program】候補銘柄をエクセルに書き出す
条件を満足する銘柄をエクセルに書き出す
全銘柄から
<条件1>売買代金:10億円以上
<条件2>ボラティリティ:15%以上,100%以下
の銘柄をエクセルに書き出すためのプログラムです。
ファイルを保存するフォルダーを用意します。
例)C:\Users\user\Documents\銘柄候補
import openpyxl
import pandas as pd
from kingaku_chk import baibai
from volatil_chk import Volatil
from volatil_chk import l_value
import warnings
warnings.simplefilter('ignore')
url = "https://nikkeiyosoku.com/stock/all/"
dfs = pd.read_html(url, match = '銘柄名称')
dfs[0].columns = ['コード', '銘柄名称', '業種', '市場']
fname = "[フォルダー名]/全銘柄.xlsx" #[フォルダー名]:用意したフォルダー名
dfs[0].to_excel(fname, index=False)
wb = openpyxl.load_workbook(fname)
ws = wb["Sheet1"]
wbn = openpyxl.Workbook()
wsn = wbn.worksheets[0]
wsn.title = '候補銘柄'
wsn.cell(1, 1).value = 'コード'
wsn.cell(1, 2).value = '銘柄名称'
wsn.cell(1, 3).value = '業種'
wsn.cell(1, 4).value = '市場'
wsn.cell(1, 5).value = "終値"
wsn.cell(1, 6).value = "売買代金"
wsn.cell(1, 7).value = "ボラティリティ"
r_num = 2
for row in ws.iter_rows(min_row=2):
if row[0].value is None:
break
kingak = baibai(str(row[0].value))
if kingak[0] == "-":
continue
if int(kingak) < 1000000: #10億以下
continue
Vol_n = Volatil(str(row[0].value))
if Vol_n > 1.15 and Vol_n < 2.0:
wsn.cell(r_num, 1).value = row[0].value
wsn.cell(r_num, 2).value = row[1].value
wsn.cell(r_num, 3).value = row[2].value
wsn.cell(r_num, 4).value = row[3].value
wsn.cell(r_num, 5).value = l_value(str(row[0].value))
wsn.cell(r_num, 6).value = int(kingak)
wsn.cell(r_num, 7).value = Vol_n
r_num = r_num + 1
print(row[0].value, row[1].value, kingak, Vol_n)
sname = "[フォルダー名]/候補銘柄.xlsx" #[フォルダー名]:用意したフォルダー名
wbn.save(sname)
上記のプログラムを実行すると以下のようなエクセルファイルが保存されます。
最近のコメント