Mql4 dilinin özellikleri, incelikleri ve çalışma yöntemleri - sayfa 14

 
Geliştiricilere not.


char türünün boyutunu garanti eder. Diğer türlerin uzunlukları uygulamaya özeldir. Arama tablosu yanlıştır ve tanımsız davranışa neden olabilir.

Целые типы - Типы данных - Основы языка - Справочник MQL4
Целые типы - Типы данных - Основы языка - Справочник MQL4
  • docs.mql4.com
Целые типы представлены в языке MQL4 одиннадцатью видами. Некоторые из типов могут использоваться вместе с другими, если этого требует логика программы, но при этом необходимо иметь ввиду правила преобразования типов. В таблице приведены характеристики каждого типа. Кроме того, в...
 
Bu konuyla ilgili olmayan yorumlar " MQL4 MT4 MetaTrader 4 Yeni Başlayanlardan Sorular " bölümüne taşındı.
 

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

Hatalar, hatalar, sorular

fxsaber , 2018.12.01 11:15

Süper fren tasarımı
 string Str[];
const int handle = FileOpen (FileName, FILE_READ | FILE_ANSI | FILE_TXT );  

FileReadArray (handle, Str);

1 milyon satırlık 40 MB'lık bir dosya 18 saniyede okunur.


Aynı çıktı, ancak farklı şekilde yapıldı

   uchar Bytes[];
   const int handle = FileOpen (FileName, FILE_READ | FILE_BIN );
  
   FileReadArray (handle, Bytes);

   string Str[];
   StringSplit ( CharArrayToString (Bytes), '\n' , Str);

0,5 saniyede tamamlanır.


 

Görevlerle aşırı yüklenmiş 16Gb RAM. Sonuç olarak, Chrome donuyor, Optimizasyon çalışırken MT5 - sorun değil. Ancak daha ilginç olanı MT4'tür.

Göstergeler sürülmeye devam etti ve Uzman Danışmanlar, ArrayResize sonucunun kontrol edilmemesi nedeniyle "menzil dışı" nedeniyle durdu.

ArrayResize'ı her zaman kontrol etmek istemezsiniz, ancak işte bu kontrolün yokluğunun, örneğin bir VPS'deki bir savaş danışmanının durdurulabileceğinin bir onayı.


Ama ArrayResize daha önce büyük bir Yedekle yapılmışsa, "menzil dışı" nasıl oldu anlayamıyorum?

 
fxsaber :

Görevlerle aşırı yüklenmiş 16Gb RAM. Sonuç olarak, Chrome donuyor, Optimizasyon çalışırken MT5 - sorun değil. Ancak daha ilginç olanı MT4'tür.

Göstergeler sürülmeye devam etti ve Uzman Danışmanlar, ArrayResize sonucunun kontrol edilmemesi nedeniyle "menzil dışı" nedeniyle durdu.

ArrayResize'ı her zaman kontrol etmek istemezsiniz, ancak işte bu kontrolün yokluğunun, örneğin bir VPS'deki bir savaş danışmanının durdurulabileceğinin bir onayı.


Ama ArrayResize daha önce büyük bir Yedekle yapılmışsa, "menzil dışı" nasıl oldu anlayamıyorum?

kolay :-) çoğu dilde / sistemde öyle.

Ayrılan (alınan) sanal bellek ayrılmış ve fiziksel bellek bittiğinde belleğe erişirken boş sayfa kalmamıştı. Bir dizi işlemden sonra aralık dışı ile sonuçlanan bir işlemci istisnası ortaya çıktı.

Bu arada MT'nin hiç çökmemiş olması işçilik kalitesini doğruluyor :-)

 

Tarihte sıralama konusunda ciddi şekilde yanılmıştı . Kapanış saatine göre sıralama her zaman olmuyor maalesef.

Komut dosyasını kontrol edin

 #property strict

void OnStart ()
{
   datetime time = INT_MAX ;
  
   for ( int i = OrdersHistoryTotal () - 1 ; i >= 0 ; i--)
     if ( OrderSelect (i, SELECT_BY_POS , MODE_HISTORY ))
    {
       if ( OrderCloseTime () > time)
      {
         Print (time);
         OrderPrint ();
        
//        break;
      }
      
      time = OrderCloseTime ();
    }
}


Neden böyle bir temel kodun kendi kendini test etmek için hemen atılmadığı bir sırdır.

Nasıl oluyor da bilmece gibi, emirler zamana göre sıralanamıyor? KB'de özel bir test cihazı gönderdiğim için bu soruyu soruyorum. Ve mantıklı, çünkü sipariş tarihe geçti, o zaman bununla ilgili kayıt, daha önce olanlardan daha sonra. Bu mantığın nasıl sarsılacağı hiç belli değil.

Belki de siparişler farklı MT5 sunucularında saklanıyor ve senkronizasyon sırasında bu tür saçmalıklar ortaya çıkıyor. Umarım bu, MT4 ticaret sunucusunda değil, Terminalde bir hatadır. MT'deki işlemlerde bunun olmamasını istiyorum.

 
fxsaber :

Tarihte sıralama konusunda ciddi şekilde yanılmıştı . Kapanış saatine göre sıralama her zaman olmuyor maalesef.

Komut dosyasını kontrol edin


Neden böyle bir temel kodun kendi kendini test etmek için hemen silinmediği bir sırdır.

Bilmece gibi, nasıl oluyor da siparişler zamana göre sıralanamıyor? KB'de özel bir test cihazı gönderdiğim için bu soruyu soruyorum. Ve mantıklı, çünkü sipariş tarihe geçti, o zaman bununla ilgili kayıt, daha önce olanlardan daha sonra. Bu mantığın nasıl sarsılacağı hiç belli değil.

Belki de siparişler farklı MT5 sunucularında saklanıyor ve senkronizasyon sırasında bu tür saçmalıklar ortaya çıkıyor. Umarım bu, MT4 ticaret sunucusunda değil, Terminalde bir hatadır. MT'deki işlemlerde bunun olmamasını istiyorum.

Hesap geçmişindeki sıralamayı değiştirmeyi denediniz mi?

 
Artyom Trishkin :

Hesap geçmişindeki sıralamayı değiştirmeyi denediniz mi?

Sonucu etkilemez.

 
Artyom Trishkin :

Hesap geçmişindeki sıralamayı değiştirmeyi denediniz mi?

Evet, önemli olmamalı. Yalnızca "Hesap Geçmişi" sekmesindeki sipariş sayısını etkiler. Bu izlenmelidir.

 
fxsaber :

Sonucu etkilemez.

Pozisyon kapanış saati sunucu tarafından verilir.

Neden: