トップ «前の日記(2017/06/20) 最新 次の日記(2017/06/23)» 編集

kaztomo日記


2017/06/22

_ [SQL]移動平均線乖離率を取ってみる

単純移動平均ならば 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>