為替の1分足データの抜けを探すVBAを作ってみた

Excelで為替のヒストリカルデータを眺めていたら、結構抜けがあることに気づいた。
1分足からほかのチャートにコンバートする際に問題になるだろう。
関数で色々挑戦してみたが、時刻のシリアル値を操作するのは誤差が出て難しかった。

で、必要に迫られてVBAで簡単なプログラムを作った。
目視で調べても良いんだけど、1年分で369564行あるわけで軽く死ねる。
これを何年か分も目視するなんて、無理だ。

で、ラクをしようといろいろと工夫してみた。
だが、VBAが全然わからず、if〜thenとfor next で簡単なものを作るだけで2時間も掛かってしまった。
それでも目視で調べるよりは断然速い……と思う。

時々数字がおかしいものが出るが、異常値だけはじき出せば用が足りるので、これで十分かと。

ソースデータは下記のような構成になっている。

Time    Open    High    Low    Close
2015/1/2 0:00    119.666    119.742    119.666    119.741
2015/1/2 0:01    119.741    119.741    119.695    119.7

==============================
Sub データ欠損調査()

Dim 行数, i As Long

Range("B2").Value = True 'trueにしないと欠損データ修復ロジックに影響するため

行数 = ActiveSheet.Range("A1").End(xlDown).Row

For i = 3 To 行数

  If DateDiff("n", Range("A" & i), Range("A" & i - 1)) <> -1 Then
        Range("B" & i) = Abs(DateDiff("n", Range("A" & i), Range("A" & i - 1)))
    Else
        Range("B" & i) = "true"
  End If

Next i

MsgBox "データ欠損調査終了"

End Sub==============================

0 件のコメント:

コメントを投稿