前提・実現したいこと
全銘柄の株価の時系列データをMySQLに取り込み保存したいと思ってます。
データ自体は某サイトよりcsvファイルを取り込み、MySQLへ読み込もうと思います。
そのcsvファイルは1ファイル1日分となっており、列方向に各銘柄の証券コード・銘柄名・始値・高値・安値・終値・出来高が、行方向に銘柄が入っています。
毎日そのcsvファイルを取り込み、保存しているデータに新しい日付のデータを追加していく形でデータベースを日々更新したいと思います。
保存したデータの使い方としては、主にテクニカル面でのスクリーニングに使います。
例えば「ここ二週間で株価130%以上になっている銘柄の一覧」や「移動平均の乖離が10%を超えている銘柄一覧」や「RSIが25以下の銘柄一覧」を表示するといった感じです。
また新しい手法のバックテストを行う為に、決まった数のデータではなく毎日追加した分だけデータ数が増えるデータベースにしたいと思ってます。
「株価時系列データ」という名前の全銘柄の時系列データが入ったデータベースを作ろうと思っていますが、ここでテーブルの作り方はどちらが良いのか教えて頂きたいと思います。
1.一銘柄=1テーブル
2.全銘柄=1テーブル
色々ネットを探してみましたが、「銘柄はそんなに変わるものではないので1銘柄=1テーブルのほうが良いのでは?」という意見もあれば「テーブルの数が大量になると検索に時間が掛かる」との意見もあり、どうなんだろう?となっています。
またそれぞれの形にも疑問があります。
《一銘柄=1テーブルを選んだ場合》
Q1.テーブル名を証券コード+企業名にしたいと思ってますが、4000銘柄以上あるので4000テーブル以上を[CREATE TABLE]文で一テーブルずつ作っていくしか方法がないのか?
Q2.取り込もうとしているcsvファイルは全銘柄が1ファイルとなってますが、そのファイルを読み込んだ時に各テーブル(該当する銘柄のテーブル)にちゃんとデータが振り分けられるのか?
Q3.上に書いたようにスクリーニングをする際は何らかの計算が発生するが、「〇〇の検索条件を満たした銘柄」として一覧で出力出来るのか?
《全銘柄=1テーブルを選んだ場合》
Q4.日付を含むと一銘柄に対して8項目のデータがあり、×4000の項目を一つずつ作っていく方法しかないのか?
いくつもの質問が入ってしまいすみません。
データベース設計の中での一連の疑問ですのでご容赦ください。
また全く違う形でもスクリーニングに使えれば問題ありませんので上記以外でも「こんな形にしてみたら?」というものがあればぜひともご指導お願いします。
発生している問題・エラーメッセージ
エラーまで辿りつけていません。
しかしすぐにつまずくと思いますので、また質問させていただきます。
その際はお手柔らかにご指導お願いします。
該当のソースコード
上記理由と同じ。
試したこと
上記理由と同じ。
補足情報(FW/ツールのバージョンなど)
Windows10・mySQL8.0
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。