Uzman Danışmanlar: Yatırımcılar için MQL5 Programlama - Kitaptan kaynak kodları. Bölüm 7 - sayfa 5

 
thelux9 #:

Bu tam da ihtiyacım olan şeydi.

Lütfen en son güncellemeyi aldığınızdan emin olun, çünkü bu başlıkta yayınlanan en son güncellemeyi alıntılamadınız.

 
Lütfen düzeltin.
//+------------------------------------------------------------------+
//| Opt dosyasını okumak ve CSV'lere aktarmak için ana sınıf |
//+------------------------------------------------------------------+
class OptReader
{
   TesterOptCacheHeader header;
   TestCacheInputExtended inputs[];
   uchar bufferOfInputs[];
   int shapshot[];
   AutoPtr<RecordBase> records;
   
   bool read(const int handle)
   {
      SAFE(FileReadStruct(handle, header));
      if(header.parameters_total)
      {
         TestCacheInput temp[];
         SAFE(FileReadArray(handle, temp, 0, header.parameters_total));
         const int n = ArrayResize(inputs, header.parameters_total);
         for(int i = 0; i < n; ++i)
         {
            inputs[i] = temp[i]; // cannot convert parameter 'TestCacheInput' to 'const TestCacheInputExtended&'
            inputs[i].extend();
         }
      }


//+------------------------------------------------------------------+
//| Dizgeleştirilmiş alanlara sahip girdi yapısı |
//+------------------------------------------------------------------+
struct TestCacheInputExtended: public TestCacheInput
{
   using TestCacheInput::operator=;
 
fxsaber #:
Lütfen düzeltin.


Teşekkür ederim. Biraz farklı bir şekilde düzelttim.

struct TestCacheInputExtended: public TestCacheInput
{
   ...   
   void operator=(const TestCacheInput &other)
   {
      TestCacheInput::operator=(other);
      extend();
   }
};

Bu daha kullanışlı ve mantıklı, çünkü extend() işlevinin açıkça çağrılması gerekmiyor.

Not: ekteki dosya başka faydalı düzenlemeler de içeriyor.

Dosyalar:
OptReader.mqh  24 kb
 
Stanislav Korotky #:

Teşekkür ederim. Biraz farklı şekilde düzelttim.

Bu daha kullanışlı ve mantıklıdır, çünkü extend() işlevinin açıkça çağrılması gerekmez.

Not: Ekteki dosya başka faydalı düzenlemeler de içermektedir.

Teşekkürler, şimdi daha da pratik oldu.
 

Başka bir konudan iletildi:

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

CalendarRecordById.mq5 - Hatalar

Ryan L Johnson, 2025.12.19 17:44

@MetaQuotes Destek, MQL5 Kitap içeriğinde yayınlanan yukarıda referans verilen takvim göstergesi kullanımdan kaldırılmış kod içeriyor gibi görünüyor.

Dosyaya şu adreste referans verilmiştir: Olay kayıtlarını kimliğe göre okuma - Gelişmiş dil araçları - Yatırımcılar için MQL5 Programlama.

Dosyanın kendisi şu adrestedir: https: //www.mql5.com/en/code/download/45596/CalendarRecordById.mq5.

Elbette, sorunları yeniden oluşturmak için dahil edilen kütüphane dosyalarını indirmeniz gerekecektir.

hatalar

Şahsen, kodumda ihtiyacım olanı elde etmek için geçici bir çözüm kullandım. Buradaki amacım dokümantasyonun güncel tutulmasını sağlamaktır.


 
Ryan L Johnson #:

Başka bir konudan iletildi:

Elbette, MQL5 sürekli değişiyor ve ne yazık ki MQ bunu genellikle geri uyumluluğu bozacak şekilde yapıyor. Bunun platformu geliştirmek için uygun bir yol olduğunu düşünmüyorum, ama yine de - yapabileceğimiz tek şey, yeni sözdizimine göre sorunları yamalarla düzeltmektir. Örneğin, bu durumda sadece tek satırı ekleyin:

struct MqlCalendarRecord: public MqlCalendarValue
{
   using MqlCalendarValue::operator=;
   ...
};
MQL5 sözdizimindeki değişikliklerle ilgili resmi haberleri takip etmeniz yeterlidir.