見出し画像

15号 最新データの登録とその他機能について

初期データを登録するために手動で4千近くのCSVファイルをダウンロードするのは大変でした。めんどくさいと言って中断しては再開を繰り返し数日かかったと記憶しています。無料にこだわらなければもっと楽な方法があったかもしれませんが、今苦労して後で楽をするのがシステム開発だと自分に言い聞かせて乗り越えました。

今回は最新データの登録とその他機能について説明をします。

priceフォルダ下のソースコードの処理の流れは基本的に同じなので、各ソースコード独自の処理以外については説明を省略します。

rss_csv_export.py

これはマケスピ2RSSを利用してCSVファイルを作成する処理です。
実行する前にマケスピ2にログインしておく必要があります。
ログイン後にrakuten_rss_csv.xlsxを表示して「接続中」になっていることを確認します。

CSVファイルの保管場所はcsv_config.iniに記載しています。

[path]
csv = C:\Users\yasuda\Documents\株式情報\株価CSV\

26行目でsignalsフォルダ下にあるrakuten_rss.pyのクラスRSSのインスタンスを生成しています。このRSSクラスはsignalsフォルダ下にあるcheck_signal.pyからも呼び出しています。
rss_csv_export.pyから呼び出す場合とcheck_signal.pyから呼び出す場合で参照するExcelファイルを変えています。
rss_csv_export.pyから呼び出す場合はTrue、check_signal.pyから呼び出す場合はFalseにしています。
参照しているExcelファイルの違いは行数だけです。

31行目でRSSクラスのget_csv_export_stock_df()を呼び出しています。
この関数内で取得するデータフレームの行数を400としています。
400という数字はrakuten_rss_csv.xlsxのセルA2で「=RssChart($A$3:$J$3, A1, "D", 400)」と設定しているのでそれに合わせています。
なぜ400かというと、1ヶ月を22日として1年半分(18ヶ月)の株価データを取得するためです。

RSSクラスは有料にする予定だったのにうっかり公開してしまいました。
今回は処理の説明はパスします。

33行目の名称チェックはRSSの接続が切れた場合に処理を抜けるためのものです。

rss_csv_import.py

マケスピ2RSSを利用して作成したCSVファイルの内容をDBに登録します。
独自の処理はないので説明を省略します。

code_all_master.py

これは東証上場銘柄一覧の内容をDBに登録する処理です。
バックテスト結果のExcelファイルの結果まとめシートの項目「名称」「市場」「種別」を表示するために登録を行います。
excel_output.pyの532行目からDBの値を取得する処理が書いてあります。

事前に東証のサイトからダウンロードした東証上場銘柄一覧(data_j.xls)を加工してcode_all_master.csvを作成しておきます。
code_all_master.csvはデスクトップに置きます。

2023年2月末時点のcode_all_master.csvと作成方法のメモが保存してあったので添付しておきます。


code_info_master.py

これは私が独自に分類した銘柄情報をDBに登録する処理です。
登録する内容が違うだけでcode_all_master.pyと処理は同じです。
私としてはcode_info_masterはいらなかったかなと思っています。
excel_output.pyを修正してDBから値を取得しない方がよいのではないかと思います。

内容も古いので必要かわかりませんが銘柄情報のCSVを添付しておきます。


delete_stock_price.py

これは株価テーブルから指定した期間のデータを削除するための処理です。
私は現在使用してません。

drop_stock_price.py

これは株価テーブルを削除するための処理です。
分割併合対応時に対象のテーブルを削除する際に使用しています。

今回の投稿でバックテストと株価のDB登録についての説明は終わります。
次回からはsignalsフォルダ下のソースコードを公開していきます。

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