Nachschlagewerk MQL5WirtschaftskalenderCalendarValueHistoryByEvent 

CalendarValueHistoryByEvent

Abrufen des Arrays der Werte für alle Ereignisse in einem bestimmten Zeitraum mit einem Ereignis-ID.

bool  CalendarValueHistoryByEvent(
   ulong              event_id,          // Ereignis-ID
   MqlCalendarValue&  values[],          // Array der Wertbeschreibungen
   datetime           datetime_from,     // Anfangszeitpunkt des Zeitraums
   datetime           datetime_to=0      // Endzeitpunkt des Zeitraums
   );

Parameter

event_id

[in]  Ereignis-ID.

values[]

[out]   Variable vom Typ MqlCalendarValue für die Übernahme der Ereigniswerte.

datetime_from

[in]  Anfangszeitpunkt des Zeitraums der Ereignisse für die angegebene ID, während datetime_from < datetime_to.

datetime_to=0

[in]  Endzeitpunkt des Zeitraums der Ereignisse für die angegebene ID. Wenn datetime_to nicht (oder auf 0) gesetzt wurde, werden alle Ereignisse ab dem angegebenen Zeitpunkt datetime_from aus der Kalenderdatenbank (inklusive der zukünftigen) zurückgegeben.

Rückgabewert

Liefert bei Erfolg true, ansonsten false. Um Informationen über einen Fehler zu erhalten, rufen Sie die Funktion GetLastError() auf. Mögliche Fehler:

  • 4001 - ERR_INTERNAL_ERROR  (allgemeiner Laufzeitfehler),
  • 4004 – ERR_NOT_ENOUGH_MEMORY (nicht genügend Speicherplatz für die Ausführung der Anforderung),
  • 5401 - ERR_CALENDAR_TIMEOUT (Zeitlimit für Anfragen überschritten),
  • 5400 - ERR_CALENDAR_MORE_DATA (Array ist zu klein, um die Beschreibungen aller Werte zu übernehmen, es wurden nur diejenigen übernommen, die eingetragen werden konnten).

Wenn ein Ereigniswert keines der unten angeführten Felder aufweist

struct MqlCalendarValue
  {
   ...
   long              actual_value;              // aktueller Ereigniswert
   long              prev_value;                // vorheriger Ereigniswert
   long              revised_prev_value;        // revidierter, vorheriger Ereigniswert
   long              forecast_value;            // prognostizierter Ereigniswert
   ...
  };

dann wird im fehlenden Feld der Wert von INT64_MIN (-9223372036854775808) zurückgegeben. Siehe auch Feldwert revised_prev_value im Beispiel unten.

Beispiel:

//+------------------------------------------------------------------+
//| Skript Programm Start Funktion                                   |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- Länder-Code der EU (ISO 3166-1 Alpha-2)
   string EU_code="EU";
//--- Abrufen der Ereignisse der EU
   MqlCalendarEvent events[];
   int events_count=CalendarEventByCountry(EU_code,events);
//--- Anzeige der Ereignisse der EU im Journal
   if(events_count>0)
     {
      PrintFormat("EU Ereignisse: %d",events_count);
      //--- Verkleinern der Ereignisliste, 10 Ereignisse reichen für die Analyse aus
      ArrayResize(events,10);
      ArrayPrint(events);
     }
//--- Anzeige, dass das Ereignis "ECB Interest Rate Decision" die ID event_id=999010007 hat
   ulong event_id=events[6].id;        // die Ereignis-ID kann sich im Kalender ändern, sie sollte also überprüft werden
   string event_name=events[6].name;   // Name des Ereignisses im Kalender
   PrintFormat("Abrufen der Werte für event_name=%s event_id=%d",event_name,event_id);
//--- Abrufen aller Werte des Ereignisses "ECB Interest Rate Decision"
   MqlCalendarValue values[];
//--- Festlegen der Zeitgrenzen des Intervalls für die Ereignisse
   datetime date_from=0;           // Abrufen aller Ereignisse ab dem ersten in der verfügbaren Kalenderhistorie
   datetime date_to=D'01.01.2016'; // Übernehmen nur der Ereignisse, die nicht älter sind als 2016
   if(CalendarValueHistoryByEvent(event_id,values,date_from,date_to))
     {
      PrintFormat("Erhaltene Werte für %s: %d",
                  event_name,ArraySize(values));
      //--- Verkleinern der Werteliste, 10 Werte reichen für die Analyse aus
      ArrayResize(values,10);
      ArrayPrint(values);
     }
   else
     {
      PrintFormat("Fehler! Fehler beim Abrufen von event_id=%d",event_id);
      PrintFormat("Fehlernummer: %d",GetLastError());
     }
  }
//---
/*
  Ergebnis:
  EU events: 56
            [id] [type] [sector] [frequency] [time_mode] [country_id] [unit] [importance] [multiplier] [digits]                                        [source_url]                                 [event_code]                                    [name] [reserv
   [0] 999010001      0        5           0           0          999      0            2            0        0 "https://www.ecb.europa.eu/home/html/index.en.html" "ecb-non-monetary-policy-meeting"            "ECB Non-monetary Policy Meeting"                
   [1] 999010002      0        5           0           0          999      0            2            0        0 "https://www.ecb.europa.eu/home/html/index.en.html" "ecb-monetary-policy-meeting-accounts"       "ECB Monetary Policy Meeting Accounts"           
   [2] 999010003      0        5           0           0          999      0            3            0        0 "https://www.ecb.europa.eu/home/html/index.en.html" "ecb-monetary-policy-press-conference"       "ECB Monetary Policy Press Conference"           
   [3] 999010004      0        5           0           0          999      0            3            0        0 "https://www.ecb.europa.eu/home/html/index.en.html" "ecb-president-draghi-speech"                "ECB President Draghi Speech"                    
   [4] 999010005      0        5           0           0          999      0            2            0        0 "https://www.ecb.europa.eu/home/html/index.en.html" "ecb-vice-president-vitor-constancio-speech" "ECB Vice President Constancio Speech"           
   [5] 999010006      1        5           0           0          999      1            3            0        2 "https://www.ecb.europa.eu/home/html/index.en.html" "ecb-deposit-rate-decision"                  "ECB Deposit Facility Rate Decision"             
   [6] 999010007      1        5           0           0          999      1            3            0        2 "https://www.ecb.europa.eu/home/html/index.en.html" "ecb-interest-rate-decision"                 "ECB Interest Rate Decision"                     
   [7] 999010008      0        5           0           0          999      0            2            0        0 "https://www.ecb.europa.eu/home/html/index.en.html" "ecb-economic-bulletin"                      "ECB Economic Bulletin"                          
   [8] 999010009      1        5           0           0          999      2            2            3        3 "https://www.ecb.europa.eu/home/html/index.en.html" "targeted-ltro"                              "ECB Targeted LTRO"                              
   [9] 999010010      0        5           0           0          999      0            2            0        0 "https://www.ecb.europa.eu/home/html/index.en.html" "ecb-executive-board-member-praet-speech"    "ECB Executive Board Member Praet Speech"        
  Abrufen der Werte für event_name=ECB Interest Rate Decision, event_id=999010007
  Erhaltene Ereigniswerte für ECB Interest Rate Decision: 102
       [id] [event_id]              [time]            [period] [revision] [actual_value] [prev_value] [revised_prev_value]     [forecast_value] [impact_type] [reserved]
   [0] 2776  999010007 2007.03.08 11:45:00 1970.01.01 00:00:00          0        3750000      4250000 -9223372036854775808 -9223372036854775808             0          0
   [1] 2777  999010007 2007.05.10 11:45:00 1970.01.01 00:00:00          0        3750000      3750000 -9223372036854775808 -9223372036854775808             0          0
   [2] 2778  999010007 2007.06.06 11:45:00 1970.01.01 00:00:00          0        4000000      3750000 -9223372036854775808 -9223372036854775808             0          0
   [3] 2779  999010007 2007.07.05 11:45:00 1970.01.01 00:00:00          0        4000000      4000000 -9223372036854775808 -9223372036854775808             0          0
   [4] 2780  999010007 2007.08.02 11:45:00 1970.01.01 00:00:00          0        4000000      4000000 -9223372036854775808 -9223372036854775808             0          0
   [5] 2781  999010007 2007.09.06 11:45:00 1970.01.01 00:00:00          0        4000000      4000000 -9223372036854775808 -9223372036854775808             0          0
   [6] 2782  999010007 2007.10.04 11:45:00 1970.01.01 00:00:00          0        4000000      4000000 -9223372036854775808 -9223372036854775808             0          0
   [7] 2783  999010007 2007.11.08 12:45:00 1970.01.01 00:00:00          0        4000000      4000000 -9223372036854775808 -9223372036854775808             0          0
   [8] 2784  999010007 2007.12.06 12:45:00 1970.01.01 00:00:00          0        4000000      4000000 -9223372036854775808 -9223372036854775808             0          0
   [9] 2785  999010007 2008.01.10 12:45:00 1970.01.01 00:00:00          0        4000000      4000000 -9223372036854775808 -9223372036854775808             0          0
*/

 

Siehe auch

CalendarCountries, CalendarEventByCountry, CalendarValueHistory, CalendarEventById, CalendarValueById