FXツール

MT4でEAの稼働時間を設定する方法|サーバー時間の換算と3つの止め方

MT4でEAの稼働時間を設定する方法の手順を解説するアイキャッチ画像

経済指標の発表前後だけEAを止めたい。早朝のスプレッドが広がる時間は取引させたくない。そう考えて時間を設定したのに、思った時刻に止まらない。あるいはそもそも時間を入れる場所が見つからない。EAの稼働時間でつまずく人の多くは、このどちらかです。

先に結論MT4本体には、EAを時刻で止めたり再開したりする標準の設定はありません。時間を決める方法は、EAの設定で決める/外から止める/コードに条件を足すの3つです。どの方法でも、入れる時刻は日本時間ではなく、取引会社のサーバー時間で考えます。この記事では、MetaQuotesが公開しているMT4公式ヘルプとMQL4リファレンスの記述にもとづいて、選び方と換算のしかたを説明します。

1. 先に結論:方法は3つ、時刻は「サーバー時間」で入れる

この章では、自分がどの方法を使えばいいかを先に決めます。方法ごとの細かい話は5章から7章で説明します。

EAの稼働時間を決める方法を選ぶ判断フロー図。EAの設定に時間の項目があれば設定で決める、なければソースを直せる場合はコードで時間の条件を足す、どちらでもなければ外から止める方法を選ぶ流れを示している
上から順に見て、最初に「はい」になった方法を使います

いちばん手軽なのは、EAの設定に最初から時間の項目がある場合です。数字を入れるだけで済みます。項目が無い場合は、ソースファイル(.mq4)を持っていて直せるならコードに時間の条件を足します。どちらも無理なら、EAの外から止めるしかありません。

もうひとつ、方法より先に押さえてほしいことがあります。EAが見ている時計は、パソコンの時計ではありません。取引会社のサーバーの時刻です。ここを取り違えると、どの方法を使っても数時間ずれて動きます。3章と4章で、この時刻の確かめ方と換算のしかたを説明します。

なお、EAをまだ動かせていない場合は、先にMT4にEAを入れる方法と自動売買の設定を済ませてください。この記事は、EAがチャート上で動いている前提で進めます。

2. MT4本体には「時刻で止める」設定がない

この章の結論は「MT4の設定画面をいくら探しても、時間の項目は出てこない」です。まず、何ができて何ができないのかをはっきりさせます。

MT4の設定(Options)には、EA用のエキスパートアドバイザ(Expert Advisors)タブがあります。公式ヘルプに載っている項目は、次の6つです。

公式ヘルプの項目 できること 時間と関係するか
Allow Auto Trading EAとスクリプトによる取引を許可・禁止する しない
口座を変えたときに止める 別の口座に切り替えたら取引を止める しない
プロファイルを変えたときに止める 画面の構成を切り替えたら取引を止める しない
通貨ペア・時間足を変えたときに止める チャートの銘柄や時間足を変えたら取引を止める しない
Allow DLL imports 外部のDLLを使うことを許可する しない
Allow WebRequest 登録したURLとの通信を許可する しない

見てのとおり、「何時から何時まで」という項目はありません。ツールバーの自動売買(AutoTrading)ボタンでも取引の許可・禁止を切り替えられますが、これも押した瞬間に切り替わるだけです。予約して押しておくことはできません。

日本語の表記は、取引会社が配布しているMT4やビルドによって少しずつ違います。そのためこの記事では、公式ヘルプの英語表記もあわせて書きます。画面の言葉が違っても、英語の名前で読み替えてください。

ここが大事公式ヘルプには、自動売買を禁止したときの動きが「EAは動き続けるが、取引はできなくなる」と書かれています。取引できないのは新規の注文だけではありません。決済や注文の変更も含めて止まると考えてください。この点は6章でもう一度扱います。

3. EAに入れる時刻は「サーバー時間」

この章の結論は「日本時間を入れても、その時刻には動かない」です。理由と、自分の取引会社の時刻を確かめる方法を説明します。

EAが時刻を知るときに使う関数は、MQL4リファレンスで仕様が決まっています。代表的なのがTimeCurrentです。

最後に分かっているサーバー時間を返す。「気配値表示」で選ばれている銘柄のどれかに、最後に価格が届いた時刻である。この時刻は取引サーバーで作られ、パソコンの時刻設定には左右されない。

MQL4 Reference「TimeCurrent」

パソコンの時刻を返すTimeLocalという関数もあります。TimeCurrentで時刻を取るEAなら、判定の基準はサーバー時間です。どちらを使っているかはEAごとに違うので、説明書に「サーバー時間」と書いてあるかを最初に確かめてください。書いていなければ、配布元に聞くのが確実です。

サーバー時間は、取引会社ごとに決まっています。日本時間と同じとは限りません。自分の取引会社の時差は、次の手順で確かめられます。

  1. 1気配値表示に時刻を出す気配値表示(Market Watch)を右クリックし、「Time」の項目を選びます。公式ヘルプでは、この列は価格がサーバーから届いた時刻を示すと説明されています確認銘柄ごとに時刻が並んだか
  2. 2日本時間と見比べる値動きのある平日に、パソコンやスマホの時計と並べて見ます。分の単位は気にせず、何時間ずれているかだけを読み取ります確認「日本時間のほうが◯時間進んでいる」と言えるか
  3. 3メモして、季節の変わり目に見直す時差は1年中同じとは限りません。夏時間の切り替えで変わる取引会社もあるので、3月と11月には同じ確認をもう一度します確認時差をメモに残したか

たとえば、日本時間が21時30分のときに気配値表示の時刻が15時30分なら、サーバー時間は日本時間より6時間遅いと分かります。この「6時間」を使って、次の章で換算します。

取引会社の公式サイトに、サーバー時間の案内が載っていることもあります。見つかったら、自分で確かめた時差と合っているかを照らし合わせておくと安心です。

PR

投資家の英知をすべての人に。GogoJungle

GogoJungleで時間の設定があるEAを探す

いま使っているEAに時間の項目が無く、次のEAは最初から時間を決められるものにしたいという方もいると思います。GogoJungleはFX・株式などの投資用ソフトを扱う専門のマーケットです。説明書に取引時間のパラメーターと、その時刻の基準が書かれているかを確かめてから選んでください。

GogoJungleでEAを見てみる

4. 日本時間からサーバー時間に換算する

この章では、止めたい日本時間を、EAに入れるサーバー時間へ直す計算をします。日付をまたぐ場合に入力のしかたが変わる点が、いちばんのつまずきどころです。

計算そのものは簡単です。日本時間から、3章で調べた時差を引くだけです。ここでは、時差が6時間の取引会社を例にします。6時間は計算のための仮の値なので、実際には自分で確かめた値を使ってください。

0時から24時までの目盛りに時間帯の帯を並べた図。例1では日本時間21時30分から23時30分の帯が、サーバー時間では15時30分から17時30分になる。例2では日本時間5時から8時の帯が、サーバー時間では23時から翌2時になり、帯が24時で切れて0時から続くことを示している
日本時間から時差を引いた時刻を入れます。例2のように帯が0時をまたぐと、入力のしかたが変わります

例1は、日本時間22時30分に発表される指標の前後1時間を止めたい場合です。止めたいのは日本時間21時30分から23時30分なので、6時間を引いてサーバー時間15時30分から17時30分を入れます。

例2は、早朝の日本時間5時から8時を止めたい場合です。6時間を引くと、5時は前の日の23時、8時は当日の2時になります。つまりサーバー時間23時から翌2時です。開始の数字(23)が終了の数字(2)より大きくなるのが、日付をまたぐときの特徴です。

止めたい日本時間 時差6時間の場合のサーバー時間 入力するときの注意
21:30〜23:30 15:30〜17:30 同じ日の中で終わる。そのまま入れてよい
5:00〜8:00 23:00〜翌2:00 開始が終了より大きい。EAがこの入れ方に対応しているか確かめる
23:00〜翌1:00 17:00〜19:00 日本時間ではまたぐが、サーバー時間ではまたがない。そのまま入れてよい

3行目のように、日本時間で見たときとサーバー時間で見たときで、「またぐかどうか」が入れ替わることがあります。判断は、必ず換算したあとのサーバー時間で行ってください。

夏時間に注意米国の夏時間は、3月の第2日曜日に始まり、11月の第1日曜日に終わります(米国の公的機関 NIST の案内による)。日本には夏時間が無いため、この切り替えで米国の経済指標の発表時刻が、日本時間では1時間動くことがあります。取引会社のサーバー時間も一緒に切り替わるかどうかは、会社ごとに違います。切り替えの週は、3章の確認と、この章の計算をやり直してください。

日本時間とサーバー時間を毎回見比べるのが面倒なら、チャートに日本時間を表示するインジケーターを使う方法もあります。当サイトではMT4に日本時間を表示できるTrader's Clockを紹介しています。

5. 方法①:EAの設定で時間を指定する

この章の結論は「時間の項目があれば、入力タブに換算した数字を入れるだけ」です。ただし、入れる前に説明書で3つのことを確かめます。

EAのパラメーターは、チャートに入れたときに開く設定の入力(Inputs)タブで変えます。公式ヘルプでは、このタブでEAの外部変数を変更でき、設定を保存したり読み込んだりできるとされています。すでに動いているEAなら、チャート上でEAの設定を開き直して変更します。

時間の項目の名前は、EAによってまったく違います。「StartHour」「TradeStart」「開始時刻」などさまざまです。名前から推測せず、説明書で意味を確かめてください。特に次の3つは、EAごとに答えが違います。

確かめること なぜ大事か
時刻の基準はサーバー時間か、パソコンの時間か 基準が違えば、4章の換算をするかどうかが変わる
日付をまたぐ入力(開始23時・終了2時のような入れ方)に対応しているか 対応していないEAでは、まったく取引しない、または一日中取引することがある
時間外に保有中のポジションをどう扱うか 新規の注文だけ止めるEAもあれば、時間外に決済するEAもある

3つ目は見落としやすい点です。たとえば「取引時間を9時から17時にする」という項目があっても、17時に持っているポジションが決済されるとは限りません。「17時以降は新しく注文を出さない」という意味の場合もあります。決済まで時間で決めたいなら、時間で決済する別の項目があるかを探してください。

設定を変えたら、保存(Save)ボタンでセットファイルに残しておくと、夏時間の切り替えで入れ直すときに楽になります。夏用と冬用の2つを保存しておき、切り替えの週に読み込み(Load)で入れ替える使い方もできます。

6. 方法②:EAの外から止める

この章の結論は「手軽だが、止まるのは『新規注文だけ』とは限らない」です。外から止める方法は3つあり、それぞれ持っているポジションへの影響が違います。

方法 効く範囲 時刻で自動にできるか 持っているポジション
自動売買ボタンを押す MT4の全EA できない(手で押す) EAは決済も変更もできなくなる
チャートからEAを外す 外したEAだけ できない(手で外す) EAが止まるので、その後は管理されない
停止用のツールを使う ツールの作りによる できる(ツールの機能) ツールの作りによる。説明書で確かめる

1つ目の自動売買ボタンは、2章で書いたとおり、押すとすべてのEAが取引できなくなります。公式ヘルプの言葉では「EAは動き続けるが、取引はできない」です。つまり、止めている間に価格が動いても、EAはポジションを決済できません。

2つ目のチャートから外す方法は、公式ヘルプに手順があります。チャートを右クリックし、エキスパートアドバイザ(Expert Advisors)の中の「削除」(Delete)を選びます。同じチャートに別のEAを入れたときや、プロファイル・定型チャートを切り替えたときも、EAは止まります。MT4を閉じたときは、すべてのEAが止まります。

まぎらわしいので注意公式ヘルプには、ナビゲータからEAを削除しても、チャートで動いている同じ名前のEAは止まらないとも書かれています。止めたいときは、ナビゲータではなくチャートのほうから外してください。

3つ目の停止用のツールは、時刻を決めてEAを止めたり再開したりするために作られた、インジケーターやEAです。MT4本体に無い機能を補うものなので、仕組みはツールごとに違います。自動売買ボタンと同じ状態に切り替えるもの、チャートからEAを外すものなどがあります。使う前に、どの仕組みで止めるのか止めている間のポジションがどうなるかを説明書で確かめてください。

外から止める方法を使うなら、ポジションを持ったまま止まる時間ができることを前提にします。その間の急な値動きに備えるなら、注文そのものに損切りを付けておくのが基本です。注文に決済の逆指値を付ける方法はMT4で損切り・利確を自動設定する方法で説明しています。

7. 方法③:MQL4で時間の条件を足す

この章は、.mq4 のソースを持っていて、自分で直せる人向けです。結論は「サーバー時間の『時』を取り出し、範囲外なら新しい注文を出さない」です。

公式ヘルプによると、EAは新しい価格(ティック)が届くたびに実行されます。そこで、注文を出す前に「今は取引してよい時間か」を調べる関数を1つ足します。次は、その考え方を示す最小限の例です。

input int StartHour = 9;   // 取引を始める時(サーバー時間)
input int EndHour   = 17;  // 取引をやめる時(サーバー時間)

bool IsTradingTime()
{
   int h = TimeHour(TimeCurrent());
   if(StartHour < EndHour)
      return(h >= StartHour && h < EndHour);  // 同じ日の中で終わる
   return(h >= StartHour || h < EndHour);     // 日付をまたぐ
}

使うときは、新しい注文を出す処理の手前で IsTradingTime() が false なら注文を出さないようにします。決済の処理まで止めてしまわないよう、条件を入れる場所に気をつけてください。

開始と終了の大小で、判定のしかたを変えます

日付をまたがない

開始 9 / 終了 17

「9以上 かつ 17未満」

9時から16時台までが取引時間です。両方の条件を満たすときだけ取引します。

→ 昼間だけ動かしたい場合

日付をまたぐ

開始 23 / 終了 2

「23以上 または 2未満」

23時台と0時・1時台が取引時間です。どちらかを満たせば取引します。

→ 夜から朝にかけて動かしたい場合

「かつ」のまま日付をまたぐ時間を入れると、条件を満たす時刻が無くなり、一日中取引しないEAになります。

この例には、MQL4リファレンスの仕様から来る注意点が3つあります。

  • Hour() を使わない。リファレンスでは、Hour() はプログラムを開始した時点の「時」を返し、実行中は値が変わらないとされています。そのため例では、毎回 TimeHour(TimeCurrent()) で取り出しています
  • 時刻を確かめられるのは価格が届いたときだけ。EAはティックで動くので、17時ちょうどに何かをしたいときも、実際に動くのは17時を過ぎて最初の価格が届いたときです
  • 開始と終了に同じ数字を入れない。この例では、同じ数字だと「一日中取引してよい」と判定されます

直したら、MetaEditorでコンパイルし、ストラテジーテスターで動きを確かめます。リファレンスによると、テスター中の TimeCurrent は過去データにもとづいて再現されます。一方で TimeLocal もテスター中は同じ値になるため、パソコンの時刻を使うEAはテスターで正しく確かめられません。テスターの使い方はMT4でのバックテストのやり方を参考にしてください。

8. 設定したあと、止まったか・動いたかを確かめる

この章の結論は「最初の1日は、指定した時刻の前後にログを見る」です。設定しただけで安心せず、実際の動きで確かめます。

見る場所 分かること
チャート右上の表示 EAの名前とスマイルマークが出ていれば、EAは入っていて取引できる状態。公式ヘルプでは、取引が許可されていないとスマイルマークの代わりに別の記号が出るとされています
ターミナルの「エキスパート」(Experts)タブ EAの動き(注文、決済、EA自身のメッセージ)が時刻つきで残る。時間外に注文が出ていないかを見る
ターミナルの「操作履歴」(Journal)タブ トレーダーの操作とMT4の動きの記録(起動中の分)。EAのタブに何も無いときに、MT4側で何が起きたかを見る
口座履歴 約定した時刻。指定した時間帯の中で約定していないかを、4章の換算とあわせて確かめる

たとえば、サーバー時間15時30分から17時30分に止める設定にした場合です。その日の15時30分から17時30分(日本時間21時30分から23時30分)の間に、新しい注文の記録が無いことを確かめます。17時30分を過ぎたあと、条件がそろったときに再び注文が出れば、再開も正しく動いています。

ログを見ても何も出ていないときは、時間の設定より前に、価格が届いているかを疑ってください。週末や祝日など市場が閉まっている間は、新しい価格が届かないため、EAも動きません。平日の値動きがある時間に確かめ直すのが確実です。

EAそのものが動いていないときの確認は、MT4にEAを入れる方法の「動いているかを確認する場所」で説明しています。

9. よくある質問

質問 答え
EAに入れる時間は日本時間ですか EAによって違います。TimeCurrentで時刻を取るEAならサーバー時間です。説明書で基準を確かめてください。MQL4のTimeCurrentはサーバーで作られた時刻で、パソコンの時刻設定には左右されません。
時間の項目が無いEAでも、取引時間を決められますか ソースを直せるならコードに条件を足します。直せないなら、自動売買ボタン、チャートから外す、停止用ツールのいずれかで外から止めます。MT4本体の設定だけでは決められません。
時間外になると、持っているポジションは決済されますか 方法によって違います。EAの時間設定には新規の注文だけを止めるものもあり、自動売買ボタンで止めた場合はEAが決済もできなくなります。説明書で扱いを確かめてください。
夏時間になったら、設定を変える必要がありますか 取引会社のサーバー時間が切り替わるかどうかで変わります。3月と11月の切り替えの週に、時差を確かめ直してください。夏用・冬用のセットファイルを分けておくと楽です。
VPSで動かしている場合も同じですか EAがサーバー時間で判定しているなら、VPSのパソコンの時刻が何であっても結果は同じです。パソコンの時刻を使うEAの場合だけ、VPSの時刻設定に左右されます。
何分単位まで指定できますか EAの作りによります。「時」だけのEAもあれば、「分」まで入れられるEAもあります。7章の例は「時」だけで判定しています。
時間で止めれば、損失を防げますか 防げるとは限りません。止めている間もポジションは値動きの影響を受けます。損切りの注文を付けるなど、別の備えと組み合わせてください。

10. まとめ

MT4でEAの稼働時間を決める方法を、もう一度整理します。

  • MT4本体には時刻で止める設定が無い。方法はEAの設定・外から止める・コードに足すの3つです
  • 入れる時刻はサーバー時間。気配値表示の時刻と日本時間を見比べて、時差を確かめます
  • 換算は「日本時間 − 時差」。開始が終了より大きくなったら、日付をまたぐ入力です
  • 止め方でポジションの扱いが変わる。自動売買ボタンで止めると、EAは決済もできません
  • 3月と11月は見直す。夏時間の切り替えで、時差や指標の時刻が動くことがあります

いちばん多い失敗は、日本時間のまま数字を入れてしまうことです。次に多いのが、日付をまたぐ時間帯を、EAが対応していない形で入れることです。この2つを避けるだけで、「思った時刻に止まらない」はほとんど起きなくなります。

まずは、自分の取引会社の時差を1回確かめてメモするところから始めてください。そのうえで設定し、最初の1日だけは指定した時刻の前後にログを見ておくと安心です。

【免責事項】
本記事はMetaTrader 4におけるEA(エキスパートアドバイザ)の稼働時間の考え方と設定方法を解説したものであり、特定の取引手法・金融商品・EA・取引会社の利用を推奨するものではありません。記載内容は2026年9月時点でMetaQuotesが公開しているMetaTrader 4公式ヘルプ・MQL4リファレンス、および米国の公的機関 NIST の公開情報にもとづいています。サーバー時間と時差、夏時間の扱いは取引会社ごとに異なり、画面の名称や設定項目もビルドや配布元によって異なる場合があります。掲載したコードは考え方を示す例であり、動作や成果を保証するものではありません。時間を指定してEAを止めても、損失を防げるとは限りません。FXは元本を超える損失が生じる可能性があります。取引の判断はご自身の責任で行ってください。

PR

投資家の英知をすべての人に。GogoJungle

GogoJungleでFXツール・EA・投資教材を探す

稼働時間の決め方が分かると、EAを選ぶときに見る点も増えます。GogoJungleはFX・株式・日経225などの投資用ソフトや教材を扱う専門のマーケットプレイスです。説明書とサポートの窓口があるかを見ておくと、設定で迷ったときに困りません。

GogoJungleを見てみる

-FXツール

© 2026 FXと株のKOU BLOG