ITエンジニアの種籾(たねもみ)

IT技術とか株式投資とか。

「どにち株」全体設計と構造設計

2020年 09月 16日

目次

全体設計

全体図

プログラム構造設計

大きく以下の4つ。

  1. [収集] Web から必要な生データを入手し、ストレージへ格納するダウンロードツール
  2. [分析] 生データを元にどんな株に投資すべきか試行錯誤するデータ分析ツール
  3. [加工] 生データと分析で溜まったノウハウから公開用 Web サイトのために構造化したデータへのデータ変換ツール
  4. [ビルド] 必要最低限の構造化したデータからサイトの HTML を生成する Web サイト生成ツール
  5. [公開] 生成した Web サイトを Web サーバへの転送ツール

各プログラム概要

1.[収集] ダウンロードツール

EDINET や TDnet などから分析に必要なデータをダウンロードする。 毎週土曜に最新をダウンロードする。 前回ダウンロード日からツール実行日までの間に増加したデータのみを差分ダウンロードする。

ダウンロードするデータは、ダウンロード後に加工せずに元の形式を維持するが、 ストレージの容量を加味して後段の分析がの処理速度を過度に遅くさせない程度に圧縮する。

収集元によりインタフェース仕様は異なるので、収集対象ごとにツールを作る。

Python で実装する。

2.[分析] データ分析ツール

蓄積したデータから有望な株を抽出する条件を試行錯誤する。

具体例は「今週決算発表あった企業で売上 10%増加」。 このような条件の具体的なロジックやパラメータを試行錯誤するツール。

ロジックやパラメータは、後段の加工で毎週実行するためライブラリ化する。 また、分析するのに必要なデータの IO も後段の加工と重複する。

株を検索、フィルタ、ソートするためのデータを作るためのライブラリのロジックやパラメータを試行錯誤するツール群となる。

Python で実装する。

3.[加工] データ変換ツール

生のデータと分析条件から Web サイトで使うデータへ変換するツール。

変換後の主なデータは下記。

  • 一覧 : 株を探すときのソートやフィルタできることを含む一覧データ
  • 詳細 : 財務や株価など企業ごとに状況を確認するときに使う詳細データ

Python で実装する。

4.[ビルド] Web サイト生成ツール

必要な情報へ変換したデータをもとに、UI のためのサイトを生成するツール。

メンテナンスが発生するサイトではないので、 アプリケーションサーバや DB は使わず、静的コンテンツだけで実現する。

インターネット公開し、アクセス数が稼げるようであれば広告を入れる。

Gatsby.js で実装する。

5.[公開] 転送ツール

静的コンテンツを Web サーバへ転送するツール。

ファイルのみなので、scp や ftp でファイル転送するだけでよい。

Bash Script と OS コマンドで実装する。

データ構造設計

すべてファイルシステムで構築する。

大きくデータの種類を分ける。

  1. [org] ダウンロードしてきたデータの蓄積先
  2. [web] Web サイト用加工データの格納先

試行錯誤する分析結果は当面は決めずに進める。

”~/kabu-data”に上記の構造で分けていく。

~/kabu-data/
    org/
        生データを収集元で分けて保存
    web/
        サイトの構造に合わせて保存

これ以上、現時点で詳細に設計できないので、“org”、“web”配下の構造はそれぞれ、

  1. [org]=[収集] ダウンロードツールで設計
  2. [web]=[ビルド] Web サイト生成ツールで設計

することとする。

広告