Kütüphaneler: Takvim - sayfa 8

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

Bu örnek, takvimin Tester'da nasıl çalıştığını göstermek için yapılmıştır. Bu talimatla birlikte gelir.

Tüm geçmiş verileri (~60 Mb) kaydetmek için MT5-Terminal'de bir kez çalıştırın. Bundan sonra Tester'da mevcut olacaklar.

Ne yazık ki, anlaşılmaz ifadeler kullanmaya devam ediyorsunuz, "ne demek istedi?" diye varsayımda bulunmak için zamanımı alıyorsunuz.

 
fxsaber #:

Bu örnek, takvimin Tester'da nasıl çalıştığını göstermek için yapılmıştır. Aşağıdaki talimatlarla birlikte gelir.

Ne yazık ki, anlaşılmaz ifadelerde bulunmaya devam ediyorsunuz ve "bununla ne demek istedi?" diye varsayımda bulunmam için zamanımı alıyorsunuz.

Haberin oluştuğu anda, Mevcut değer beklenen değere göre güncellenmiyor, bu nedenle işlem gerçekleştirilmiyor. Bir testte değil, gerçek zamanlı bir haber öğesindeki işlemden bahsediyorum. Test modunda çok iyi çalışıyor.
 
AdrianR007 #:
Haberin oluştuğu anda, Mevcut değer beklenen değere göre güncellenmiyor, bu nedenle işlem gerçekleştirilmiyor. Bir testte değil, gerçek zamanlı bir haber öğesindeki işlemden bahsediyorum. Test modunda çok iyi çalışıyor.

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerini test etme üzerine forum.

Kütüphaneler: Takvim

BillionerClub, 2023.02.23 19:35

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


 
Enrique Dangeroux #:

Teşekkürler Enrique. Belki bunu yapmak için bir örneğiniz vardır?
 
AdrianR007 #:
Teşekkürler Enrique. Belki bunu yapmak için bir örneğiniz vardır?

Temel kodlama dersi vermek için zamanım yok. Ya belgeleri okuyun ya da forumlarda sorun.

Bir yan not olarak. Haber ticareti yapmak istiyorsanız, MQL takvimi işe yaramaz. Saniyelerden, dakikalardan hatta saatlerden gecikmeler var.

 
AdrianR007 #:
Haberin oluştuğu anda, Mevcut değer beklenen değere göre güncellenmiyor, bu nedenle işlem gerçekleştirilmiyor. Bir testte değil, gerçek zamanlı bir haber öğesindeki işlemden bahsediyorum. Test modunda çok iyi çalışıyor.

Ne çalıştırdığınızı bilmiyorum. Takvim veri güncellemeleriyle ilgili olarak aşağıdaki tartışmayı okuyun.


Kütüphane yalnızca Takvim sekmesinde bulunan verileri sağlar.

MetaTrader5 calendar updates - I'm looking to improve my news trading robot for MT5 platform calendar updates: Is it possible the same broker-by-broker
MetaTrader5 calendar updates - I'm looking to improve my news trading robot for MT5 platform calendar updates: Is it possible the same broker-by-broker
  • 2022.07.14
  • www.mql5.com
I would like to ask about mt5 platform calendar updates: is platform's calendar updated about actual values in real time. Is it possible  updating time is not the same broker-by-broker. Yes, i'm looking how to improve my news trading robot
 
fxsaber #:

Ne çalıştırdığınızı bilmiyorum. Takvim veri güncellemeleriyle ilgili olarak aşağıdaki tartışmayı okuyun.


Kütüphane yalnızca Takvim sekmesinde mevcut olan verileri sağlar.

Çok teşekkür ederim. Artık benim için her şey açık!!!....
 

MT5 takvimini anlamanın tek yolu ÖNCE/SONRA değerlerini karşılaştırmaktır.

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

void OnStart()
{
  CALENDAR Calendar;
  
  if (Calendar.Set(NULL, CALENDAR_IMPORTANCE_NONE, 0, 0)) // MT5-Terminal'den kesinlikle tüm olaylar (geçmiş + gelecek) yüklendi.
  {
    const string FileName = "Calendars\\" + AccountInfoString(ACCOUNT_SERVER) + "\\Calendar_" +
                            AccountInfoString(ACCOUNT_SERVER) + "_" + TimeToString(TimeCurrent(), TIME_DATE) + ".bin";
    
    Calendar.Save(FileName); // ABD/Avrupa senkronize edildiğinde gelecekteki karşılaştırma için kaydedilir.
  }
}

Açıkçası, kimse bunu yapmayacak.

 

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi üzerine forum

Kütüphaneler: Takvim

fxsaber, 2023.01.07 21:31.

Takvim tarihlerinde otomatik bir düzeltici yapmamız gerekiyor gibi görünüyor.

Ticaret sunucusuyla eşleşen bir Takvim düzeltici alıyor gibi görünüyor.

#property script_show_inputs

input ulong inEventID = 840030006; // EventID
input string inName = ""; // Name -> EventID (Tarım Dışı İstihdam -> 840030016)
input datetime inFrom = D'2020.01.01';
input bool inDST = true;

void OnStart()
{
  CALENDAR Calendar;
    
  if (inName == "")
  {
    Calendar.Set(inEventID);
    Calendar.FilterByTime(inFrom, TimeCurrent());
    
    Calendar.CorrectTime(); // MQL takvimi özelliklerini atlayın: https://www.mql5.com/ru/forum/444094/page14#comment_46213385
    
    if (inDST)
      Calendar.DST(); // Ticaret sunucusu Avrupa saati ile senkronize edilmişse çağırın.
  
    for (int i = Calendar.GetAmount() - 1; i >= 0; i--)
    {
      const EVENT Event = Calendar[i];    
      const datetime ChartNews = ChartNewsTime(Event.time); // https://www.mql5.com/ru/forum/357793/page5#comment_44225999
      
      if (Event.time != ChartNews)    
        Print("-" + (string)Event.EventID + ": " + TimeToString(ChartNews) + " != " + Event.ToString());
      else
        Print("+" + (string)Event.EventID + ": " + TimeToString(ChartNews) + " == " + Event.ToString());
    }
  }
  else // Olay kimliğini isme göre al.
  {
    string Currencies[2];
    
    // Geçerli karakterin para birimlerini alın.
    Currencies[0] = ::SymbolInfoString(_Symbol, SYMBOL_CURRENCY_BASE);
    Currencies[1] = ::SymbolInfoString(_Symbol, SYMBOL_CURRENCY_PROFIT);
    
    if (Calendar.Set(Currencies, CALENDAR_IMPORTANCE_MODERATE, inFrom) && Calendar.FilterByName(inName))
      for (int i = Calendar.GetAmount() - 1; i >= 0; i--)
        Print((string)Calendar[i].EventID + ": " + Calendar[i].ToString());
  }
}


Sonuç.

+840030016: 2023.04.07 15:30 == 2023.04.07 15:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 236 K | -8 K | 311 K | 326 K
+840030016: 2023.03.10 15:30 == 2023.03.10 15:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 311 K | -35 K | 517 K | 504 K
+840030016: 2023.02.03 15:30 == 2023.02.03 15:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 517 K | 16 K | 223 K | 260 K
+840030016: 2023.01.06 15:30 == 2023.01.06 15:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 223 K | 57 K | 263 K | 256 K
+840030016: 2022.12.02 15:30 == 2022.12.02 15:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 263 K | -30 K | 261 K | 284 K
+840030016: 2022.11.04 14:30 == 2022.11.04 14:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 261 K | -97 K | 263 K | 315 K
+840030016: 2022.10.07 15:30 == 2022.10.07 15:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 263 K | 33 K | 315 K | 
+840030016: 2022.09.02 15:30 == 2022.09.02 15:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 315 K | 156 K | 528 K | 526 K

Web takvimi ile eşleşiyor. Herhangi bir bariz tutarsızlık gören olursa bana bildirsin.

Şu anda takvimi geriye dönük testler için kullanmanın doğru yolu bu gibi görünüyor.

 
fxsaber #:

Görünüşe göre ticaret sunucusuyla eşleşen bir Takvim düzeltici olduğu ortaya çıktı.


Sonuç.

Web Takvimi ile eşleşiyor. Herhangi bir bariz tutarsızlık gören olursa bana haber versin.

Şimdi takvimi geriye dönük testler için kullanmak doğru gibi görünüyor.

Peki ya başka bir ülkenin saatiyse? Farklı ülkelerin farklı zamanlar için farklı tarihleri olduğunu biliyorum.