- CalendarCountryById
- CalendarEventById
- CalendarValueById
- CalendarCountries
- CalendarEventByCountry
- CalendarEventByCurrency
- CalendarValueHistoryByEvent
- CalendarValueHistory
- CalendarValueLastByEvent
- CalendarValueLast
CalendarValueHistory
指定された期間のすべてのイベントの値の配列を取得します(国や通貨で並び替え可能)。
bool CalendarValueHistory(
|
パラメータ
values[]
[out] イベント値を受け取るためのMqlCalendarValue型の配列。カレンダーイベント処理の例を参照してください。
datetime_from
[in] 指定されたIDによって選択された、期間内のイベントの開始日(datetime_from < datetime_to)
datetime_to=0
[in] 指定されたIDによって選択された期間内のイベントの終了日。datetime_to が設定されていない場合(または0の場合)、指定されたdatetime_from以降のカレンダーデータベースのすべてのイベント値が返されます(将来のイベントを含む)。
country_code=NULL
[in] 国コード名(ISO 3166-1 alpha-2)
currency=NULL
[in] 国の通貨のコード名
戻り値
成功の場合は true、それ以外の場合は false。エラー情報を取得するためにはGetLastError()関数を呼び出します。可能なエラー:
- 4001 – ERR_INTERNAL_ERROR(一般的なランタイムエラー)
- 4004 – ERR_NOT_ENOUGH_MEMORY(メモリが操作完了に不充分)
- 5401 – ERR_CALENDAR_TIMEOUT(リクエスト制限時間の超過)
- 5400 – ERR_CALENDAR_MORE_DATA(配列サイズはすべての値の説明を受け取るには不十分で、配列に収まるものだけが受信された)
- ArrayResize()操作の実行エラー
注意事項
経済指標カレンダーを使用するためのすべての関数は、取引サーバ時間(TimeTradeServer)を使用します。つまり、MqlCalendarValue構造体の時刻と、CalendarValueHistoryByEvent/CalendarValueHistory関数は、ユーザの現地時間ではなく、取引サーバの時間帯で設定されます。
固定された長さのevents[]配列が関数に渡されて、結果全体を保存するのに十分なスペースがなかった場合、ERR_CALENDAR_MORE_DATA (5400)エラーが発生します。
datetime_to が設定されていない場合(または0の場合)、指定されたdatetime_from以降のカレンダーデータベースのすべてのイベント値が返されます(将来のイベントを含む)。
country_codeおよびcurrencyによる絞り込みについては、NULLおよび""は道同等で、絞り込みがないことを意味します。
country_codeについては、MqlCalendarCountry構造体のcodeフィールドが使用されるべきです(例: "US"、"RU"、"EU")。
currencyについては、MqlCalendarCountry構造体のcurrencyフィールドが使用されるべきです(例: USD"、"RUB"、"EUR")。
フィルタは結合によって適用されます。つまり、論理 'AND'は、両方の条件(国と通貨)が同時に満たされるイベントの値のみを選択するために使用されます。
MqlCalendarValue構造体はactual_value、forecast_value、prev_value、revised_prev_valueフィールドの値を確認/設定するメソッドを備えています。値が指定されていない場合、フィールドにはLONG_MIN (-9223372036854775808)が格納されます。
これらのフィールドに格納されている値は100万倍されることに注意してください。CalendarValueById、CalendarValueHistoryByEvent、 CalendarValueHistory、CalendarValueLastByEvent、 CalendarValueLastのいずれかの関数を使用してMqlCalendarValueで値を受け取る場合、フィールド値がLONG_MINに等しいかどうかを確認する必要があります。フィールドに値が指定されている場合、値を取得するには、値を100万で除算する必要があります。値を取得するもう1つの方法は、MqlCalendarValue構造体の関数を使用して値を確認および取得することです。
例:
//+------------------------------------------------------------------+
|
参照
CalendarCountries、CalendarEventByCountry、 CalendarValueHistoryByEvent、CalendarEventById、 CalendarValueById