無料でロボットをダウンロードする方法を見る
Twitter上で私たちを見つけてください。
私たちのファンページに参加してください
興味深いスクリプト?
それではリンクにそれを投稿してください。-
他の人にそれを評価してもらいます
スクリプトを気に入りましたか?MetaTrader 5ターミナルの中でそれを試してみてください。
エキスパート

Broker Clock Auditor - MetaTrader 5のためのエキスパート

Quoc Dat Quach
Quoc Dat Quach
Software engineer with 8 years in fintech and mobile, writing MQL4/MQL5 since 2017. I build Expert Advisors, indicators, trade and risk-management panels and utilities for MT4/MT5, and I trade forex and gold on MT5 myself.
| Japanese English Русский 中文 Español Deutsch Português 한국어 Français Italiano Türkçe
ビュー:
9
評価:
(1)
パブリッシュ済み:
MQL5フリーランス このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動

エキスパートアドバイザー内のすべてのセッションフィルターはサーバー時間で記述されており、サーバー時間とはブローカーが選択した時刻基準のことです。サーバーによってはUTCで動作するものもあれば、冬はUTC+2、夏はUTC+3で動作するものもあり、時刻が変更されるサーバーであっても、その変更が行われる週末はすべて同じというわけではありません。 このツールは、フォーラムの投稿ではなく、銘柄自身の価格履歴から時刻を読み取ります。FXおよびCMEの週の終値はニューヨーク時間の17:00に確定するため、各週の終値のサーバー時刻をUTCのその時点と比較することで、その週のサーバーのオフセットが算出されます。 過去60週間で、これは約60回の測定値(終値ごとに1回)に相当し、そのデータ列から、ツールは時計が移動したかどうか、いつ移動したか、そしてどのカレンダー(米国または欧州の夏時間)に基づいて移動したかを判別します。その後、今後各週のロンドン、ニューヨーク、東京、シドニーの市場開始時刻をサーバー時間で表示します。

bca-パネル

Exnessデモサーバー、マーケットウォッチのシンボル5つ、それぞれ60週間分のH1バー、1回の処理に12.3ミリ秒。現在は最新の通常引け時のオフセットです。「Calendar」には「固定」「米国」「EU」と表示され、米国と欧州の切り替え日がウィンドウ内に含まれるかどうかも示されます(テスト済み)。 「不規則」は、周囲の終値と一致しない終値をカウントします。ここでは、金の米国祝日による4回の早期引けが該当します。「日曜」は、少なくとも1本のバーを含むサーバー上の日曜日をカウントします。BTCUSDは24時間取引されており、測定対象となる終値がありません。ページに収まるよう、パネルのフォントサイズを4に設定してキャプチャしました。デフォルトは8です。

問題点

「10:00から13:00まで取引」といったセッションフィルターは、サーバーの時刻に基づいてロンドンまたはニューヨークの取引時間を指定するものです。これは、2つの時計の時刻差が一定である間のみ正確ですが、年に2回、その差が変化します。 欧州と米国では、時計の切り替えが行われる週末が異なります。2026年には、米国は3月8日に、欧州は3月29日に時計を進め、秋には欧州が10月25日に、米国が11月1日に時計を戻します。 春に3週間、秋に1週間、ロンドンはニューヨークより5時間ではなく4時間進んでいる状態となり、どちらか一方のカレンダーに従うサーバーは、もう一方の都市との時刻がずれてしまいます。

どの週が特定のEAに影響を与えるかは、サーバー独自のルールに依存しており、そのルールがプログラムが読み取れる形で記述されていることはめったにありません。 TimeTradeServer() − TimeGMT() は今日のオフセットを返しますが、これは PC の時計とタイムゾーンから計算されたものであり、バックテストが行われた去年の 3 月や来月については何も示していません。

測定対象

基準点。 銀行間外国為替の週、および金属や米国指数先物のCMEの週は、17:00 America/New_York に終了します。 シンボルのH1ヒストリーにおいて、InpMinGapHours時間(デフォルトは20)以上の休止が発生するたびに、このツールはclose = 休止前の最後のH1バーの始値+1時間、 U = それに最も近い17:00(ニューヨーク時間)を、米国の夏時間規則に従ってUTCに変換した時刻とします。close − U は、その終値時点におけるサーバーのオフセットとなります。祝日による中断(クリスマスイブ、大晦日)も同様に17:00で終了し、アンカーとして扱われます。

  • 不規則な終値。 その終値のオフセットが、直前の最後の通常終値および直後の終値の両方と異なる場合、その終値にはフラグが立てられ、以下のすべての処理から除外されます(最初と最後の終値には決してフラグが立てられません)。ある金曜日に1時間遅れて配信されたデータや、休止のように見えるほど長い履歴の欠落は、そうでなければ2回の時刻変更として認識されてしまうでしょう。
  • 切り替え。 オフセットが異なる2つの連続した通常クローズが、時刻変更を挟み込む。 本ツールは、これら2つのクローズの間の期間を日付として特定し、その範囲をUTCで、米国の切り替え日(3月の第2日曜日、11月の第1日曜日)および欧州の切り替え日(3月の最終日曜日、10月の最終日曜日)と照合し、方向も確認します。春の切り替えではオフセットが上方へ、秋の切り替えでは下方へ移動する必要があります。 各切り替えには、「US」、「EU」、「US+EU」(区間に両方が含まれるが、データが不十分)または「その他」のラベルが付けられます。
  • 体制。 切り替えなし=固定オフセット;すべてUS=米国暦;すべてEU=欧州暦;その他=混合。固定という判定は、ウィンドウ内に少なくとも1つの米国切り替え日と1つの欧州切り替え日が含まれている場合にのみ「*テスト済み*」とみなされます。7月の4週間分の履歴だけでは、固定時刻と変動時刻を区別できないため、ツールはその旨を通知します。
  • 日曜日のバー。 少なくとも1つのH1バーを含むサーバー上の日曜日(および土曜日)の数。UTCベースのサーバーでは、外国為替の週が日曜日の夕方に始まるため、D1ベースのすべての指標に6本目となる小さな日足ローソク足が追加されます。
  • リアルタイムのクロスチェック。 ライブチャート上では、履歴から算出されたオフセットの横に TimeTradeServer() − TimeGMT() が表示されます。この差は、サーバーではなく、PCの時計やタイムゾーンに起因するものです。
  • 予測。 最新のオフセットと検出されたカレンダーに基づき、今後 InpProjectWeeks 週間の各平日について、ロンドン、ニューヨーク、東京、シドニーの取引開始時刻(現地時間が入力値)が算出されます。これらの時刻のいずれかが変更される日のみがリストされます。

複数の銘柄がある場合、最も一般的なオフセットとカレンダーが基準となり、これと一致しない銘柄はログに明記されます。例えば、ニューヨーク時間16:00に取引が終了する株式CFDは「1時間低い」と表示され、24時間365日取引される仮想通貨銘柄には終値が全く存在しません。

3つのデモサーバー、3つの時計

2026年10月7日のEURUSD、H1チャートに添付。最新のバー(2025年8月13日~2026年10月7日)までの60週間分のH1バー。 シンボルリストを除き、すべての設定はデフォルトのまま(Exnessでは「*」、他の2つでは指定されたシンボル名)。

サーバー 銘柄 クローズ 現在のオフセット カレンダー スイッチ確認済み(その後の最初のクローズ) 不規則なクローズ バーが表示される日曜日
Exness-MT5Trial17 EURUSD、GBPUSD、USDJPY、XAUUSD 各62 UTC+0 なし、テスト済み — XAUUSD 4、その他 0 60
ICMarketsSC-デモ EURUSD、GBPUSD、USDJPY 各62 UTC+3 米国 2025年11月8日 −1時間、2026年3月14日 +1時間 0 0
MetaQuotes-デモ EURUSD、GBPUSD、USDJPY、XAUUSD 62 / 40 / 40 / 62 UTC+3 4つすべてでEU;オフセット:4つのうち3つが一致 2025年10月31日 −1時間、2026年4月4日 +1時間 EURUSD 1、XAUUSD 4 0

bca-3台のサーバー

3つのデモサーバーにおけるEURUSDのニューヨーク時間17:00の終値から推測されるオフセット。H1バーは2025年8月1日から2026年10月7日まで、サーバーごとに64回の終値、終値ごとに1つのドット。破線は米国の切り替え、点線は欧州の切り替えを示す。 MetaTrader5のPythonパッケージおよびターミナルのMCPインターフェースで読み取ったH1バーの時刻に基づいて描画されており、ツール自体の出力に基づくものではない。

Exness:通年UTC。 クリスマスイブや大晦日の取引休止期間を含め、62回の終値すべてが+0:00と表示されています。 変動するのは終値そのものです。ニューヨークが夏時間(3月中旬から11月上旬)の期間中は、その週の最後のH1バーはサーバー時間21:00で終了し、それ以外の期間は22:00で終了します。 毎週日曜日には21:00または22:00からのバーが存在するため、日足チャートには6本目の短いローソク足が表示されます。金(ゴールド)も同様のオフセットがあり、4つの不規則な終値が追加されます。これらはすべて米国の祝日による早めの引けです: ブラックフライデー 2025年11月28日(−2時間)、クリスマスイブ(−3時間)、ジューンティーンス 2026年6月19日、および金曜日 2026年7月3日(各−4時間)。

IC Markets:米国カレンダーに基づき、冬はUTC+2、夏はUTC+3。 オフセットは、2025年11月1日と8日、および2026年3月7日と14日の終値の間で変化します。これらは、米国でサマータイムの切り替えが行われた週末です。FXの取引週は、年間を通じてサーバー時間の月曜日00:00から金曜日24:00までであり、日曜日のバーは表示されません。

MetaQuotes-Demo:欧州式カレンダーに基づき、UTC+2/UTC+3。 切り替えは、 2025年10月25日と31日、および2026年3月27日と4月4日の終値の間に発生します。 EURUSDの終値のうち1つが不規則です。2026年3月13日(金)、米国と欧州の切り替え期間の間に、最後のバーはサーバー時間00:00(ニューヨーク時間17:00の1時間後)に終了しましたが、その前後の終値は定刻通りでした。 GBPUSDとUSDJPYについては、このターミナルでは2026年1月以降のH1データしか存在しないため、春の切り替えのみが表示されています。 金はこれら3つの通貨ペアとは異なり、ジャーナルにも記載されている通り、2026年春の欧州取引時間切り替え以降、週足終値はサーバー時間23:00(ニューヨーク時間17:00の1時間前)に固定されているため、現在、単独ではUTC+2:00と表示されている。

今後数週間における意味合い。 2026年10月7日時点の3つの予測:Exnessでは、ロンドン市場は10月23日までサーバー時間07:00に、10月26日からは08:00に、ニューヨーク市場は10月30日まで12:00に、11月2日からは13:00にそれぞれ開場します。 IC Marketsでは、ロンドン市場は10:00に開場しますが、10月26日の週のみ11:00となります。 MetaQuotes-Demoでは、ニューヨーク市場は15:00に開場しますが、同週のみ14:00となります。「ロンドン 10:00」または「ニューヨーク 15:00」と記述されたフィルターは、2026年の52週のうち48週についてはUTC+2/+3サーバーのいずれにおいても、2026年の52週のうち48週では正しく機能しますが、残りの4週(春に3週、秋に1週)では誤った結果となります。各フィルターは異なるサーバーで動作しており、2027年および2028年には、春の不一致期間が2週間に及びます。

3つのライブ接続すべてにおいて、クロスチェックの結果は履歴と一致しました。TimeTradeServer() − TimeGMT() の結果は、IC MarketsおよびMetaQuotes-Demoでは+3:00、Exnessでは+0:00となりました。 このページの作成中に、1つのターミナルがログインせずに起動されました。オフライン状態では、+3:00のサーバー上で同じ差が+0:00と表示されました。そのため、ターミナルが接続されていない場合、このツールはチェックをスキップし、ジャーナルに1行を記録します。

レポートの独立した検証

このレポートは、MetaTraderの外でも再集計可能です。 このページで使用されているスクリプトは、サマリーファイルからウィンドウのみを読み取り、ExnessではターミナルのMCPインターフェースを介して、他の2つのサーバーではMetaTrader5のPythonパッケージを介して、同じH1バーの時刻を取得し、ツール独自の夏時間ルールではなく、Pythonのタイムゾーンデータベースを使用して、上記で説明したすべてを再計算します: すべてのアンカー行、すべてのスイッチ行とそのカレンダー、すべてのサマリーカウンター、判定のオフセットとカレンダー、そしてすべての予測行です。ここに示した3回の実行において、328、250、284の値で完全に一致し、差異は1つもありませんでした。 このツールの定義については、まず10件の手作業による検証ケース(8つの合成バー系列:固定、米国、欧州、反転スイッチ、祝日による一時停止、データの欠落、1週間隔で発生する2回の早期引け、および2つの予測)で検証が行われ、意図的に仕込まれた10個のエラーがすべて検出されました。

使用方法

エキスパートアドバイザーを任意のチャートにアタッチします。InpSymbols を空にすると、そのチャートのシンボルを監査します。* を指定すると、マーケットウォッチ内のすべてのシンボルを監査します。カンマ区切りのリストを指定すると、そのリスト内のシンボルを監査します。週末で取引が終了するシンボル(主要通貨、金、指数先物など)を選択してください。仮想通貨のシンボルには、測定対象となる終値がありません。 監査は1回(またはInpRefreshMinutesごとに)実行され、シンボルごとに1行ずつ、不規則な終値、切り替え、判定結果、および予測値をエキスパート・ジャーナルに出力し、チャート上に表を描画し、CSVファイルに書き込みます。このツールは履歴データの読み取りのみを行います。コード内に取引機能はなく、DLLもネットワークアクセスも使用しません。 * が付いている場合、Market Watchにすでに登録されている銘柄のみを読み込みます。 このツールはシンボルを選択することはありませんが、リストにあるシンボルがマーケットウォッチに存在せず、その履歴を最初にダウンロードする必要がある場合、ターミナルが自動的にマーケットウォッチに追加します(実測:EURCHFとAUDNZDは初回読み込み時に追加されましたが、2回目に読み込まれたAUDUSDは追加されませんでした); ジャーナルでは、初回読み込み前にそのような銘柄名を記載しています。

まずジャーナルをお読みください。IC Markets における EURUSD の行は以下の通りです。

EURUSD 62 アンカー(週末 60、祝日 2) | 現在 UTC+3:00 | 表示 +2:00 +3:00 | 切り替え 2 回: 2025.11.08 US -60, 2026.03.14 US +60 | レジーム US, dst_tested 1 | 不規則 0 | 日曜日のバー 0 日

これによると、EURUSDは当該期間中に62回クローズしており、サーバーは現在UTCより3時間進んでいるが、以前は2時間進んでいたこともあり、時刻は2回変更された。2025年11月8日の前の週に1時間戻り、2026年3月14日の前の週に1時間進んだ。いずれも米国日付に基づく。 続く予測ラインには、時刻が変更される各日の始値時点におけるサーバー時刻が記載されています。例えば

予測 2026.10.26 月 オフセット +3:00 ロンドン 11:00 ニューヨーク 15:00 東京 03:00 シドニー 日 23:00 (ロンドン)

週末で停止する複数のシンボルを使用します。結論はそれらの過半数であり、それに同意しないシンボルが名指しされます。

入力

入力 デフォルト 意味
InpSymbols "" シンボル:空 = チャートシンボル、* = マーケットウォッチ、それ以外はCSVリスト
InpWeeks 60 読み込むH1の過去データ週数(60週で夏時間・冬時間の両シーズンをカバー)
InpMinGapHours 20 これほど長い価格データの一時停止は、市場休場(週末・祝日)を意味します
InpProjectWeeks 8 サーバー時間で、プロジェクトのセッション開始までの週数
InpLondonOpen 08:00 ロンドン市場開場、ロンドン現地時間
InpNewYorkOpen 08:00 ニューヨーク市場開始(ニューヨーク現地時間)
InpTokyoOpen 09:00 東京市場開場、東京現地時間
InpSydneyOpen 07:00 シドニー市場開始(シドニー現地時間)
InpMaxExamples 5 Journal: 記号ごとに印刷される不規則なアンカー
InpWriteCsv true アンカー、スイッチ、要約、投影、および判定のCSVファイルを出力する
InpShowPanel true 結果表をチャート上に描画する
InpPanelCorner CORNER_LEFT_UPPER パネルの角
InpPanelFontSize 8 パネルのフォントサイズ
InpPanelX 10 パネルのX方向オフセット(px)
InpPanelY 18 パネルの Y オフセット(px)
InpRefreshMinutes 0 N分ごとに再監査(0 = 1回のみ監査)

範囲外の値(2~520 週以外の週数、6~60 時間以外の一時停止、1~52 週以外の予測、HH:MM 形式ではないオープン時間)は、それぞれ 1 行のジャーナルを記録してクリップまたはデフォルト値にリセットされます。エキスパートアドバイザーが起動を拒否することは決してありません。

出力ファイル

すべてのファイルは MQL5\Files\BrokerClockAuditor\ に保存され、ヘッダー行付きでセミコロン区切りとなります。ファイル名は <symbols>_<weeks>w_<chart id>_… となっており、2 つのチャートが互いに上書きされることはありません。

  • …_<symbol>_anchors.csv — 終値ごとに 1 行:サーバー時間、UTC でのニューヨーク時間 17:00、分単位のオフセット、週末または祝日、一時停止時間、再開時間、定期的または不定期。
  • …_<symbol>_switches.csv — クロックの変更ごとに1行:その変更を挟む2つの終値、変更前後のオフセット、カレンダー。
  • …_summary.csv — 銘柄ごとに1行、上記のすべてのカウンターを含む。
  • …_projection.csv — 予測されるセッション開始時刻。いずれかが変更される日ごとに1行。
  • …_verdict.csv — 全体的なオフセットとカレンダー、一致する銘柄数、およびリアルタイムのオフセット。

制限事項(平易な説明)

  • 基準となるのはニューヨーク市場の17:00の引けです。別の時刻に引ける銘柄(16:00に引ける株式CFDや一部の指数など)は、その時間差分だけずれて表示されます。主要銘柄と混在させると、ジャーナルは「不一致」と判定します。
  • 解像度はH1バーです。オフセットは整数時間単位で算出されます。30分単位のオフセットを持つサーバーの場合、そのバーの時刻は整数時間に丸められて表示されます。
  • 米国や欧州の夏時間とは無関係な日付で時計を変更するブローカーは別の扱いとなり、その予測では最新のオフセットがそのまま維持されると想定されます。
  • 予測は、履歴が示すカレンダーの範囲を延長するものです。ブローカーが来月、サーバーを別のタイムゾーンに移すことは予測できません。
  • ターミナルがまだ履歴を保持していない銘柄を初めて読み込む際、数週間分のデータしか存在しない場合があります(実測値:EURCHFは2.8週間分でした)。ジャーナルには「ウィンドウが短縮されました」と表示され、カレンダーには「未テスト」と表示されます。履歴が揃い次第、再度実行してください。
  • 切り替えの前後で通常の終値がない週は、範囲が広がります。範囲に米国と欧州の両方の日付が含まれる場合、切り替えは推測値ではなく「US+EU」と表示されます。
  • 上記の数値は、表示された日付における3つのデモサーバーに関するものです。これらは、同じブローカーの実取引サーバーについては何も示しておらず、実取引サーバーは異なるクロックで動作している可能性があります。

MetaQuotes Ltdによって英語から翻訳されました。
元のコード: https://www.mql5.com/en/code/78123

Advanced Prop-firm Trade Panel based on S-R Advanced Prop-firm Trade Panel based on S-R

MetaTrader 5用の、プロップファーム向けリスクガード機能と隠しサポート・レジスタンス検出機能を内蔵した手動取引パネル。

CajasTF – MT5用統合マルチタイムフレームサイドパネル CajasTF – MT5用統合マルチタイムフレームサイドパネル

スマートな色分け機能、独立した価格目盛、ローソク足の残り時間カウントダウンタイマーを備えた、リアルタイムのマルチタイムフレーム対応サイドパネルミニチャート。

Prop Daily Loss Meter Prop Daily Loss Meter

プロップファーム口座の1日あたりの損失上限のうち、すでにどれだけ使用され、どれだけ残っているかを表示します。読み取り専用のインジケーターです。

Accelerator Oscillator (AC) Accelerator Oscillator (AC)

アクセルレーション/デセレレーションインジケーター(AC)は現在の市場を動かす力の加速と減速を測ります。