Hatalar, hatalar, sorular - sayfa 2612

 
Vladimir Simakov :
Tamamen öldü mü yoksa EA bir süre sonra kaldırıyor mu? İkincisi ise, bir döngü arayın.

Daha ilginç. Hata ayıklama modunda takılmaz. Ve tam teşekküllü - sıkıca.

 
Merhaba meslektaşlarım! Android için MT4 terminalinin geçmişte görüntülenmesine rağmen bazı kapalı pozisyonları neden kar olarak saymadığını bilen var mı?

Bu bir tür bug olabilir mi?
 
fxsaber :

Daha ilginç. Hata ayıklama modunda takılmaz. Ve tam teşekküllü - sıkıca.

Sorunu yerelleştirdi.

 #include <WinAPI\WinAPI.mqh>

#define GA_ROOT           0x00000002

void OnDeinit ( const int )
{
   static const int ControlID[] = { 0xE81E , 0x804E , 0x2712 , 0x4196 };
  
   long Handle = user32::GetAncestor(:: ChartGetInteger ( 0 , CHART_WINDOW_HANDLE ), GA_ROOT);
                                                                                        
   for ( int i = 0 ; i < sizeof (ControlID) / sizeof ( int ); i++)                             
    Handle = user32::GetDlgItem(Handle, ControlID[i]);

   ushort Str[ 6 ];
  user32::GetWindowTextW(Handle, Str, sizeof (Str) / sizeof ( ushort )); // Freeze
}


Bu Uzman Danışmanı grafikte başlatır ve ardından manuel olarak kaldırırsınız. Terminalde bir kapatma olacaktır.

Aynı kodun başka herhangi bir Açık işlevinde yürütülmesi, bir kapatma oluşturmaz.

 
Aniden, Tester klasöründe üçüncü aracı (port 3002) için hiç var olmayan bir klasör belirdi. Hiçbir şeyi değiştirmedim, yönetici başlamadı. Diğer iki (normal) aracının klasörlerinde de bugünden yeni dosyalar var. Bu neden olabilir? Fazladan bir tane alabilir miyim?
 
Stanislav Korotky :
Fazladan bir tane alabilir miyim?

En azından Tester klasörünün tamamını öldürebilir ve yalnızca önbelleği bırakabilirsiniz.

 

Söyle bana, bu bir hata mı, değil mi?

 struct A { int i; };

struct B : public A { int j; };

void OnStart ()
{
  B b;
  
   DebugBreak ();
}

Alan i eksik.

 

Terminalde kalıcı bir sorun var:

1- Çizim ve zaman dilimleri için panelleri açın. Onları ana sıra ile bir sıra halinde düzenliyoruz.

2- terminali ekranın tabanına sıkıştırın

3- terminali tam ekrana genişletin ve çizim ve zaman çerçeveleri için paneller "ikinci satır" olur! Görünüşe göre büyük bir ekran alanı işe yaramaz boşluklarla dolu!

Ve terminal konumlarını hatırlamalı ve geri yüklemelidir.

Ayrıca, ilkini alırsanız, aynı anda 2 değil, beklediğiniz gibi, sadece bir tane sürüklenecek ... Yani, sadece sırayla geri sürükleyeceksiniz!

Ve genel olarak - çok sağlıklılar, oradaki her şeyi yarı / üç kez azaltmak gerekiyor!

Ve grafik pencerelerinin çerçeveleri de incedir, bunu yapmak daha iyidir! Şimdi onlar çok kınamak - hepsi bir kipiçte yapılmış ...

Bu sadece ergonomi, genel bir izlenim ve genel rahatlık!

Ülkemizde her zaman ergonomi ile ilgili sorunlar var! Sürekli görmezden geliniyor. Yabancı ürünler genellikle bu anlamda kazanıyor. Diğer üreticilerin terminallerinden bahsetmiyorum, genel olarak öyleyim! En azından otomobil endüstrisi, en azından elektronik al... En azından ... SSCB ve planlı ekonomi günlerinden beri, çok alışılmış hale geldi.

Sonunda bu davayı kazanmak güzel olurdu!

 
Михаил :

Ve genel olarak - çok sağlıklılar, oradaki her şeyi yarı / üç kez azaltmak gerekiyor!

Ve yüzde yüz vizyonu olmayan insanları düşünmenize gerek yok ??? Çöp sahasına gidebilirler mi? Belki de düğmeler çok büyük görünmemek için gözlük takmanız daha kolay?

 
Alexey Viktorov :

Ve yüzde yüz vizyonu olmayan insanları düşünmenize gerek yok ??? Çöp sahasına gidebilirler mi? Belki de düğmeler çok büyük görünmemek için gözlük takmanız daha kolay?

Ayar gerekiyor... Görüşün farklı olduğu açık. Ekran büyük veya küçük dizüstü bilgisayar olabilir ... Bu nedenle yapılandırmanız gerekiyor! Ve böylece terminal, elemanların konumunu unutmaz...

İnsanlar yavaş yavaş monitör yerine monitörden televizyona geçiyor... Çok uygun. Bir TV'de büyük kontroller yer israfıdır. Ve dizüstü bilgisayarda daha fazla öğeye sahip olmak uygundur ... Aralarından seçim yapabileceğiniz seçeneklere ihtiyacımız var.

Platform artık küçük değil. Çok karmaşık ve ciddi şeyler yapıldı. Ve tasarım büyük ölçüde eski, uzun süredir değişmedi...

 

GetMicrosecondCount() ile ilgili soru

Yardım diyor ki - GetMicrosecondCount() işlevi, MQL5 programının başlangıcından bu yana geçen mikrosaniye sayısını döndürür .

Doğru anlıyorum, Kapat - Aç - Siparişi değiştir - pozisyonları talep ettiğinizde bu fonksiyon donuyor?


Kontrol yöntemi

20 pozisyon açılıyor

20 pozisyon değişikliği

GetMicrosecondCount() metre

20 pozisyonu kapatmak

GetMicrosecondCount() metre


Sonuç olarak tüm pozisyonlar 70.000 mikro saniye aralıklarla kapatılır. Hepsi 20 ama terminalde görsel olarak bakarsak, bazı pozisyonların 2-5 saniye kapanmayı bekleme sürecinde olduğunu görüyoruz!