Kütüphaneler: Takvim - sayfa 7

 

Teşekkürler fxsaber,

Komut dosyası harika. MT5'te yeniyim ve takvim komut dosyanızı kullanıyorum. Geçmiş veriler için, ekonomik verilerin ait olduğu dönemi nasıl ekleyebilirim? (örneğin, yayın verileri için Ocak ayı Ocak ayına aittir) ?


Teşekkürler ve saygılarımla,

Edwin

 
eapricorn dönemi nasıl ekleyebilirim? (örneğin, Ocak ayına ait yayın verileri için Ocak ayı) ?
#include <fxsaber\Calendar\Calendar.mqh> // https://www.mql5.com/tr/code/32430

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

Merhaba fxsaber,


Mesajınız için teşekkür ederim. Sorumu yanlış bir şekilde yorumlamış olabileceğim için özür dilerim. Aslında MT5'te normalde dönem sütununda 'Ocak' bulunan ve bugün '2 Şubat 2023' olarak yayınlanan ekonomik verilerin aslında Ocak ekonomik verilerine atıfta bulunduğunu gösteren 'takvim penceresine' atıfta bulunuyorum (ekteki resim gibi). Ancak komut dosyasından, "Dönem" belirtilmezken yalnızca veri yayınlama tarihine sahip olduğumuzu görüyorum. (ekteki resimdeki gibi).

MqlCalendarValue'yu aramayı ve "Period" tarihi için Value.period'u kullanmayı denedim , ancak 1970.01.01 gibi çok garip bir değer veriyor (ekteki gibi).

Sadece içtenlikle periyodun mevcut olup olmadığını ve bunu kodunuza nasıl ekleyeceğinizi bilmek ister misiniz? Teşekkür ederim.

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

Aslında MT5'te normalde dönem sütununda 'Ocak' bulunan ve bugün yayınlanan ekonomik verileri gösteren '2 Şubat 2023' aslında Ocak ekonomik verilerine atıfta bulunan 'takvim penceresine' atıfta bulunuyorum (ekli resimdeki gibi).

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

Güncel haber değeri anlık olarak oluşturulmadığı için mi? Örneğiniz (Event.Actual!= LONG_MIN) && (Event.Forecast!= LONG_MIN) yöntemini kullanıyor, ancak değerler kabul edilmiyor

Gerçek bir testte bu tam değeri kabul etmesi ve örneğinizin mantığının yürütülmesi için ne yapmam gerekiyor?

Gracias

 
AdrianR007 LONG_MIN) && (Event.Forecast!= LONG_MIN) yöntemini kullanıyor, ancak değerler kabul edilmiyor

Gerçek bir testte bu değeri kabul etmesi ve örneğinizin mantığının yürütülmesi için ne yapmalıyım?

Konuşmanın bağlamını anlamıyorum.

 
Haberin mevcut değeri güncellenmiyor, bu nedenle (Event.Actual!= LONG_MIN) && (Event.Forecast!= LONG_MIN) kodu çalışmıyor. Olayı gerçekleştiği anda okumanın başka bir yolu var mı?
 
AdrianR007 LONG_MIN) && (Event.Forecast!= LONG_MIN) kodu çalışmıyor. Olayı gerçekleştiği anda okumanın başka bir yolu var mı?

Ne demek istediğinizi açıkça anlamak için çok özlü davranıyorsunuz. Çalıştırabileceğiniz ve bahsetmek istediğiniz sorunu görebileceğiniz kısa bir kod sağlayın.

 
fxsaber #:

Ne demek istediğinizi net bir şekilde anlamak için çok özlü konuşuyorsunuz. Çalıştırabileceğiniz ve bahsetmek istediğiniz sorunu görebileceğiniz özlü bir kod sağlayın.

Örneğinizdeki kodu kullanıyorum ancak olay gerçekleştiğinde mevcut değer güncellenmiyor. Bu konuda bir öneriniz var mı?
Teşekkürler
Dosyalar:
Capture.PNG  124 kb
 
AdrianR007 #:
Örneğinizdeki kodu kullanıyorum ancak olay gerçekleştiğinde mevcut değer güncellenmiyor. Bu konuda bir öneriniz var mı?
Teşekkürler

kendi kendini yenileyen bir kütüphane değildir, mql5'ten taze veri elde etmek için takvimden id kullanın.