Hatalar, hatalar, sorular - sayfa 1279

 

CopyTicks() kullanılarak bir onay geçmişi alınırken, terminalin önceki çalışma oturumunun onayları döndürülür ve bu, işlevin açıklamasıyla çelişir:

MQL5: Добавлена функция работы с тиковой историей CopyTicks. Функция позволяет получить массив тиков, накопленных терминалом за текущую рабочую сессию. Глубина получаемых тиков ограничена последними 2 000.

Geliştiricilere soru. düzeltilecek mi? Ve bunu , terminal başlatıldığında , geçmiş birikene kadar beklememek için MQ sunucusundan (veya komisyoncudan) son N kene aktarılacak şekilde yapmak mümkün mü? Basitçe, geçmişte bazı bilinmeyen N keneler için neredeyse hiç kimsenin kene geçmişine ihtiyacı yoktur. Servis Masası #1162481

 

Gizlilik ayarlarımda "yeni ekran görüntüleri" onay kutusu kaldırıldı, yani. yayınlandıklarında, beslemede hiçbir mesaj olmamalıdır.

Bu gönderi gerçekten feed'imde yok. Ancak yeni ekran görüntülerinin yayınlanmasıyla ilgili mesaj arkadaşlarımın haber akışlarında yer alıyor .

Not: Böyle olması gerekiyorsa, bu ayar gizlilik için hiç geçerli değildir)

 
sanyooooook :

Gizlilik ayarlarımda "yeni ekran görüntüleri" onay kutusu kaldırıldı, yani. yayınlandıklarında, beslemede hiçbir mesaj olmamalıdır.

Bu gönderi gerçekten feed'imde yok. Ancak yeni ekran görüntülerinin yayınlanmasıyla ilgili mesaj arkadaşlarımın haber akışlarında yer alıyor.

Not: Böyle olması gerekiyorsa, bu ayar gizlilik için hiç geçerli değildir)

Mesaj için teşekkürler,

ekran görüntülerinizle ilgili mesajlar arkadaş akışında bulunmamalıdır. Hata yakında düzeltilecektir.

 
Dört MT5 terminali açtılar, b.1079'a güncellemeye başladılar. Normalde güncellemeyi indirdi, normalde yeniden başlatmaya gitti. Ve sadece yarısı yeniden başlatmadan çıkmayı başardı ve sonra kazara.
Nedeni bu güncellemeydi. Aşağıdaki grafikte, bir MT5 terminalini bir ticaret sistemi ile güncelleme süreci, güncelleme öncesi ve sonrası takas dosyası.

b.1085'e yükseltirken her şey aynı kaldı.

Terminal ile yapılması gereken buydu, böylece bir terminal 2 Gb için takas dosyasını mahvedecek mi?

Sistemde "ağır" gösterge yoktur. "En ağır" yükleme için yalnızca 7 mikrosaniye gerekir, her biri iki - 5, bir - 4, geri kalanı - 1 mikrosaniye veya daha az.

Karşılaştırma için, CodeBase'den JMA göstergesi makinemde 110 µs gerektiriyor, ancak sistemde kullanılmıyor.


Böylece, güncellenmiş MT5 ticaret sistemimi anında gömdü - bir terminalde bile çalışmak imkansız - ve buna göre onu gömdüm.

MT5'te bir şişede bir yüzme havuzu, bir mağaza ve tuvaletler olduğunda, bu kaçınılmaz olarak gerçekleşecekti.

İyi bir MT5'in canavarlaştırılması uzun zaman önce başladı. MT5'in önceki sürümlerinde çöp miktarı 1 Gb'a düştüğünde endişelendim ve aynı zamanda sistemi tamamen MT4 platformuna aktardım. Yanlış olmadığı ortaya çıktı.

Sistem aynı anda 8 TF'yi analiz eder, grafik bunlardan üçünü gösterir. Sistemin önde gelen ticaret sinyalleri, enstrümantal ölçümlere dayalı olarak oluşturulur.

arz/talep oranları bu nedenle objektiftir.

Aşağıda - 5 MT4 terminali aynı ticaret sistemiyle aynı anda (farklı döviz çiftleri için) açıktır ve görünüşe göre henüz bir sorun yoktur.



 
s2101 :
Dört MT5 terminali açtılar, b.1079'a güncellemeye başladılar. Normalde güncellemeyi indirdi, normalde yeniden başlatmaya gitti. Ve sadece yarısı yeniden başlatmadan çıkmayı başardı ve sonra kazara.
Nedeni bu güncellemeydi. Aşağıdaki grafikte, bir MT5 terminalini bir ticaret sistemi ile güncelleme süreci, güncelleme öncesi ve sonrası takas dosyası.

Hangi nedenle fiziksel bellek göstergelerini ekran görüntüsünden gizlediniz, ancak takas dosyasını unutmadınız?

Ayrıca böylesine önemli bir sorunu çözerken, her bir işlem için gerçek bellek maliyetlerini ve çalışan iş parçacığı sayısını görebileceğiniz işlemler bölümünden ekran görüntüsü eklemeyi unutmuşsunuz.

 

Anladığım kadarıyla MT5 1085'te yorum (Yorum) koymak için yarış şartı var .

Anlamı şudur - ayrı bir pencerede kodlu bir gösterge vardır:

 int OnInit (){
   Comment ( "AAAAAAAAAAAAAAAAAAAAAAAAA" );
}

void OnDeinit ( const int reason) {
   Comment ( "" );
}

Aynı grafik üzerinde göstergenin 2 örneğini çalıştırır ve zaman dilimlerini değiştirirsek, Yorumda ne göreceğiz?
%90'ında "" olacaktır. (Ya OnInit ve OnDeinit altından Comment'i ayarlamak için farklı önceliğe sahip farklı iş parçacıklarında farklı kuyruklar varsa ....)

 

Derleme Hatası

 template < typename T>
string ETS( T t ) { return ( typename ( t ) == "int" ? "OK" : :: EnumToString ( t ) ); }
enum ENUM {     ENUM__ };
void OnStart ()
{
        ENUM i1 = ENUM__;       Print ( ETS( i1 )); //нормально
         int   i2 = 0 ;             Print ( ETS( i2 )); //ошибка компиляции
}
Derleme zamanında tür biliniyorsa, ikinci durumda neden ::EnumToString( int ) değerini değerlendirin?
 
ALXIMIKS :

%90'ında "" olacaktır.

Ne bekleniyordu? Biri yazar, diğeri siler.
 
A100 :
Ne bekleniyordu? Biri yazar, diğeri siler.
İkinci yazıyı unutmuşsun.

İki yazma ve iki silme var. Büyük olasılıkla eşzamansızdırlar.
Fikre göre silme yazmadan önce olmalı ama ne yazık ki öyle değil...
 

Derleyici bir hata algılamıyor (ve algılıyor - en azından ikinci #endif eksik), bu da daha önemli hataların algılanamamasına neden oluyor

 #property library
#define __MQL5
#ifdef   __MQL5
#ifndef __MQL5
#else
#else
#endif