
日経平均先物の日足データというと、普通は夜間始値から日中終値までを通した一日になってしまいます。
でも、分析をする上では日中値のみ、夜間値のみの4本値データがほしくなります。
岡三オンライン証券の岡三RSSでは前日夜間までの4本値は取得できるので、それを毎日保存していくことでデータが得られます。
すぐに過去データがほしい場合は配布してくれているサイトを利用します。
それでは見ていきましょう。
システムトレード(自動売買)用の日足データをそろえる
現在自分のロジックでは日経平均先物の日足データを使って自動売買をしている。
その際、一日を通した四本値だけではなく、日中の四本値、夜間の四本値もそれぞれ情報が欲しい。
しかし、岡三RSSのコマンドでは日中だけ、あるいは夜間だけの四本値のデータは、その日と前日夜間の値が得られるだけで、何日にも渡る時系列データを得るコマンドは存在しない。
それを解決するには、外部からデータを取って来て貼り付けるという手もあるが、それでは手間が掛かる。
できればデータ取得も自動化したい。
そこでここでは、Excelのマクロを使ってデータを保存していく方法を行う。
岡三RSSで日中の四本値、夜間の四本値を取得する
マクロというのはExcelの個別操作を自動化した物なので、Excelの個別操作でできることはマクロ化できる・・・はず。
やりたいのは、日中の四本値、夜間の四本値を日ごとに時系列で記録していくこと。
それをやるためには、まずその日の日中と夜間の四本値を表示し、それを日付とともに並べていくことを毎日繰り返せばよい。
その例を下に示す。
=TODAY() | =FQUOTE("N225","0",B2) | =FQUOTE("N225","0",C2) | =FQUOTE("N225","0",D2) | =FQUOTE("N225","0",E2) | =FQUOTE("N225","0",F2) | =FQUOTE("N225","0",G2) | =FQUOTE("N225","0",H2) | =FQUOTE("N225","0",I2) |
日付 | 日中始値 | 日中高値 | 日中安値 | 日中終値 | 前日夜間始値 | 前日夜間高値 | 前日夜間安値 | 前日夜間終値 |
2019/2/21 | 21380 | 21550 | 21300 | 21440 | 21430 | 21460 | 21350 | 21400 |
日経平均先物の直近の四本値データを取得するコマンドはFQUOTEであるので、それを1行目に記述する。
また、日付を表示するExcel関数はTODAY()関数であるので、それも記述する。
すると、その日の日付、日中始値、日中高値、日中安値、日中終値、前日夜間始値、前日夜間高値、前日夜間安値、前日夜間終値が1行目に表示される。
Excelマクロによる時系列データの作成
このままだとその日の四本値しか表示されないので、それをExcelマクロを使って下の行にコピーする。
Sub yonhon()
Dim mytime As Date
Dim i, j As Long
mytime = TimeValue(Now())
With Worksheets("四本値")
If mytime >= TimeValue("15:19:00") And mytime <= TimeValue("15:55:00") Then
If .Cells(1, 1) = .Cells(3, 1) Then
Else
For j = .UsedRange.Rows.Count To 3 Step -1
For i = 1 To .UsedRange.Columns.Count
.Cells(j + 1, i) = .Cells(j, i)
Next i
Next j
For i = 1 To .UsedRange.Columns.Count
.Cells(3, i) = .Cells(1, i)
Next i
End If
End If
End With
End Sub
上のマクロではExcelシート名は「四本値」であることを前提としている。
ここでは、それまで記録されていたデータを全て1行下の行にコピーし、空いた3行目に1行目をコピーする、ということを行っている。
これを1日1回場が閉じた後に実施すれば(上の例では15時19分)、日ごとのデータが次々に保存されていき、日中の四本値と夜間の四本値を記録してくことができる。
日足データを使って売買判断する場合、ここで得られた時系列データの日ごとの足を比較したり、移動平均線を計算したりしてどのような注文を出すか決めることになる。