CalendarEventById

Retourne la description d'un évènement par son identifiant.

bool  CalendarEventById(
   ulong                event_id,     // identifiant de l'évènement
   MqlCalendarEvent&    event         // variable pour retourner la description d'un évènement
   );

Paramètres

event_id

[in]  Identifiant de l'évènement.

event

[out]  Variable de type MqlCalendarEvent pour retourner la description d'un évènement.

Valeur de Retour

Retourne true en cas de succès, sinon retourne false. Pour obtenir des informations sur une erreur, appelez la fonction GetLastError(). Erreurs possibles :

  • 4001 — ERR_INTERNAL_ERROR  (erreur générale d'exécution),
  • 5402 — ERR_CALENDAR_NO_DATA (pays non trouvé),
  • 5401 — ERR_CALENDAR_TIMEOUT (limite de temps de traitement de la requête atteinte).

Note

Toutes les fonctions permettant de travailler avec le calendrier économique utilisent l’heure du serveur de trading(TimeTradeServer). Cela signifie que l'heure dans la structure MqlCalendarValue et l'heure donnée dans les fonctions CalendarValueHistoryByEvent/CalendarValueHistory sont définies dans le fuseau horaire du serveur de trading, et non pas selon l'heure locale de l'utilisateur.

Exemple :

//+------------------------------------------------------------------+
//| Fonction de lancement du programme                               |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- code du pays pour Germany (ISO 3166-1 Alpha-2)
   string germany_code="DE";
//--- récupère les évènements allemands
   MqlCalendarEvent events[];
   int events_count=CalendarEventByCountry(germany_code,events);
//--- affiche les évènements allemands dans le Journal
   if(events_count>0)
     {
      PrintFormat("Evènements allemands : %d",events_count);
      ArrayPrint(events);
     }
   else
     {
      PrintFormat("Echec de l'obtention des évènements pour le code de pays %s, erreur %d",
                  germany_code,GetLastError());
      //--- fin prématurée du script
      return;
     }
//--- retourne la description du dernier évènements du tableau events[]
   MqlCalendarEvent event;
   ulong event_id=events[events_count-1].id;
   if(CalendarEventById(event_id,event))
     {
      MqlCalendarCountry country; 
      CalendarCountryById(event.country_id,country);
      PrintFormat("Description de l'évènement avec event_id=%d reçu",event_id);
      PrintFormat("Pays : %s (code du pays = %d)",country.name,event.country_id);
      PrintFormat("Nom de l'évènement : %s",event.name);
      PrintFormat("Code de l'évènement : %s",event.event_code);
      PrintFormat("Importance de l'évènement : %s",EnumToString((ENUM_CALENDAR_EVENT_IMPORTANCE)event.importance));
      PrintFormat("Type de l'évènement : %s",EnumToString((ENUM_CALENDAR_EVENT_TYPE)event.type));
      PrintFormat("Secteur de l'évènement : %s",EnumToString((ENUM_CALENDAR_EVENT_SECTOR)event.sector));
      PrintFormat("Fréquence de l'évènement : %s",EnumToString((ENUM_CALENDAR_EVENT_FREQUENCY)event.frequency));
      PrintFormat("Mode de publication de l'évènement : %s",EnumToString((ENUM_CALENDAR_EVENT_TIMEMODE)event.time_mode));
      PrintFormat("Unité de mesure de l'évènement : %s",EnumToString((ENUM_CALENDAR_EVENT_UNIT)event.unit));
      PrintFormat("Nombre de décimales : %d",event.digits);
      PrintFormat("Multiplicateur de l'évènement : %s",EnumToString((ENUM_CALENDAR_EVENT_MULTIPLIER)event.multiplier));
      PrintFormat("URL source : %s",event.source_url);
     }
   else
      PrintFormat("Echec de l'obtention de la description de l'évènement pour event_d=%s, erreur %d",
                  event_id,GetLastError());
  }
/*
  Résultat :
  Evènement allemands : 50
             [id] [type] [secteur][fréquence] [time_mode] [country_id] [unité][importance] [multiplicateur] [chiffres]                              [url_source]                       [code_evenement]                         [nom] [réservé]
   [ 0] 276010001      1        6           2           0          276      1            1            0        1 "https://www.destatis.de/EN/Homepage.html"  "exports-mm"                       "Exports m/m"                               0
   [ 1] 276010002      1        6           2           0          276      1            1            0        1 "https://www.destatis.de/EN/Homepage.html"  "imports-mm"                       "Imports m/m"                               0
   [ 2] 276010003      1        4           2           0          276      1            1            0        1 "https://www.destatis.de/EN/Homepage.html"  "import-price-index-mm"            "Import Price Index m/m"                    0
   [ 3] 276010004      1        4           2           0          276      1            1            0        1 "https://www.destatis.de/EN/Homepage.html"  "import-price-index-yy"            "Import Price Index y/y"                    0
   ....
   [47] 276500001      1        8           2           0          276      0            2            0        1 "https://www.markiteconomics.com"           "markit-manufacturing-pmi"         "Markit Manufacturing PMI"                  0
   [48] 276500002      1        8           2           0          276      0            2            0        1 "https://www.markiteconomics.com"           "markit-services-pmi"              "Markit Services PMI"                       0
   [49] 276500003      1        8           2           0          276      0            2            0        1 "https://www.markiteconomics.com"           "markit-composite-pmi"             "Markit Composite PMI"                      0
  Description de l'évènement avec event_id=276500003 reçu
  Pays : Allemagne (code du pays = 276)
  Nom de l'évènement : Markit Composite PMI
  Code de l'évènement : markit-composite-pmi
   Importance de l'évènement : CALENDAR_IMPORTANCE_MODERATE
   Type de l'évènement : CALENDAR_TYPE_INDICATOR
   Secteur de l'évènement : CALENDAR_SECTOR_BUSINESS
   Fréquence de l'évènement : CALENDAR_FREQUENCY_MONTH
   Mode de publication de l'évènement : CALENDAR_TIMEMODE_DATETIME
   Unité de mesure de l'évènement : CALENDAR_UNIT_NONE
  Nombre de décimales : 1
   Multiplicateur de la valeur : CALENDAR_MULTIPLIER_NONE
   URL source : https://www.markiteconomics.com
*/

Voir aussi

CalendarEventByCountry, CalendarEventByCurrency, CalendarValueById