MetaTrader 5 / スクリプト

Economic Calendar CSV - MetaTrader 5のためのスクリプト

157
(9)

これは、algotrading bookで 紹介されているスクリプトCalendarForDates.mq 5の拡張版である。

入力変数には、国コード、現在のコード、および必要なレコードをフィルタリングするための時間範囲を指定することができます。入力が空のままであれば、完全なカレンダーを要求することができます(ターミナルが起動してから初めてカレンダーを要求した場合、そのベースをダウンロードするのに時間がかかったり、タイムアウトして結果が出なかったりすることがあります - その場合は、スクリプトをもう一度実行してください)。

その結果、最も重要なフィールドを持つカレンダーレコードのCSVファイルが得られます(すべてのフィールドがエクスポートされるわけではありません。)

オプションとして、この本でも紹介されている インジケータCalendarMonitorCached.mq5で 作成された*.cal-file(特定の時間のカレンダーのアーカイブされたコピー)を入力することができます。このインジケータは、拡張バージョンのCalendarMonitorCachedTZ.mq5(推奨であり、次に説明する新機能のために必要です。)

MetaTraderのCSV経済カレンダー


最も興味深い機能:このスクリプトは、TimeServerDST.mqhを 使用して、過去のサーバーのタイムゾーンの変更に従って、過去のイベントのタイムスタンプを調整し、それがキャンドルのタイムスタンプに永続的に反映されることを示している。このモードは、入力FixCachedTimesBySymbolHistoryを trueに 設定することで有効になります。

補正を行った場合と行わなかった場合のイベントをCSVファイルに保存することで、時刻補正が履歴に与える影響を簡単に比較することができます。

この機能を適切に使用するためには、XAUSDまたはEURUSDのH1チャート上でスクリプトを実行することを推奨します。プログラムで使用する場合は、これらのシンボルをTimeServerDST の関数に渡す必要があります。

インジケータCalendarMonitorCachedTZ.mq5では、時間補正されたカレン ダー・イベントを、テスター内部からロード可能なアーカイブされた calファイルにエクスポートするために、同じ手法が使用されており、ニュース・ロボットの正確なバック テストと最適化を保証します。

時間補正が実行される日付の範囲は、タイムフレームH1のチャート上のバーの最大数に制限されて います。これがTimeServerDST.mqhで 使用されている経験的手法の特徴です。

例えば、米国の非農業部門雇用者数(NFP)の発表のような、できれば市場に大きなインパク トを与える特定のイベントを考えてみましょう。

夏時間スケジュール(MQデモ)の欧州サーバーでは、冬は14:30、夏は15:30に発生します。下のスクリーンショットでは、CSVファイルにエクスポートされた完全なカレンダー履歴の2つのバージョンを並べて見ることができます。どちらのエクスポートも11月8日(冬、標準時)に実行されたため、2023年の夏を含むすべてのイベント(およびその他の季節や年)に対して、デフォルトでGMT+2オフセットが適用されています。修正なし(右図)の場合、夏のNFPのエクスポート時刻は14:30となる。これは正しくない。

タイムスタンプを修正した経済カレンダー・イベント

夏の間有効だったサーバーのタイムゾーンを経験的に自動検出した後、ライブラリは時刻を補正してカレンダーのエクスポートを実行します(左図)。その結果、夏のNFPは本来あるべき15:30に移動した。この期間のチャートを見て、補正が適切であることを確認してください。

EURUSDのH1チャートに見る非農業部門雇用者数

この具体的なケースはそれほど劇的なものではありません。なぜなら、修正されない発表時刻14:30は15:30の前になるため、エキスパートアドバイザーはおそらくニュースを待ち続け、取引を開始することができるからです。しかし、サーバーのタイムゾーンが夏に切り替わると、カレンダーに登録されているすべての冬のイベントのタイムスタンプが1時間遅れる(!)。

これはまだ実験的なものです。お気軽にフィードバックをお寄せください。

時間の修正がニュース取引に与える影響について、さらなる調査を計画しています。ご期待ください。


添付のmqhファイル(CalendarFilter.mqh、CalendarCache.mqh、QuickSortStructT(Ref).mqh)には、書籍に掲載されたオリジナル版と比較してのバグフィックスと改良が含まれています。



04.10.2024 - calファイルおよびcsvファイルへのサーバータイムゾーンオフセットの書き込み/読み込みを追加。

10.11.2024 - サーバーのタイムゾーン変更に合わせて履歴のイベントのタイムスタンプを修正するオプションを追加。

11.11.2024 - CalendarCache.mqhとCalendarFilter.mqhの小さなバグ修正と改良。

22.11.2024 - CalendarCache.mqhの小さなバグ修正と改良。


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