MT4 /MT5 ローソク足(バー)データの欠損/抜けの補完

作成しているMTF対応ジグザグについて、MT4/MT5ローソク足データに抜け・欠損データがあると、MTF表示時にジグザグの位置がズレてしまうことがありました。ズレるのは、MTF表示中において、欠損した1分足の本数分だけなので、大きくはありません。これは、作成しているジグザグのロジックが宜しくないということなのでしょう、対応を検討しています。大きなズレではないものの、ちょっとだけズレてしまうのが気になるというか・・・あとは、データ欠損について全然気にしたことがなかったので、欠損データの対応について紹介します。

あわせて読みたい
MT4/MT5 MTF MA Zigzag 移動平均線抜けジグザグ|MA基準の波形認識用インジケータ|マルチタイムフレー... 2024/6/17:既存のバージョンに細かい修正と、ライン描画機能を追加しました。こちらは、当ウェブサイト経由で「XM(XMTrading)」か「ロイヤルキャッシュバック」に新規...
目次

MT4のヒストリカルデータは編集可能|MT5のヒストリカルデータは追加したり削除したり編集不可能!

ここでいうデータ抜け/欠損は、ヒストリカルデータの再ダウンロードで解決するようなデータの欠損ではなく、そもそもサーバーにすらデータが存在しないというものを、欠損と言っています。早朝時間など、売買の無い時間帯に特に発生します、これは、まあ仕方ないんです。

MT4のヒストリカルデータは編集自由です。リアルタイムで動いているチャートに対しても、編集可能でした。しかし、MT5はリアルタイムチャートのヒストリカルデータには、一切編集ができません!MT5はバックテスト用のヒストリカルデータであれば、自由に編集ができます。

MT5では、hccファイルというファイルにヒストリカルデータが保持されているようです。無理やり中身を見てみても、サッパリ分からない状態です。これを編集できないものかと調べました。

MT4の1分足欠損/抜けデータの補完

MT4欠損データの補完方法です。簡単なので、MT5でも同様にできると思ったのが甘かったです。

①MT4 ヒストリーセンターでデータをM1データをエクスポート

MT4欠損・抜けデータの補完:ヒストリーセンターでエクスポート

②csvをエクセルで開いて、下記VBAを実行

下記マクロを実行してください。データ量が多い場合は、補完する前後のデータだけにしておく方が良いです。M1以外の場合は、時間差のところを変更してください。欠損したデータは前回値と同値として、それだけ元のシートに抜き出されます。

Sub MT4_1minfilldata()
    Application.ScreenUpdating = False
    bws_name = ActiveSheet.Name
    Set bws = ThisWorkbook.Worksheets(bws_name)
    
    ActiveSheet.Copy After:=ActiveSheet
    tws_name = ActiveSheet.Name
    Set tws = ThisWorkbook.Worksheets(tws_name)
    
    bws.Cells.Clear
    
    lastRow = tws.Cells(tws.Rows.Count, "A").End(xlUp).Row
    wrow = 1
    
    
        For i = 1 To lastRow
        
        diff = DateDiff("n", tws.Cells(i, 2).Value, tws.Cells(i + 1, 2).Value)
        time_cnt = 1
        
        ' 現在のセルと次のセルの時間差を計算
        If diff > 1 Then
            For k = diff - 1 To 1 Step -1
                ' 時間差が1分以上なら欠損している
                bws.Cells(wrow, 1).Value = tws.Cells(i, 1).Value
                bws.Cells(wrow, 2).Value = Format((tws.Cells(i, 2).Value + TimeValue("00:01:00") * time_cnt), "hh:mm:ss")
                                
                For j = 3 To 7
                    bws.Cells(wrow, j).Value = tws.Cells(i, j).Value
                Next j
            
            time_cnt = time_cnt + 1
            wrow = wrow + 1
            Next k
        End If

        Next i
    Application.ScreenUpdating = True
End Sub

③MT4 ヒストリーセンターでインポートして終了

先ほどのマクロで出来たcsvをヒストリーセンターでインポートして終了です。とても簡単にできますね!

MT4欠損・抜けデータの補完:VBAマクロで欠損データを作成し、MT4ヒストリーセンターでインポートする

MT5の欠損/抜けデータの補完|hcc file

MT5でも同様に何とかできないものかと、調べると出てきます、無理っぽいです。hccファイルのリバースエンジニアリングを試みている方々もいらっしゃったようで・・・しかし、今のMT5バージョンであればバックテスト用のヒストリカルデータであれば自由に編集ができますので、誰も問題視していないのでしょうか。データ欠損が影響するようなインジケータを作るのが良くないのでしょう、うーん。MT5は厳密過ぎるというか、MT4の方が色々楽ちんですなあ。


PR:

XM(XMTrading)ボーナス情報

XM(XMTrading)

総合評価:

海外口座日本人No.1! ●圧倒的なボーナス群:新規口座ボーナス(¥13,000相当:入金不要)+入金ボーナス100%(¥50,000相当)+入金ボーナス20%(総額¥1,300,000相当) ●入金以上の損失無し(ゼロカット) ●長年の実績と信頼 ★新規登録でインジケータプレゼント中


TariTali(タリタリ):高キャッシュバック率と使いやすいサイト設計

TariTali+XM || TariTali+Axiory

総合評価:

高いキャッシュバック率 ●キャッシュバック額の確認が容易な使いやすいサイト設計 ●様々な出金方法(銀行振込/SticPay/bitwallet)に対応、1500円から出金可能


FXRoyalCashBack(ロイヤルキャッシュバック):高キャッシュバック率とWキャッシュキャンペーン

FXRoyalCashBack+XM || FXRoyalCashBack+Axiory

総合評価:

TariTaliと同等の高キャッシュバック率 ●サイトの使い勝手はTariTaliに劣るが、XMオートリベートなら関係なし ●Wキャッシュバックキャンペーン¥10,000は要チェック新規登録でインジケータプレゼント中

  • URLをコピーしました!
目次