データベースの設計
いただいてきた日足データのフォーマット
左から日付、銘柄コード、市場区分(1=東証1部)、始値、高値、安値、終値、出来高の順に並んでいる。まずはこのデータを格納するSQLiteのデータベースを作ることになる。ここでPythonならではのSQL操作モジュール、SQLObjectを
2006/01/04,1802,1,883,885,878,885,2543000
SQLObjectとは
日本語ドキュメントはこちら。解説するほど熟達していないので、ともかく下記偉い人のサイトをどうぞ…
と、ともかくプログラム
これがMySQLで言うところのCREATE TABLE stockPrice(date date,code INTEGER【以下略】に相当するもの。SQL文の代わりにクラスを定義し、最後にstockPrice.createTable()とやるとテーブルができる。リスト全文は以下の通り。
class stockPrice(SQLObject):
date = DateCol()
code = IntCol()
market = IntCol()
stPrice = FloatCol()
hiPrice = FloatCol()
loPrice = FloatCol()
fnPrice = FloatCol()
dekiDaka = FloatCol()
- モジュールインポート、グローバル変数
# -*- coding: shift_jis -*-
from sqlobject import *
rootDir = '/Users/*****/Desktop/kabu/
- テーブル定義
class stockPrice(SQLObject):
date = DateCol()
code = IntCol()
market = IntCol()
stPrice = FloatCol()
hiPrice = FloatCol()
loPrice = FloatCol()
fnPrice = FloatCol()
dekiDaka = FloatCol()
- データベースへの接続関数
def connectDb():
connection_string = 'sqlite://' + rootDir + 'data.db'
connection = connectionForURI(connection_string)
sqlhub.processConnection = connection
- テーブル作成関数
def initDb():
stockPrice.createTable()
- メインルーチン
if __name__ == '__main__':
connectDb()
initDb()