【Python Program】ボラティリティをチェック

ボラティリティをチェックするPythonプログラム

銘柄選び(その1)の「条件2:ボラティリティーが大きい銘柄」で、
【具体的指標】直近1か月で15%以上株価が上下している銘柄
ただし、大きくても100%(2倍)以下のもの
を選別するためのプログラムです。

#ボラティリティ(倍数)をチェック
def Volatil(s_code):
    import pandas as pd
    url = "https://stocks.finance.yahoo.co.jp/stocks/history/?code=" + s_code + ".T"
    dfs = pd.read_html(url, match = '出来高')
    dfs[0].columns = ['日付', '始値', '高値', '安値', '終値', '出来高', '調整後終値']
    lastv = []
    r_num = 0
    last = dfs[0].iloc[-1,0]
    while r_num < 21:
        if dfs[0].iloc[r_num,0] == last:
            break
        if isinstance(dfs[0].iloc[r_num,6], str):
            if dfs[0].iloc[r_num,6][:2] == "分割":
                r_num = r_num + 1
                continue
            lastv.append(int(dfs[0].iloc[r_num,6]))
        else:
            lastv.append(dfs[0].iloc[r_num,6])
        r_num = r_num + 1
    d_max = 0
    d_min = 100000000
    for data in lastv:
        if data > d_max:
            d_max = data
        if data < d_min:
            d_min = data
    return (round(d_max / d_min, 2))

引数「s_code」に証券コードを渡すと、
直近一ヶ月の終値の変動が倍数で返されます。

#終値をチェック
def l_value(s_code):
    import pandas as pd
    url = "https://stocks.finance.yahoo.co.jp/stocks/history/?code=" + s_code + ".T"
    dfs = pd.read_html(url, match = '出来高')
    dfs[0].columns = ['日付', '始値', '高値', '安値', '終値', '出来高', '調整後終値']
    return (dfs[0].iloc[0,6])

引数「s_code」に証券コードを渡すと、直近の終値が返されます。

上記二つのコードを「volatil_chk.py」というファイル名で保存しておきます。

Posted by Ish