Librerías: Calendario - página 7

 

Gracias fxsaber,

El script es genial. Soy nuevo en MT5, y el uso de su script de calendario. Para los datos históricos, ¿cómo podría añadir el período al que pertenecen los datos económicos? (por ejemplo, enero para los datos de liberación pertenece a enero) ?


Gracias y saludos,

Edwin

 
eapricorn periodo al que pertenecen los datos económicos? (por ejemplo, enero para los datos de publicación pertenece a enero) ?
#include <fxsaber\Calendar\Calendar.mqh> // https://www.mql5.com/es/code/32430

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

Hola fxsaber


Gracias por tu mensaje. Siento haber interpretado mal mi pregunta. En realidad me estoy refiriendo a la 'ventana de calendario' en MT5 que normalmente tiene el 'Ene' en la columna de período que indica que los datos económicos que se publican hoy '2 Feb 2023' se refiere en realidad a los datos económicos de enero (como la imagen adjunta). Pero desde el script, veo que sólo tenemos la fecha de publicación de datos, mientras que el "Período" no se especifica. (como en la imagen adjunta).

He intentado buscar el MqlCalendarValue, y utilizando el Value.period para la fecha del "Periodo", pero da un valor muy extraño, siendo 1970.01.01. (como adjunto).

Sinceramente, espero saber si el período podría estar disponible, y cómo añadir que en su secuencia de comandos? Gracias.

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

En realidad me estoy refiriendo a la 'ventana de calendario' en MT5 que normalmente tiene el 'Ene' en la columna de periodo que indica que los datos económicos que se publican hoy '2 Feb 2023' se refieren en realidad a los datos económicos de enero (como imagen adjunta).

#include <fxsaber\Calendar\Calendar.mqh> // https://www.mql5.com/es/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% |  
 

¿Porque el valor actual de las noticias no se genera instantáneamente? Tu ejemplo utiliza el método (Evento.Actual!= LONG_MIN) && (Evento.Previsión!= LONG_MIN), pero no se aceptan los valores

¿Qué tengo que hacer para que en un test real acepte ese valor exacto y se ejecute la lógica de tu ejemplo?

Gracias

 
AdrianR007 LONG_MIN) && (Evento.Previsión!= LONG_MIN), pero los valores no se aceptan

¿Qué debo hacer para que acepte este valor en una prueba real y se ejecute la lógica de tu ejemplo?

No entiendo el contexto de la conversación.

 
El valor actual de la noticia no se está actualizando, por lo que el código (Evento.Actual!= LONG_MIN) && (Evento.Previsión!= LONG_MIN) no funciona. ¿Hay alguna otra forma de leer el evento en el momento en que se produce?
 
AdrianR007 LONG_MIN) && (Evento.Previsión!= LONG_MIN) no funciona. ¿Hay alguna otra forma de leer el evento en el momento en que se produce?

Estás siendo demasiado conciso para entender claramente lo que quieres decir. Proporciona código conciso que se pueda ejecutar y ver el problema del que quieres hablar.

 
fxsaber #:

Estás siendo demasiado conciso para entender sin ambigüedades lo que quieres decir. Proporcione código conciso que se pueda ejecutar y ver el problema del que quiere hablar.

Estoy usando el código de tu ejemplo pero el valor actual no se actualiza cuando ocurre el evento. ¿Alguna sugerencia al respecto?
Gracias
Archivos adjuntos:
Capture.PNG  124 kb
 
AdrianR007 #:
Estoy utilizando el código de tu ejemplo pero no se actualiza el valor actual cuando se produce el evento. ¿Alguna sugerencia al respecto?
Gracias

no es auto refrescante biblioteca, uso id, de calendario, para obtener datos frescos de mql5.