2017/06/15
_ [Python][SQL]とりあえず1分足を sqlite3 へ登録してみる
- OANDA REST API にて、Tickストリームを取得し、OHLC情報を更新
- setitimer を使って 60秒ごとに OHLC情報を fix
- fixした OHLC情報と、現在時刻 (ただし秒は "00"固定) を sqlite3 へ execute
作成してみたら、こんな感じになった (^o^)/
Pythonでの SQL文 (ポイントの抜粋):
cDate = dnow.strftime("%Y/%m/%d") # 2017/06/15
cTime = dnow.strftime("%H:%M:00") # 09:01:00
sqlstr = "delete from hd where date=? and time=?"
conns = c.execute(sqlstr, (cDate, cTime)).fetchall()
sqlstr = "insert into hd (date,time,open,high,low,close) values (?, ?, ?, ?, ?, ?)"
conns = c.execute(sqlstr, (cDate, cTime,
_usdjpy[1], _usdjpy[2], _usdjpy[3],
_usdjpy[4])).fetchall()
sqlstr = "select * from hd order by date desc, time desc limit 2"
conns = c.execute(sqlstr).fetchall()
結果:
% sqlite3 USDJPY1.db sqlite> select * from hd; 6|2017/06/15|18:06:00|109.703|109.703|109.691|109.692 7|2017/06/15|18:07:00|109.693|109.713|109.692|109.7 8|2017/06/15|18:08:00|109.695|109.698|109.689|109.693 9|2017/06/15|18:09:00|109.692|109.695|109.692|109.695 10|2017/06/15|18:10:00|109.691|109.694|109.69|109.694 sqlite>
OHLC の正確な情報としては'秒'情報は "00" ではないけど、自分用だし気にしない (^^;;
参考にさせて頂いた情報:
[ツッコミを入れる]