2017/06/22
単純移動平均ならば AVG() 関数で計算できるけど、加重移動平均とか難しいんだろうか。
まだまだ勉強不足なんで、まずはビューの使い方を勉強してみようと、 簡単に終値を使った 5MA とそれに対する乖離率(%) を計算して delta というカラム名として表示してみることにする。
% sqlite3 USDJPYm5.db sqlite> CREATE VIEW ma5 as select id, ...> (select round(avg(close),3) from hd ...> where rowid between t1.rowid-4 and t1.rowid ...> ) as ma5 ...> from hd as t1; sqlite> .mode column sqlite> .width 10 8 7 7 sqlite> select date,time,close,ma5,round(hd.close/ma5.ma5*100-100,2) as delta ...> from hd,ma5 ...> where hd.rowid=ma5.id limit 10; date time close ma5 delta ---------- -------- ------- ------- ---------- 2017/06/20 13:45:00 111.666 111.666 0.0 2017/06/20 14:00:00 111.66 111.663 0.0 2017/06/20 14:15:00 111.67 111.665 0.0 2017/06/20 14:30:00 111.691 111.672 0.02 2017/06/20 14:45:00 111.621 111.662 -0.04 2017/06/20 15:00:00 111.568 111.642 -0.07 2017/06/20 15:15:00 111.55 111.62 -0.06 2017/06/20 15:30:00 111.555 111.597 -0.04 2017/06/20 15:45:00 111.594 111.578 0.01 2017/06/20 16:00:00 111.647 111.583 0.06 sqlite>
[ツッコミを入れる]