Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri - sayfa 39

 
Vasili Sokolov :
Dökümün birlik tarafından tamamen değiştirilmesinden söz edilmedi.
Evet, fırsatları kestiler.
 
Vasili Sokolov :

Bir ikili yazma / okuma yoluyla keyfi döküm ... Işığı söndürün. Devamını okumanıza gerek yok...

Daha iyi bir teklif var mı?
 
Vasili Sokolov :

ps Kodunuza baktım:

Bir ikili dosya yazma/okuma yoluyla keyfi döküm... Işığı söndürün. Devamını okumanıza gerek yok...

Birleşim yoluyla isteğe bağlı döküm var - özel kurucular ve kopya operatörleri olmayan herhangi bir basit yapı . Bu kaynakla ilgili tüm makaleler için bu döküm işe yarayacaktır.

 template < typename T>
class CASTING
{
public :
   template < typename T1>
   static const T Casting( const T1 &Value )
  {
    union CAST
    {
      T1 Value1;
       const T Value2;

      CAST( const T1 &Value)
      {
         this .Value1 = Value; // кастомный оператор может все испортить
      }
    };

     const CAST Union(Value);

     return (Union.Value2);
  }
};

#define _C(A, B) CASTING<A>::Casting(B)

void OnStart ()
{
   MqlTick Tick = { 0 };
  
  Tick = _C( MqlTick , Tick); // Tick = (MqlTick)Tick;
}

Ama kim dökümü% 100 kapatmak ister - dosyalar aracılığıyla. Bir seçim var.

 
birleştirici :
Daha iyi bir teklif var mı?
Yapılarda ve atama operatörlerinde özel kurucuların kullanılmadığı açıktır. Basit kod yazın.
 
Vasili Sokolov :
Yapılarda ve atama operatörlerinde özel kurucuların kullanılmadığı açıktır. Basit kod yazın.
O zaman yapıların const alanlarını terk etmeniz gerekir.
 

popüler bir test

 if ( ArrayResize (Array, NewSize) == NewSize)
// ....

yani aynı değil

 if ( ArrayResize (Array, NewSize) == ArraySize (Array))
// ....
 

Aslında ArrayResize() döndürür

Geri dönüş değeri

Başarı durumunda işlev, yeniden boyutlandırmadan sonra dizide bulunan tüm öğelerin sayısını döndürür; aksi halde -1 döndürür ve dizi yeniden boyutlandırılmaz.


 
Roffield :

Aslında ArrayResize() döndürür

Bir yıl önce davranış değişti. Bu hafta, Yardım'a bir açıklama yapıldı.
 
CopyTicks yalnızca göstergelerde eşzamansız

şimdi sadece göstergeler için kalıyor - bir istek ve elimizdeki verilerle geri çekilin. Ve takas kendisi için çalışır.

Uzmanlar ve komut dosyaları biraz farklıdır. Orada, gerekli verileri beklemek için birkaç girişimde bulunulur. Veriler gelirken girişimlerde bulunulur. İletişimde sorun olur olmaz hemen geri çekilin.

 

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Mayıs ayında MetaQuotes-Demo şampiyonası için katılımcıların kaydı

Vladimir Karputov , 2017.05.05 11:54

Katma. Evet, terminaldeki tüm sinyal veritabanında döngü oluşturmanız gerekir:

SinyalTemelToplam

Terminalde mevcut olan toplam sinyal sayısını verir


Bu arada, bu aramalardan önce (özellikle başka bir sunucudan geçiş yaparken veya başlangıçtan hemen sonra) terminalin "Sinyaller" sekmesine en az bir kez tıklamanızı tavsiye ederim - bu, mevcut veritabanının değiştirilmesini etkinleştirmelidir.