CSVを保存した後、Excelでそのまま開いてよいのか。ここで一つ分けたいのが、保存したままのファイルと、確認や分析に使うファイルです。日時を見やすく直したり、同じ時刻の行を消したりすると、あとで元の姿を確かめにくくなります。
MT5のティック履歴は、デスクトップ版の銘柄管理から期間を指定して取得し、CSVへ書き出せます。書き出した原本を残し、コピーで列と時刻を読み、取得条件のメモと照合する。保存できたことと、分析先へそのまま渡せることは別です。
この記事は過去の市場価格データを扱います。自分の取引損益レポート、売買の有利不利、EAの成績を判定する手順ではありません。注文やEA設定、口座を変える必要もありません。本文の図は説明用のイメージで、本人の画面や実際の価格データではありません。
MT5でティック履歴をCSVへ書き出す

ヒストリカルデータは、過去の価格の記録です。ただし「過去データ」と一言で呼んでも、ティックとバーでは中身が違います。ティックは価格更新などの記録。バーは、一定時間の始値・高値・安値・終値などにまとめた記録です。1分足のCSVを保存しても、ティックのCSVを取ったことにはなりません。
MetaQuotesの公式ヘルプでは、接続先サーバーで利用できるバー・ティック履歴を要求し、CSVへ書き出す方法を案内しています。チャートの「ファイル保存」は表示中のチャートデータを保存する別の経路です。価格更新の履歴が目的なら、ティック画面から進みます。
- デスクトップ版MT5の「気配値表示」のコンテキストメニューから、シンボル管理を開く。使っている接続先の銘柄名を選びます。末尾に記号や文字が付く場合も、その名前を省略せず確認します。
- シンボル管理の「ティック」タブで期間を指定し、「リクエスト」を押す。最初は短い期間で取得経路を確かめます。全履歴を一度に要求すると、通信時間と保存容量が大きくなるためです。
- 取得した一覧を確認し、「エクスポート」でCSVを保存する。保存先を覚え、ファイルができたことを確認します。項目名や表示言語が違う場合は、公式ヘルプのシンボル管理の説明と照合してください。
取得対象は、現在の接続先が提供する範囲の履歴です。すでにダウンロード済みのデータが表示される場合もあるので、今回指定した条件と保存したファイルの対応をメモに残します。スマホ版も同じ操作画面とは限りません。参考資料:MetaTrader 5「気配値表示」の価格履歴ダウンロード(外部サイト・日本語)で、デスクトップ版の取得条件を確認できます。
取得できないときに、EAを止めたり設定を一式変更したりするのは、この作業の範囲外です。まず要求期間を短くして、同じ銘柄に利用可能な履歴があるか確認するところへ戻ります。
保存原本と取得メモを一緒に残す

CSVは、見た目が表でもただのデータファイルです。表計算ソフトで開いて保存し直すと、日時や小数の扱い、区切りなどが変わる可能性があります。元の取得状態と、見やすくした状態が混ざらないように、書き出したファイルを保存原本として扱います。
たとえば説明用の名前なら、ticks_A_original.csvを原本、複製したticks_A_work.csvを確認用にします。「A」は自分が区別できる銘柄の略称で構いません。原本の上書きを避けるため、別フォルダーへ分ける方法もあります。名前だけで内容が正しいと判定するわけではありません。
CSVだけでは、「どこから、どの条件で取ったか」を後日思い出せないことがあります。隣に短いテキストメモを置き、次の内容を残すと照合しやすくなります。
- 取得したもの
- 接続先を区別する自分用の名前、MT5に表示された銘柄名、ティックとバーのどちらか。口座番号やパスワードは書きません。
- 要求した範囲
- 画面で指定した開始・終了日時。あとで読むCSVの端の日時とは別に残します。
- 保存の情報
- 取得した日、原本のファイル名、ファイルの大きさ。再取得する場合は別名で残し、先のファイルへ上書きしません。
- まだ分からないこと
- 時刻基準や列の意味が確認できていなければ、そのまま「未確認」。空欄より、調べる場所が明確になります。
これはMT5の必須設定ではなく、あとで取得条件へ戻れるようにする保存の工夫です。コピーをテキストエディターで見るなら、保存操作をせず閉じます。Excelなどで読む場合は確認用コピーを使い、日時を文字列として読み込む方法を、そのソフトの案内で確かめてください。参考資料:Microsoft「テキストファイルのインポート・エクスポート」(外部サイト・日本語)では、CSVを開く際の列の解釈と区切りを説明しています。
原本が別にあれば、表示を試して失敗しても戻れます。ファイル名に「最終」「最終2」が増える前に、原本の居場所だけは決めておきたいところです。保存先が同じディスクのコピーだけなら、そのディスクの故障には備えられませんが、まずここでは加工前と加工後を混ぜないことを優先します。
ヘッダーと同じ時刻の行を読み違えない

開いたコピーでは、最初に列の見出しを読みます。日付と時刻が別列か、一つの日時か。区切りはカンマかタブか。ヘッダーがあるか。拡張子が.csvでも、思い込んだ区切りで読めば、全部が一列に入ることがあります。その場合は原本を直すのでなく、読む側の区切り設定を確認します。
次は列の役割です。以下は列の意味を読むための説明例で、どのファイルにもこの綴りや順番が並ぶという見本ではありません。
- DATE・TIMEに当たる列:日付と時刻。小数点以下の秒がある場合、その精度を残して読みます。表示が秒まででも、元ファイルにミリ秒が残っている場合があります。
- BID・ASK・LASTに当たる列:提示された価格や最後の取引価格。自分の売買損益ではありません。銘柄によって使われる項目が異なるため、空欄や0の意味を先に決めつけません。
- VOLUME・FLAGSに当たる列:数量や、どの項目が変わったかを示す情報。実ファイルにある列の意味を確認し、知らない列を邪魔だからと消さず残します。
特に気を付けたいのが、保存形式と取込形式の違いです。MT5の公式説明はティックのフラグを案内する一方、カスタム銘柄へのティック取込では、フラグをファイルから渡すのでなく自動計算するとしています。書き出せたCSVなら、別の処理へ無条件に読み込めるわけではありません。取込先が何列を、どの順で受け取るかは、その処理の仕様で確認します。
また、公式のティック取込例には、同じミリ秒の時刻に異なる価格を持つ行があります。「時刻が同じだから重複」と消すと、必要な記録を落とす可能性があります。時刻だけで行を削除せず、元の並びを維持したコピーで価格なども見ます。順序が不自然に感じても、並べ替えて上書きする前に理由を調べます。
参考資料:MetaTrader 5「カスタム銘柄」の履歴・ティック取込形式(外部サイト・日本語)には、列、時刻の精度、行順の条件が載っています。ここでは取込操作はせず、保存したデータを読み違えないために参照します。
サーバー時刻と取得範囲が合わないとき

CSVに「09:00」とあっても、日本時間の午前9時とは限りません。取得元が使うサーバー時刻、配布ファイルの時刻基準、分析ソフトの表示設定を分けて考えます。画面の時計と似ていることだけでは、CSVの基準を確定できません。
接続先の公式案内で、「どのデータの時刻について書かれているか」を確かめます。チャート表示の説明なのか、サイトから配布するファイルの説明なのかでも対象が違います。夏時間で基準が変わる案内なら、取得した日付の条件まで読みます。確認できない間はメモを「時刻基準未確認」のままにし、固定で何時間か足す処理を始めません。
一例として、OANDAのティックCSVの時刻FAQ(外部サイト・日本語)は、同社マイページで配布するCSVのサーバー時刻と夏時間条件を説明しています。これはその配布CSVの案内で、他の接続先や書出し経路にも同じ時差を当てはめる根拠にはなりません。
時間帯の変換が必要になった場合も、変換元・変換先・対象日の条件を決め、分析用コピーへ行う作業です。原本はそのまま。複数の接続先から取った価格をつぎ足して、見た目の期間だけを埋めることもしません。取得元の違いが消えると、あとで差の理由を追えなくなります。
期間は、メモの要求した開始・終了と、CSVで実際に読める最初・最後の記録を比べます。開始日時ちょうどに価格更新があったとは限らないため、端が一致しないだけでは不良と決められません。休場や取得元の提供範囲も含めて、次のように戻り先を分けます。
- 行がない:銘柄、ティックタブ、要求期間を再確認。短い期間でも出ないなら、取得元の履歴提供条件や接続案内を確認します。
- 想定より範囲が短い:要求した期間と実際の端をメモし、提供される過去の範囲か調べます。続けて取る場合も別ファイルへ保存します。
- Excelで日時が丸まる:確認用コピーの表示ではなく、CSVの文字そのものをテキストで見ます。元に精度が残るなら、読む側の設定の問題として分けられます。
- 列や時刻の説明が見つからない:原本を保ち、取得経路・銘柄・要求期間と、困っている列名を整理します。問い合わせる前に公式窓口のサポート範囲と提出方法を確認し、口座情報を含む画面全体やCSVを公開しないようにします。
取得元によっては、ファイルの提供だけが対象で、加工・分析方法はサポート対象外です。その場合も元ファイルは残し、取り込む分析ソフト側の公式仕様へ戻ります。取得元の説明と分析先の仕様を、同じものとして扱わないことが大切です。
先頭と末尾、短いサンプルを読む確認は、すべての行の連続性や正しい順序を検証したことにはなりません。全行の検査は別の作業です。また、履歴が保存できてもバックテストの利益や実運用の結果は保証されません。成績差を調べたい段階では、バックテストと実運用で違う条件の整理へ進めますが、保存原本を加工して成績に合わせる話ではありません。
今日できる一手は、すでにあるCSVを残してコピーを一つ作ること。まだないなら、短い期間で取得し、銘柄と要求期間をメモするところまでです。「全部そろった」と言う前に、何を保存したか説明できる状態をつくる。それなら、後から疑問が出ても戻る場所があります。
保存原本を残すのは、失敗しないためだけではなく、何を変えたのか後で説明できるようにするためです。きれいな表になっても、時刻の意味が分からなければ、まだ先へ進む材料は足りません。分からないところを「未確認」と残すのも、ちゃんとした準備です。
早く答えを出したいときほど、戻れる場所が一つあると落ち着いて考えられます。作業用のコピーを何度試しても、最初の記録は手元にある。そんな小さな余裕を、日々の判断にも持っておきたいですね。家族に向き合う話は「親父の奮闘記」で綴っています。

コメント