Bibliothèque: Calendrier - page 7

 

Merci fxsaber,

Le script est excellent. Je suis nouveau sur MT5, et j'utilise votre script de calendrier. Pour les données historiques, comment puis-je ajouter la période à laquelle les données économiques appartiennent ? (par exemple, Jan pour les données de publication appartient à Janvier) ?


Merci et meilleures salutations,

Edwin

 
eapricorn période à laquelle appartiennent les données économiques ? (par exemple, Jan pour les données de publication appartient à Janvier) ?
#include <fxsaber\Calendar\Calendar.mqh> // https://www.mql5.com/fr/code/32430

void OnStart()
{
  CALENDAR Calendar;
  
  Calendar.Set(NULL, CALENDAR_IMPORTANCE_HIGH, D'2023.01.01', D'2023.02.01');
  
  Print(Calendar.ToString());
}
 
fxsaber # :

Bonjour fxsaber,


Merci pour votre message. Je suis désolé d'avoir mal interprété ma question. En fait, je me réfère à la "fenêtre calendrier" dans MT5 qui a normalement le "Jan" dans la colonne période, ce qui indique que les données économiques publiées aujourd'hui "2 Feb 2023" se réfèrent en fait aux données économiques de janvier (comme le montre l'image ci-jointe). Mais dans le script, je vois que nous n'avons que la date de publication des données, alors que la "Période" n'est pas spécifiée. (voir l'image ci-jointe).

J'ai essayé de rechercher la valeur MqlCalendarValue, et d'utiliser la valeur Value.period pour la date "Period", mais cela donne une valeur très étrange, à savoir 1970.01.01. (voir l'image ci-jointe).

J'espère sincèrement savoir si la période pourrait être disponible, et comment l'ajouter dans votre script ? Je vous remercie.

Dossiers :
Calendar.jpg  298 kb
MT5_calendar.jpg  414 kb
MetaEditor.jpg  465 kb
 
eapricorn #:

En fait, je me réfère à la "fenêtre calendrier" dans MT5 qui a normalement le "Jan" dans la colonne période qui indique que les données économiques publiées aujourd'hui "2 Feb 2023" se réfèrent en fait aux données économiques de janvier (comme le montre l'image ci-jointe).

#include <fxsaber\Calendar\Calendar.mqh> // https://www.mql5.com/fr/code/32430

struct CALENDAR_EVENT : public EVENT
{
  string ToString() const
  {
    struct CALENDAR_VALUE : public MqlCalendarValue
    {
      string ToString( void ) const
      {
        static const string Month[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
        static const string Quarter[] = {"Q1", "Q2", "Q3", "Q4"};
        
        MqlDateTime Time;
    
        return((this.period && ::TimeToStruct(this.period, Time) ? (this.revision ? Quarter[(Time.mon - 1) / 3]
                                                                                  : Month[Time.mon - 1] + ((Time.day != 1) ? " " + (string)Time.day : NULL))
                                                                 : NULL));
      }
    } Value;

    return(this.EVENT::ToString() + (::CalendarValueById(this.id, Value) ? Value.ToString() : NULL));
  }
};

void OnStart()
{  
  CALENDAR Calendar;
  
  Calendar.Set();
  
  const int Size = Calendar.GetAmount();
  
  for (int i = 0; i < Size; i++)
  {
    const CALENDAR_EVENT Event = Calendar[i];
    
    Print(Event.ToString());
  }
}


2023.02.02 16:15 GBP 3 BoE Governor Bailey Speech (boe-governor-bailey-speech), United Kingdom (GB) |  |  |  |  
2023.02.02 17:15 EUR 3 ECB President Lagarde Speech (ecb-president-lagarde-speech), European Union (EU) |  |  |  |  
2023.02.02 20:30 EUR 3 ECB President Lagarde Speech (ecb-president-lagarde-speech), European Union (EU) |  |  |  |  
2023.02.03 15:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) |  | 16 K | 223 K |  Jan
2023.02.03 17:00 USD 3 ISM Non-Manufacturing PMI (ism-non-manufacturing-pmi), United States (US) |  | 53 | 49.6 |  Jan
2023.02.06 12:00 EUR 3 Retail Sales m/m (retail-sales-mm), European Union (EU) |  | 0.3% | 0.8% |  Dec
2023.02.06 17:00 CAD 3 Ivey PMI (ivey-pmi), Canada (CA) |  | 55.2 | 33.4 |  Jan
2023.02.07 05:30 AUD 3 RBA Interest Rate Decision (rba-interest-rate-decision), Australia (AU) |  |  | 3.1% |  
2023.02.07 19:30 CAD 3 BoC Governor Macklem Speech (boc-governor-macklem-speech), Canada (CA) |  |  |  |  
2023.02.08 06:30 INR 3 RBI Interest Rate Decision (rbi-interest-rate-decision), India (IN) |  |  | 6.25% |  
2023.02.08 17:30 USD 3 EIA Crude Oil Stocks Change (eia-crude-oil-stocks-change), United States (US) |  | -0.012 M | 4.140 M |  Feb 3
2023.02.09 AllDay EUR 3 EU Leaders Summit (eu-leaders-summit), European Union (EU) |  |  |  |  
2023.02.09 10:30 SEK 3 Riksbank Interest Rate Decision (riksbank-interest-rate-decision), Sweden (SE) |  |  | 2.5% |  
 

Parce que la valeur de l'actualité n'est pas générée instantanément ? Votre exemple utilise la méthode (Event.Actual!= LONG_MIN) && (Event.Forecast!= LONG_MIN), mais les valeurs ne sont pas acceptées

Que dois-je faire pour que, dans un test réel, cette valeur exacte soit acceptée et que la logique de votre exemple soit exécutée ?

Merci beaucoup.

 
AdrianR007 LONG_MIN) && (Event.Forecast!= LONG_MIN), mais les valeurs ne sont pas acceptées.

Que dois-je faire pour que cette valeur soit acceptée dans un test réel et que la logique de votre exemple soit exécutée ?

Je ne comprends pas le contexte de la conversation.

 
La valeur actuelle de la nouvelle n'est pas mise à jour, c'est pourquoi le code (Event.Actual!= LONG_MIN) && (Event.Forecast!= LONG_MIN) ne fonctionne pas. Existe-t-il un autre moyen de lire l'événement à la minute où il se produit ?
 
AdrianR007 LONG_MIN) && (Event.Forecast!= LONG_MIN) ne fonctionne pas. Existe-t-il un autre moyen de lire l'événement à la minute où il se produit ?

Vous êtes trop concis pour que je comprenne clairement ce que vous voulez dire. Fournissez un code concis que vous pouvez exécuter pour voir le problème dont vous voulez parler.

 
fxsaber #:

Vous êtes trop concis pour que l'on puisse comprendre sans ambiguïté ce que vous voulez dire. Fournissez un code concis que vous pouvez exécuter pour voir le problème dont vous voulez parler.

J'utilise le code de votre exemple mais la valeur actuelle n'est pas mise à jour lorsque l'événement se produit. Avez-vous des suggestions à ce sujet ?
Merci
Dossiers :
Capture.PNG  124 kb
 
AdrianR007 #:
J'utilise le code de votre exemple mais la valeur actuelle n'est pas mise à jour lorsque l'événement se produit. Avez-vous des suggestions à ce sujet ?
Merci

Il ne s'agit pas d'une bibliothèque à rafraîchissement automatique, il faut utiliser l'identifiant du calendrier pour obtenir des données fraîches à partir de mql5.