2017/06/20
- 1分足を記録したファイルに対して SQLを行う。
- 移動平均の計算方法は該当行から始めて 4つ前までの close 値を用い、5移動平均値を算出する。
- 結果を新たなカラムとして表示する。
% sqlite3 USDJPYm1.db sqlite> select date,time,close, ...> (select avg(close) from hd ...> where rowid between t1.rowid-4 and t1.rowid) ...> from hd as t1 limit 10; Date|Time|Close|(select avg(close) from hd where rowid between t1.rowid-4 and t1.rowid) 2017/06/19|16:15:00|111.168|111.168 2017/06/19|16:16:00|111.175|111.1715 2017/06/19|16:17:00|111.161|111.168 2017/06/19|16:18:00|111.175|111.16975 2017/06/19|16:19:00|111.168|111.1694 2017/06/19|16:20:00|111.172|111.1702 2017/06/19|16:21:00|111.178|111.1708 2017/06/19|16:22:00|111.184|111.1754 2017/06/19|16:23:00|111.177|111.1758 2017/06/19|16:24:00|111.175|111.1772 sqlite>
どうやら、最初の 4行については 5行分のデータが存在しないので、個数を減らして平均値を出しているようだ。
※注意
- rowid が非連続な場合は正しく計算できない。
- ROWS BETWEEN A AND B を使いたかったけど、sqlite3 では出来ないようだ orz
[ツッコミを入れる]