疑問が解消されたものもあります。時間が整理された。単純なことがわかった。時間はGMTで、サイトはGMT+3で表現されており、それゆえ私の誤解はすべて積み重なった。
最初の結果はこちら:Receivedイベントの説明文、画像の1行目
2019.07.24 11:29:03.972 !00 (EURUSD,H1) время и дата события - 2019.07.24 13:45:00 2019.07.24 11:29:03.972 !00 (EURUSD,H1) идентификатор события - 840500001 2019.07.24 11:29:03.972 !00 (EURUSD,H1) тип события из перечисления ENUM_CALENDAR_EVENT_TYPE - CALENDAR_TYPE_INDICATOR 2019.07.24 11:29:03.972 !00 (EURUSD,H1) сектор, к которому относится событие - CALENDAR_SECTOR_BUSINESS 2019.07.24 11:29:03.972 !00 (EURUSD,H1) частота (периодичность) события - CALENDAR_FREQUENCY_MONTH 2019.07.24 11:29:03.972 !00 (EURUSD,H1) режим времени события - CALENDAR_TIMEMODE_DATETIME 2019.07.24 11:29:03.972 !00 (EURUSD,H1) идентификатор страны - 840 2019.07.24 11:29:03.972 !00 (EURUSD,H1) текстовое имя страны (в текущей кодировке терминала) - Соединенные Штаты 2019.07.24 11:29:03.972 !00 (EURUSD,H1) единица измерения значения экономического индикатора - CALENDAR_UNIT_NONE 2019.07.24 11:29:03.972 !00 (EURUSD,H1) важность события - CALENDAR_IMPORTANCE_MODERATE 2019.07.24 11:29:03.972 !00 (EURUSD,H1) множитель значения экономического индикатора - CALENDAR_MULTIPLIER_NONE 2019.07.24 11:29:03.972 !00 (EURUSD,H1) количество знаков после запятой - 1 2019.07.24 11:29:03.972 !00 (EURUSD,H1) URL источника, где публикуется событие - https://www.markiteconomics.com 2019.07.24 11:29:03.972 !00 (EURUSD,H1) код события - markit-manufacturing-pmi 2019.07.24 11:29:03.972 !00 (EURUSD,H1) текстовое имя события на языке терминала (в текущей кодировке терминала) - Индекс менеджеров по закупкам в производственном секторе от Markit
開発者の方に質問です。
なぜ、ドキュメントにあるこのコードを、少し修正すると
void OnStart() { MqlCalendarValue values[]; //--- запросим историю событий от текущего времени до конца сегодняшнего дня. if(CalendarValueHistory(values,TimeCurrent(),iTime(_Symbol, PERIOD_D1, 0)+PeriodSeconds(PERIOD_D1))) { PrintFormat("Получены значения событий по country_code=%s: %d", ArraySize(values)); //--- выведем значения событий в Журнал ArrayPrint(values); } else { PrintFormat("Ошибка! Не удалось получить события по стране country_code=%s"); PrintFormat("Код ошибки: %d",GetLastError()); } //--- }
は、配列のサイズが ゼロであることを示しますが、それにもかかわらず、カレンダーのすべてをプリントアウトしています。つまり、すべてのイベントを受信する。
2019.07.24 15:20:33.131 !00 (EURUSD,H1) Получены значения событий по country_code=(non-string passed): 0 2019.07.24 15:20:33.131 !00 (EURUSD,H1) [id] [event_id] [time] [period] [revision] [actual_value] [prev_value] [revised_prev_value] [forecast_value] [impact_type] [reserved] 2019.07.24 15:20:33.131 !00 (EURUSD,H1) [0] 97265 76020013 2019.07.24 15:30:00 1970.01.01 00:00:00 0 -9223372036854775808 -1227000 -9223372036854775808 -2405000 0 0 2019.07.24 15:20:33.131 !00 (EURUSD,H1) [1] 87842 840220012 2019.07.24 17:00:00 1970.01.01 00:00:00 0 -9223372036854775808 1791000 -9223372036854775808 -9223372036854775808 0 0 2019.07.24 15:20:33.131 !00 (EURUSD,H1) [2] 93625 410010011 2019.07.24 23:00:00 2019.04.01 00:00:00 1 -9223372036854775808 -400000 -9223372036854775808 400000 0 0 2019.07.24 15:20:33.131 !00 (EURUSD,H1) [3] 93626 410010012 2019.07.24 23:00:00 2019.04.01 00:00:00 1 -9223372036854775808 1700000 -9223372036854775808 2900000 0 0 2019.07.24 15:20:33.131 !00 (EURUSD,H1) [4] 87394 392060016 2019.07.24 23:50:00 2019.06.01 00:00:00 0 -9223372036854775808 800000 -9223372036854775808 0 0 0 2019.07.24 15:20:33.131 !00 (EURUSD,H1) [5] 97012 392070003 2019.07.24 23:50:00 2019.07.20 00:00:00 0 -9223372036854775808 950000000 -9223372036854775808 -9223372036854775808 0 0 2019.07.24 15:20:33.131 !00 (EURUSD,H1) [6] 97013 392070004 2019.07.24 23:50:00 2019.07.20 00:00:00 0 -9223372036854775808 -93100000 -9223372036854775808 -9223372036854775808 0 0
どこで、何が働く時間を持っていないのですか?
はい、ありがとうございます。それはもう解決済みです。ドキュメントにある例を修正するときに失敗してしまいました。
Renat Fatkhullin Renatさん、いつかTimeGMTOffset()のような関数が、ローカルタイムではなくサーバータイムだけで作られることを期待してもいいでしょうか?経済カレンダー機能はGMT時間を使用しており、ローカルタイムとサーバータイムが一致しないことが多いからです。だから、ニュースの時間が来ても、それを端末の時間に変換しなければならないんです。週末にこの機能を呼び出すと問題があることは理解していますが、この機能は現在使用できません、とか、何らかのエラーを検出することができます。
今のところ、OnInit()でタイミング差を計算し、グローバル変数に書き込む、というような感じで作っています。でも、あまり好きではないんです。私見では、内蔵の関数を呼び出して、ニュースの時刻をサーバーの時刻に合わせる方が良いと思います。特に端末は土日もサーバーの時間が空いているのでしょう。
Renat Fatkhullin Renatさん、いつかTimeGMTOffset()のような関数が、ローカルタイムでなくサーバータイムだけで作られることを期待しても良いですか?経済カレンダー機能はGMT時間を使用しており、ローカルタイムとサーバータイムが一致しないことが多いからです。だから、ニュースの時間をもらったら、それを端末の時間に変換する必要がある。週末にこの機能を呼び出すと問題が発生することがあるのは理解していますが、この機能は現在使用できないとか、何らかのエラーと判断することは可能です。
OnInit()で時差を計算し、グローバル変数に書き込んでいます。でも、あまり好きではないんです。私見では、内蔵の関数を呼び出して、ニュースの時刻をサーバーの時刻に合わせる方が良いと思います。特に端末は土日もサーバーの時間が空いて いるのでしょう。
もちろん使えますよ、これはすでに要望がありました。
もちろん利用可能です。これはすでに要望されていることです。
Vitaly どんな要求も正当化される必要があるんだ。このような機能の必要性について、十分な論証ができたと思います。あとは、その会社のプログラマーの仕事量と、主張がどう理解され受け入れられるかによります。そうであってほしい。
カレンダーから得られる情報:(ソフトウェアが使用する値で、人間にはほとんど情報がないものはここに記載しません。)
- 国名
- 各国の通貨
- 種目
イベント(集会、演説会など) |
インジケーター |
ホリデー |
- イベントの属するセクター
市場、証券取引所 |
国内総生産(GDP) |
労働市場 |
価格 |
お金 |
貿易 |
政府 |
事業内容 |
消費量 |
ハウジング |
税金 |
ホリデー |
- 端末の言語でのイベントのテキスト名(端末の現在のエンコーディングで)
- 開催日時
- 開催報告期間
- パラメーターの現在値
- 前回のパラメータ値
- 修正前指標値
- 予想値
- 為替への影響の可能性
影響なし |
ポジティブな影響 |
ネガティブな影響 |
残念ながら、ニュースリリース前にポジションを持つことを禁止すること以外、他の解決策は見当たりません。その中でどれが使えるのか、どう反応するのか、見極めたい。
このように、強調された価値観は、ニュースへの反応を決める上で非常に重要であると理解していますが、どのように理解しているかはわかりません。議論を呼びかける。
カレンダーから得られる情報:(プログラムで使用され、人間にはほとんど情報がない値はここに記載しない)
- 国名
- 各国の通貨
- 種目
イベント(集会、演説会など) |
インジケーター |
ホリデー |
- イベントの属するセクター
市場、証券取引所 |
国内総生産(GDP) |
労働市場 |
価格 |
お金 |
貿易 |
政府 |
事業内容 |
消費量 |
ハウジング |
税金 |
ホリデー |
- 端末の言語でのイベントのテキスト名(端末の現在のエンコーディングで)
- 開催日時
- 開催報告期間
- パラメーターの現在値
- 前回のパラメータ値
- 修正前指標値
- 指標予測値
- 為替への影響の可能性
影響なし |
ポジティブな影響 |
ネガティブな影響 |
残念ながら、ニュースリリース前にポジションを持つことを禁止すること以外、他の解決策は見当たりません。その中でどれが使えるのか、どう反応するのか、見極めたい。
このように、ニュースへの反応を決めるには、強調された価値観が非常に重要であることは理解できますが、どのようにすればよいのかがわかりません。議論を呼びかける。
ここでは、私が考案したニュース指標のバリエーションを紹介します。ニュースリリース時刻を通貨別に表示し、重要度を選択することができます。情報は、価格チャート上に縦線で表示されます。サブウィンドウでは、重要度に分類されたニュースの予測に対して、最新のデータ値を時系列に並べたヒストグラムを見ることができます。ニュースの種類(金利、失業率、消費者物価指数、GDPなど)に応じて、時系列に値をプロットすることができます。 取得したチャートは、タイムフレームを切り替えたときに価格チャートと時間・スケールが同期している必要があります。 また、実際のデータを取得するスピードも気になるところです。
ここでは、私バージョンのニュースインジケーターを紹介します。また、重要度の選択も可能です。この情報は、価格チャート上に縦線で表示されます。サブウィンドウでは、class-importantに属するニュースの最新データ値のヒストグラムを時系列に描画します。TFを切り替える際には、取得したチャートが価格チャートと時間的に同期している必要があります。実データ取得のスピードも気になるところです。
チャートで利用できる履歴の全深度に対するヒストグラムのことでしょうか。
しかし、リアルタイムに応用するための情報は得られない。それとも、私が完全に誤解しているのでしょうか?さて、予想値と現在値が得られて、ヒストグラムを設定して、それで?手動でしか判断できない?
カレンダーのデータ更新のスピードは確認していませんし、レディデータの受信のスピードも測るべきですが、かなり高速なのでそのような欲求はありません。

- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
MQL5の経済カレンダーの 仕組みを理解したいのですが、何かなかなか動きません。昨日から今日の初めにかけてほとんどを費やしましたが、CalendarValueHistoryがすべてのイベントを返さない理由がまだ分かっていません。それとも、私が少し混乱させているのでしょうか、これらの出来事を...。
昨日はカレンダーに書いてある通りxx:45に4つのイベントを取得していました。イベント時間を "xx "と書いているのは、受信した時間が表と違うからです。しかし、少なくとも、指定された時刻とデータを取得した端末やサーバーの時刻が異なるためであることは理解できるだろう。でも、今は45分のイベントが3つしかなくて、なぜなのか理解できません。
開発者への質問:配列の最初の日付 2019.07.25 00:00 と次の行が昇順でソートされているのはなぜですか?結果のリストをご覧ください。