本文へスキップ
導入・設定

MT4サーバー時間とGMTオフセットの読み方|夏冬のズレ早見表と確認手順

MT4のサーバー時間がGMT+2/+3になる理由、日本時間への変換早見表、TimeCurrentとTimeGMTでオフセットを実測する手順、EAのGMT Offset設定の注意点までまとめました。

執筆: Redington 公開: 最終更新:

PR当ページにはプロモーション(アフィリエイト広告)が含まれます。順位・評価は公開の評価基準に基づき編集部が独立して決定しています。EAの成績はすべて過去の検証結果であり、将来の利益を保証するものではありません。海外FX業者は金融庁未登録です。

この記事の目次
  1. 結論:日本時間は「夏は+6時間、冬は+7時間」
  2. サーバー時刻から日本時間への変換早見表
    1. 主要な時刻の対応
  3. なぜ海外FX業者はGMT+2/+3を使うのか
  4. サーバー時刻を実測する3つの方法
    1. 方法1:気配値表示ウィンドウで見る
    2. 方法2:TimeCurrent() と TimeGMT() の差で求める
    3. 方法3:簡易スクリプトで数値を出力する
  5. EAの「GMT Offset」パラメータの意味
  6. 設定を間違えるとどうなるか
  7. バックテスト用ヒストリカルデータとオフセット
  8. XMの場合(公式記述で確認できる範囲)
  9. よくある失敗
  10. まとめ

MT4のチャートに表示される時刻は、パソコンの時刻でも日本時間でもありません。取引サーバーが刻む「サーバー時間」です。海外FX業者の多くはGMT+2(冬時間)/GMT+3(夏時間)を採用しており、日本時間とは6〜7時間ずれます。このズレを把握しないままEAの時間フィルタを設定すると、狙った時間帯とまったく違う時間に取引が走ります。この記事では、サーバー時刻の読み方、日本時間への変換早見表、自分の口座で実測する手順を順に説明します。

結論:日本時間は「夏は+6時間、冬は+7時間」

✅ 結論

日本時間はGMT+9です。業者サーバーがGMT+3(夏時間)なら差は6時間、GMT+2(冬時間)なら差は7時間になります。つまりサーバー時刻に夏は6、冬は7を足すと日本時間です。ただしこれはあくまで「GMT+2/+3を採用する業者の場合」であり、オフセットは業者と口座タイプによって変わります。自分の口座で実測するまでは仮の値として扱ってください。

サーバー時刻を間違えると困るのは、EAの時間帯フィルタ、日次リセット、ロールオーバー回避といった「時刻を条件にする処理」です。EAの導入手順そのものは EAの導入手順 にまとめていますが、GMTオフセットは導入後に最も事故が起きやすい設定項目のひとつです。

サーバー時刻から日本時間への変換早見表

サーバー時刻を左列、日本時間を夏冬の2列に並べた早見表です。夏時間はサーバーがGMT+3、冬時間はGMT+2である前提で計算しています。

サーバー時刻

日本時間(夏/GMT+3)

日本時間(冬/GMT+2)

0:00

6:00

7:00

1:00

7:00

8:00

2:00

8:00

9:00

3:00

9:00

10:00

4:00

10:00

11:00

5:00

11:00

12:00

6:00

12:00

13:00

7:00

13:00

14:00

8:00

14:00

15:00

9:00

15:00

16:00

10:00

16:00

17:00

11:00

17:00

18:00

12:00

18:00

19:00

13:00

19:00

20:00

14:00

20:00

21:00

15:00

21:00

22:00

16:00

22:00

23:00

17:00

23:00

翌0:00

18:00

翌0:00

翌1:00

19:00

翌1:00

翌2:00

20:00

翌2:00

翌3:00

21:00

翌3:00

翌4:00

22:00

翌4:00

翌5:00

23:00

翌5:00

翌6:00

逆方向に読むときは、日本時間から夏は6、冬は7を引きます。たとえば日本時間の21:30はサーバー時刻で夏15:30、冬14:30です。

主要な時刻の対応

運用中によく使う時刻だけを抜き出すと、次のようになります。

イベント

サーバー時刻

日本時間(夏)

日本時間(冬)

ロールオーバー(日跨ぎ)

0:00

6:00

7:00

東京市場オープン(9:00 JST)

夏3:00/冬2:00

9:00

9:00

ロンドン市場オープン(現地8:00)

10:00

16:00

17:00

ニューヨーク市場オープン(現地9:30)

16:30

22:30

23:30

日足の確定(ニューヨーク17:00)

24:00=翌0:00

6:00

7:00

ロールオーバー前後はスプレッドが数倍から数十倍に開くことがあります。日跨ぎで保有するEAでは、この時刻の把握が損益に直結します。停止判断の考え方は EAを停止すべきタイミング で整理しています。

⚠️ 注意

上の表の「ロンドン10:00」「ニューヨーク16:30」という対応は、業者サーバーが米国の夏時間に、欧州・米国市場も通常どおり夏時間に入っている期間の話です。業者が追随する夏時間のルールと、各市場の夏時間のルールがずれる数週間は、この対応が1時間分崩れます。詳しくは夏時間・冬時間の切り替えを確認してください。

なぜ海外FX業者はGMT+2/+3を使うのか

「なぜGMT+0にしないのか」という疑問は当然です。理由は日足の区切り方にあります。

GMT+2(冬時間)のサーバーでは、日足の確定時刻がニューヨーク17:00と一致します。ニューヨーク17:00は外国為替市場の慣行上の1日の区切りであり、ロールオーバーやスワップ計算の基準にもなっています。この基準に合わせると、月曜から金曜までの日足がちょうど5本になります。

一方、GMT+0のサーバーでは1日の区切りがニューヨーク17:00より2時間早くなります。その結果、日曜日に数時間分しか値動きのない細い6本目のバーができます。日足の高値・安値・終値を参照するEAやインジケーターは、この6本目のバーで計算が崩れます。

💡 ポイント

「週の日足が5本になる」ことは、単なる見栄えの問題ではありません。前日高値ブレイク、日足ピボット、日次ATRといったロジックは、すべて日足の区切り位置に依存します。同じEAでも、GMT+0サーバーとGMT+2サーバーでは異なる成績になります。バックテストと実運用が食い違う原因としても典型的で、詳しくはバックテストとリアルの乖離で扱っています。

サーバー時刻を実測する3つの方法

具体的なオフセット値は業者ごとに異なります。GMT+2/+3が多数派というだけで、例外もあります。必ず自分の口座で確認してください。

方法1:気配値表示ウィンドウで見る

  1. MT4で「気配値表示(Market Watch)」ウィンドウを開きます(Ctrl+M)。
  2. ウィンドウ上部に表示されている時刻がサーバー時刻です。MT5ではMarket Watchの時刻欄に表示されます。
  3. 自分のパソコンやスマートフォンの日本時間と見比べ、何時間ずれているかを数えます。

最も手軽ですが、差を目視で数えるため分単位のずれを見落としやすい方法です。

方法2:TimeCurrent() と TimeGMT() の差で求める

MQLには、サーバー時刻とGMTをそれぞれ返す関数があります。公式リファレンスの説明は次のとおりです(出典: MQL4 Reference - TimeCurrent / TimeGMT 、2026年9月24日確認)。

関数

公式説明(原文)

意味

TimeCurrent()

"Returns the last known server time, time of the last quote receipt for one of the symbols selected in the 'Market Watch' window."

気配値表示の銘柄で最後に受信した気配の時刻=サーバー時刻

TimeGMT()

"Returns the GMT, which is calculated taking into account the DST switch by the local time on the computer where the client terminal is running."

端末が動いているPCのローカル時刻とDST設定から算出したGMT

公式は TimeCurrent() について「時刻の値は取引サーバー上で形成され、あなたのコンピュータの時刻設定には依存しない」とも明記しています。つまりサーバー時刻はPCの時計をいじっても変わりません。

方法3:簡易スクリプトで数値を出力する

差を手計算せずに済ませるなら、次のような短いスクリプトを MQL4\Scripts\ に置いてコンパイルし、チャートにドラッグします。出力は「ターミナル」→「エキスパート」タブに出ます。

void OnStart()
{
   datetime server = TimeCurrent();
   datetime gmt    = TimeGMT();
   double   offset = (double)(server - gmt) / 3600.0;

   Print("Server time : ", TimeToString(server, TIME_DATE|TIME_SECONDS));
   Print("GMT         : ", TimeToString(gmt,    TIME_DATE|TIME_SECONDS));
   Print("GMT offset  : ", DoubleToString(offset, 1), " hour(s)");
}

出力された GMT offset が 2.0 なら GMT+2、3.0 なら GMT+3 です。ファイルの置き場所やコンパイル手順は EAの導入手順 と同じ流れになります。

🚨 危険

この方法には2つの落とし穴があります。1つ目は、TimeGMT() がPCやVPSのローカル時刻とタイムゾーン設定からGMTを算出する点です。VPSの時計がずれていれば、オフセットの計算結果もそのままずれます。実測前にVPSの時刻同期を確認してください。2つ目は、ストラテジーテスター内では公式仕様として TimeGMT() が TimeCurrent() と常に等しくなる点です。バックテストで走らせてもオフセットは 0 にしかならず、実測になりません。必ずリアルタイムのチャート上で実行してください。

EAの「GMT Offset」パラメータの意味

多くのEAは GMT Offset Broker GMT Offset TimeZone といったパラメータを持っています。これは業者サーバーの時刻がGMTから何時間ずれているかをEAに教えるための設定です。

このパラメータは、主に次の処理で使われます。

  • 時間帯フィルタ(ロンドン時間だけ取引する、夜間だけ取引する、など)
  • 日次リセット(1日の取引回数の上限、日次損失上限のリセット時刻)
  • ロールオーバー回避、指標発表前後の停止
  • 週末クローズ前の全決済

つまり、EAの「いつ動くか」を決めるすべての判断がこの値に乗っています。時間帯フィルタそのものの設計は 時間フィルタ付きEAの考え方 で扱っています。

ℹ️ 補足

厄介なことに、このパラメータの定義はEAによって微妙に違います。「サーバー時刻 − GMT」を入れるものが多数派ですが、「GMT − サーバー時刻」で符号が逆のもの、「自分の居住地のタイムゾーン」を入れるものもあります。推測で入れず、必ず配布元のマニュアルで定義を確認してください。定義が書かれていないEAは、設定後にログで認識時刻を出力させて確かめるのが確実です。

設定を間違えるとどうなるか

GMTオフセットを間違えたときの症状は、故障に見えないのが厄介です。EAはエラーも吐かず、静かに間違った時間帯で動き続けます。

間違い方

起きること

オフセットを1時間多く/少なく入れた

フィルタが1時間ずれる。夏冬の切り替え期にだけ成績が崩れる

符号を逆にした(+2を−2にした)

4時間ずれる。狙った時間帯とほぼ無関係な時間に取引する

0のまま放置した

サーバー時刻をGMTとみなす。GMT+2の業者なら常時2時間ずれる

バックテストと実運用で値が違う

検証結果と実運用結果が一致しない。EAの良し悪しを判断できなくなる

「EAは動いているのにトレードしない」「バックテストでは勝っていたのに実運用で挙動が違う」という相談の一部は、このオフセット設定が原因です。症状の切り分けは EAが動かないときのチェック も併せて確認してください。成績の劣化を数値で比較したいときは EA成績指標チェッカー で、設定変更の前後を同じ指標で並べると判断しやすくなります。

バックテスト用ヒストリカルデータとオフセット

外部配信のヒストリカルデータは、GMT+0が標準です。Dukascopy由来のティックデータをそのまま取り込むと、GMT+2/+3の業者サーバーとは2〜3時間ずれた状態で検証することになります。

時間帯フィルタを持つEAでは、このズレだけで結果が別物になります。バックテストの手順は バックテストのやり方 にまとめていますが、タイムゾーンの整合は手順の前段階で決めておくべき項目です。

TickstoryやTick Data Suiteにはタイムゾーン変換機能があります。 Tickstoryでのティックデータ取得 の段階で、業者サーバーと同じオフセットに変換してから .fxt を生成してください。変換設定を記録に残しておくと、後から検証条件を再現できます。

XMの場合(公式記述で確認できる範囲)

具体例としてXMTradingの記述を挙げます。貴金属の取引条件ページに次の記載があります。

「調整額はポイント単位で表示され、月曜日から金曜日の毎日、**00:00(GMT+2、夏時間の変更を含む)**に適用されます。また、GOLD、SILVER、XAUEURの場合は水曜日に、その他の貴金属については金曜日に3日分の調整が行われます。」
出典: XMTrading 貴金属 (2026年9月24日確認)

ここから読み取れるのは次の3点です。

項目

内容

サーバー基準時刻

GMT+2(夏時間適用時はGMT+3相当)

スワップ付与時刻

サーバー時刻00:00(月〜金)

3倍スワップ日

GOLD/SILVER/XAUEURは水曜、その他の貴金属は金曜

FX通貨ペアの3倍スワップ日については、商品ページに同様の脚注を確認できませんでした。一般には水曜とされますが、業者の公式情報で確認してください。XMでのEA設定全般は XMでのEA設定 にまとめています。

⚠️ 注意

ここで挙げた値はXMの公式記述から読み取れる範囲のものであり、他社に当てはめることはできません。また同じ業者でも口座タイプやサーバー(Real 1/Real 3 など)によって設定が異なる可能性があります。使う口座で必ず実測してください。

よくある失敗

  • チャート右上の時刻を日本時間だと思い込む。 MT4のチャートに日本時間は一切出てきません。すべてサーバー時刻です。
  • ネットで見た「GMT+2」をそのまま入れる。 記事の執筆時点と今で、業者の設定が変わっている可能性があります。
  • 夏冬で設定を変え忘れる。 手動設定のEAは、自分で切り替えないと半年間ずれ続けます。
  • VPSの時計を放置している。 TimeGMT() を使う実測やEAの内部処理が、VPSの時刻ずれの影響を受けます。
  • バックテストのデータをGMT+0のまま使う。 検証結果と実運用が構造的に一致しなくなります。

まとめ

サーバー時間の理解は、EA運用の土台です。日本時間はサーバー時刻に夏は6時間、冬は7時間を足した値になります。ただしこれはGMT+2/+3を採用する業者の場合であり、必ず自分の口座で実測してください。

実測は TimeCurrent() と TimeGMT() の差を出力する短いスクリプトで十分です。VPSの時計が正しいこと、ストラテジーテスター内では差が出ないことの2点だけ押さえておけば、数分で終わります。

次に読むなら、ズレが発生する時期を扱った 夏時間・冬時間の切り替えでEAが狂う理由 、時刻条件の設計を扱った 時間フィルタ付きEAの考え方 、そして導入全体の流れを確認できる EAの導入手順 の3本が順路としておすすめです。

よくある質問

Q.MT4のサーバー時間と日本時間は何時間ずれていますか?
サーバーがGMT+3(夏時間)なら日本時間はサーバー時刻の6時間後、GMT+2(冬時間)なら7時間後です。日本時間はGMT+9なので、9から業者のオフセットを引いた値が差になります。ただしオフセットは業者ごとに異なるため、必ず自分の口座で実測してください。実測方法は本文の「サーバー時刻を実測する3つの方法」で手順化しています。
Q.なぜ海外FX業者のMT4はGMT+2やGMT+3なのですか?
このオフセットだと日足の確定時刻がニューヨーク17:00と一致し、1週間の日足の本数がちょうど5本になるためです。GMT+0のサーバーでは日曜日に数時間分だけの細い6本目のバーができてしまい、日足を参照するEAやインジケーターの計算が崩れます。業界の慣行としてGMT+2/+3が広く使われています。
Q.EAのGMT Offsetパラメータには何を入れればいいですか?
原則として「業者サーバーがGMTから何時間進んでいるか」を入れます。GMT+2のサーバーなら2、GMT+3なら3です。ただしEAによっては「サーバー時刻からGMTを引く」ではなく別の定義を使うものもあります。必ず配布元のマニュアルで定義を確認し、設定後にログでEAが認識した時刻を確かめてください。
Q.バックテストのヒストリカルデータもGMTを合わせる必要がありますか?
必要です。Dukascopyなど外部配信のティックデータはGMT+0が標準のため、そのまま使うと実運用のサーバー時刻と最大3時間ずれます。時間帯フィルタを持つEAでは結果が別物になります。TickstoryやTick Data Suiteにはタイムゾーン変換機能があるので、業者サーバーと同じオフセットに変換してから取り込んでください。
Q.サーバー時刻は自分のパソコンの時計を直せば変わりますか?
変わりません。MQL4公式リファレンスは、TimeCurrent()が返す時刻について「時刻の値は取引サーバー上で形成され、あなたのコンピュータの時刻設定には依存しない」と明記しています。一方でGMTを返すTimeGMT()はPC側のタイムゾーン設定を参照するため、VPSの時計がずれているとオフセットの計算結果が狂います。

関連記事