【期間限定配信】pythonで株価分析をして、爆益を狙う2つの手法。

  • 2022-12-11
  • 2022-12-13
  • python
  • 363view

全銘柄の株価データをデータベースに入れる

最近、私が実際に行っている株価分析を2つご紹介したいと思います。

はじめに銘柄コード一覧を取得します。

〇【簡単!株価分析】pythonで銘柄コード一覧を取得する方法。

自分のローカルPCに銘柄一覧の数だけデータベースを作成します。

「マーケットスピードⅡ」を利用して株価の「始値」「高値」「安値」「終値」「出来高」をデータベースにいれます。

「エクセル」を開いておき、「マーケットスピードⅡ」に接続中であれば、参照セルに銘柄コードを入力すると、自動で「始値」「高値」「安値」「終値」「出来高」も更新されます。

「xl.Range(“I2”).Value = code_list[i]」で変数「code_list」のi番目の銘柄コードを入力させます。

timeモジュールのsleep()を使って、時間を置きます。

時間を置かないとエクセルで株価が更新されないまま、プログラムが進んでしまうことになります。

すごく大雑把な解説は動画で話しています。

コード

for i in range(0,len(code_list)):
# for i in range(0,5):
    try:
        print("--")
        print(code_list[i])
        print("------")
        xl.Range("I2").Value = code_list[i]
        time.sleep(6) #100個表示で1.5秒以上でしっかり読むこむことができている。
        #1000個 3秒で十分
        #500個1秒OK
        #500個0.5秒でもOK
        wb = xlwings.Book(path) #xlwing
        wb.save() #xlwing
        df1 = pandas.read_excel(path,sheet_name='日足チャート',header=1)
        df2 = df1.iloc[:,[0,1,2,3,4,5,6,7,8]]
        #print(df2)
        df = df2.sort_values(by='日付',ascending=False) #日足チャートのときに使用。
    #     df = df2.sort_values(by='No',ascending=False)
        db = str("day")+code_list[i]
        conn = sqlite3.connect(db)
        cur = conn.cursor()
#         cur.execute('CREATE TABLE dayt (day INT,time INT,Open INT,High INT,Low INT,Close INT,Volume INT)')
#         print(df)
        for n in range(0,25): #日足の取得個数。
            da = df.iloc[n,1]
            tim = df.iloc[n,2]
            o1 =  df.iloc[n,3]
            h1 = df.iloc[n,4]
            l1 = df.iloc[n,5]
            c1 = df.iloc[n,6]
            v1 = df.iloc[n,7]
            while v1 == 0:
                m = m + 1
                c1 = df.iloc[m+1,6]
                o1 = c1
                h1 = c1
                l1 = c1
                v1 = df.iloc[m+1,7]
            cur.execute(sql_insert,(da,\
                                    tim,\
                                    o1,\
                                    h1,\
                                    l1,\
                                    c1,\
                                    v1,))
    #         print(da)
    #         print(tim)
    #         print(o1)
    #         print(type(o1))
    #         print(h1)
    #         print(l1)
    #         print(v1)
        conn.commit()
        conn.close()
    except:
        print("エラー")
        print(code_list[i])
        conn.commit()
        conn.close()

pythonで決算確認銘柄を絞り込む

私は毎日発表される決算情報を確認するようにしています。

ただ、決算時期などは500銘柄を超える決算を確認しなければいけないので、pythonを使用して決算を確認する銘柄をある程度絞りたいと考えました。

私は主に「SBI証券」を利用しています。「SBI証券」の決算発表スケジュールは以下のような感じです。

日付をクリックすると、その日付の決算発表された銘柄が表示されます。

*SBI証券に口座がなくても以下のサイトで決算一覧を取得することができます。

決算発表スケジュール 日本経済新聞

決算一覧をコピーしたら、変数moziに文字列として格納します。

*変数名は文字列として格納するので、私は「mozi」にしています。

過去の記事もご参照ください。

【簡単!株価分析】pythonで銘柄コード一覧を取得する方法。

以下のコードでは1株あたり2000円未満の銘柄で3日間の出来高が10000株以上の銘柄だけを抽出しています。

import re
import sqlite3
import pandas
import numpy
p = "2020"
a = "aaaa"
p1 = "2023"
p2 = "2022"
aaa = re.sub(p,a,mozi)
bbb = re.sub(p1,a,aaa)
res = re.sub(p2,a,bbb)
pattern= "[0-9][0-9][0-9][0-9]"
code_list = re.findall(pattern,res)
print(code_list)
for i in range(0,len(code_list)):
    try:
        db = str("nikkei")+code_list[i]
        conn = sqlite3.connect(db)
        cur = conn.cursor()
        df = pandas.read_sql_query(sql="SELECT day,Open,High,Low,Close,Volume FROM kabu ORDER BY id DESC", con=conn)
        o1 = df.iloc[1,1]
        v1 = df.iloc[1,5]
        v2 = df.iloc[2,5]
        v3 = df.iloc[3,5]
        if o1 < 2000 and (v1+v2+v3)>10000:
        #if o1 < 2000 :
            print("https://kabutan.jp/stock/finance?code="+str(code_list[i]))#決算の確認
            #print("https://kabutan.jp/stock/chart?code="+str(code_list[i]))
    except:
        pass
    conn.close()

pythonと関係ありませんが、私は株探で決算を確認するので、株探の決算URL一覧を表示させます。

それから、URL一覧をコピーして「Pasty」という拡張機能を利用して、一度に株探決算ページを開いています。

チャート分析

動画で配信しようとは思っていますが、未だに配信できていません。

細かなチャート解説はpythonの得意分野だと勝手に思っていますので近日公開予定です。

【期間限定配信】pythonで株価分析をして、爆益を狙う2つの手法。
ツイートもチェックしよう!