Hatalar, hatalar, sorular - sayfa 2081

 
Anatoli Kazharski :

Bu sorun tüm göstergelerde kendini göstermektedir. Standart teslimat dahil. Örneğin, Hareketli Ortalama:

//---

Ve birkaç çubuğun oluşumundan sonra:

//---

Kendiniz için çoğaltmaya çalışın. Bu sorunu yaşayan bir tek ben miyim anlamam gerekiyor.


Evet onaylayın:

Terminal        MetaTrader 5 x64 build 1687 started (MetaQuotes Software Corp.)
Terminal        Windows 10 (Build 16299 ), x64 based PC, IE 11.00 , UAC, Intel Core i3- 3120 M  @ 2.50 GHz, RAM: 4473 / 8077 Mb, HDD: 330591 / 475588 Mb, GMT+ 02 : 00
Terminal        C:\Users\barab\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075

animasyon:

Göstergeler hareket etmiyor

 
Bu konuyla ilgili olmayan yorumlar " BUY_LIMIT, ORDER_TIME_DAY " tarihine taşındı.
 
Vladimir Karputov :

Evet onaylayın:

animasyon:

Teşekkür ederim. Hizmet masasındaki uygulamaya mesajınıza ek olarak bir bağlantı eklendi. Bu hata için acil bir düzeltmeye ihtiyacımız var, tüm çalışmalar durdu.
 

fxsaber :

Her iki terminalin de iki sekmesi vardır - Ticaret ve Posta. Her zaman aktif olmak için "Ticaret" e ihtiyacım var. Ancak aracıdan dahili bir e-posta geldiğinde (örneğin, kısmi doldurma), sekme "Posta" olarak değişir.

Bu gerçek muck nasıl devre dışı bırakılır? Pekala, böyle bir navyaschi bildirimi olmamalı ve hatta komisyoncunun tamamen sıradan mektuplarında, meydana gelen emirlerin yerine getirilmesinin özellikleri hakkında günde düzinelerce kez otomatik olarak rapor vermemelidir. Neden bazen "Posta"ya geçiş olduğunu ve bazen olmadığını anlamıyorum.

Nasıl kesilir? "Posta" sekmesini hiç okumadım çünkü. Bu spam. Hafifçe söylemek gerekirse, GUI terminalinin Spam'e böyle bir tepkisi can sıkıcıdır.


WinApi'yi kullanarak istediğiniz sekmeye geçme işlevini uygulayabileceğinizi düşünüyorum: ticaret, bakiye, her neyse.
İster kendiniz uygulamaya çalışın, isterseniz freelance sipariş verin, umarım hala orada ustalar vardır.

 
Sergey Dzyublik :

WinApi'yi kullanarak istediğiniz sekmeye geçme işlevini uygulayabileceğinizi düşünüyorum: ticaret, bakiye, her neyse.
İster kendiniz uygulamaya çalışın, isterseniz freelance sipariş verin, umarım hala orada ustalar vardır.

Ben kendim böyle bir sapıklık yaptım. Kullanıcı dostu bir GUI istiyorum.

 
Aleksey Vyazmikin :

Yine hafızası yok...

Hala 7 gigabayt RAM boş olmasına rağmen. Bu ne?

Servis masasında bir bilet açın. Bir uzman ve optimizasyon ayarları ekleyin.

+ İşletim sistemini, bit derinliğini, sistem konfigürasyonunu tanımlayın.

 
Alexey Da :

Servis masasında bir bilet açın. Bir uzman ve optimizasyon ayarları ekleyin.

+ İşletim sistemini, bit derinliğini, sistem konfigürasyonunu tanımlayın.


Evet, tüm bunları nasıl çoğaltacağımı bilmiyorum - geçen hafta her gün böyle bir mesaj ortaya çıktı, danışman hiç çalışmadı. Ve geçen gün optimizasyon ile ... o zaman tüm programları kapattıktan sonra her şey çalıştı.

Programlar arasında bir çakışma olabilir mi? Opera tarayıcısı açıldığında hatanın her zaman orada olduğunu fark ettim.

 

Bu başlıkta , MT4 ve MT5'te Comment() komutunun hızı hakkında ilginç bir şey öğrenildi. MT5'te bu komut, MT4'tekinden ~2000 kat (!!!) daha yavaş çalışır.

İşte iki platformda çalışan test kodu:

 #property script_show_inputs
#include <Canvas\Canvas.mqh>

input uint    FontSize= 12 ;                                   // размер шрифта
input uint    Count= 1000 ;                                     // размерность цикла
input ENUM_COLOR_FORMAT format= COLOR_FORMAT_ARGB_NORMALIZE ; //Способ обработки цвета

void OnStart ()
  {
   CCanvas Text;
   ulong ColorScreen= ChartGetInteger ( 0 , CHART_COLOR_BACKGROUND , 0 );

   Text.FontSet( "Arial" ,FontSize);
   string str= "Необходимо подождать.Выполняется проход цикла №: = " ;
   int H=Text.TextHeight(str);
   int W=Text.TextWidth(str+ "00000" );
   if (!Text.CreateBitmapLabel( 0 , 0 , "FONT" , 2 , 130 ,W,H,format)) Print ( "Error creating canvas: " , GetLastError ());

   ulong t1= 1 ,t2= 1 ,t0;
   uint j= 0 ;
   color clr=( color )ARGB( 255 , 255 ^GETRGBR(ColorScreen), 255 ^GETRGBG(ColorScreen), 255 ^GETRGBB(ColorScreen));
   t0= GetMicrosecondCount ();
   for (j= 0 ;j<Count;j++)
     {
       Comment (str+ IntegerToString (j));
       if ( IsStopped ()) break ;
     }
   t1= GetMicrosecondCount ()-t0;

   t0= GetMicrosecondCount ();
   for ( j= 0 ;j<Count;j++)
     {
      Text.Erase(( color )ColorScreen);
      Text. TextOut ( 0 , 0 ,str+ IntegerToString (j),clr);
      Text.Update();
       if ( IsStopped ()) break ;
     }
   t2= GetMicrosecondCount ()-t0;
      Text.Erase(( color )ColorScreen);
      Text. TextOut ( 0 , 0 , "Время Comment = " + IntegerToString (t1)+ " Время Canvas = " + IntegerToString (t2),clr);
      Text.Update();
       Sleep ( 30000 );
     
   Text.Destroy();
   Comment ( "" );
  }
//+------------------------------------------------------------------+

Bu tamam mı?

Dosyalar:
 
Nikolai Semko :

Bu başlıkta , MT4 ve MT5'te Comment() komutunun hızı hakkında ilginç bir şey öğrenildi. MT5'te bu komut, MT4'tekinden ~2000 kat (!!!) daha yavaş çalışır.

İşte iki platformda çalışan test kodu:

Bu tamam mı?

Evet, her şey doğru ve doğru.

MT4'te Yorum işlevi, grafikte görüntülemeye çalışmadan dahili yorum metin alanını değiştirir. Yani, yorum bir gün grafiğin bir sonraki normal çiziminde görünecektir, ancak yorumun kendisinin değişmesi grafiğin yeniden çizilmesine neden olmaz. Bir yorumu hızla değiştirirseniz, değişiklikleri grafikte göremezsiniz.

MT5'te Yorum işlevi, önceliğin grafikte yorumu görüntülemek olduğundan, grafiğin açıkça yeniden çizilmesine neden olur. Aksi takdirde, işlev işe yaramaz.

Fark sadece bu.


ChartRedraw(), Comment çağrıldıktan sonra MT4'te zorlanırsa, davranış yine de MT5'teki gibi olmayacaktır. Metatrader 4'teki ChartRedraw(), yorumun değerini yok sayar ve grafiğin son kareden güncellenip güncellenmeyeceğine kendi başına karar verir. Elbette, grafik verilerinin geçersiz olmasına neden olan saniyede yüzlerce alıntı olmadığında, ChartRedraw "neden değişmemiş bir grafik çizdiğine" karar verir ve çerçeve çizimini atlar.

Metatrader 5 de aynı sisteme sahiptir, ancak koşulsuz işlemeye öncelik verilen daha birçok durum vardır.

Terminaller grafik uygulamalardır, saniyede yüzlerce kare sağlayabilir ve performansı artırmak için ekran tasarrufu modunda çalışır.


Bu nedenle, kıyaslama yapılırken ek sonuçlar:

  • ChartRedraw çağrısı, grafiğin gerçek bir çizimi olarak kabul edilemez.

  • "Çerçevenin neden çizildiğini" ve "piyasanın iç resmini geçersiz kılıyor muyum, böylece terminal çerçeveyi yeniden çizmeye karar veriyor mu" ifadelerini her zaman bilmeniz ve kanıtlamanız gerekir.

  • Kıyaslamalar sırasında birden fazla sonuç çıkaramazsınız MT5'te yorum yapın, her zaman çizimi nasıl etkilediğinizi düşünmeniz gerekir

  • MT5, tablodaki nesneleri değiştirmek için daha doğru bir sisteme sahiptir ve okuma/yazma komutlarını karıştırmanın sonuçlarını net bir şekilde anlamanız gerekir.
    okuma/yazma komutlarının karıştırılmaması, toplu okuma ve toplu yazma komutlarının ayrı yapılması önerilir.

  • kıyaslamalarda çizelgelerin sık sık yeniden çizilmesi, sonuçların grafik kartına büyük ölçüde bağımlı olmasına yol açar.
    aslında, bazı testler algoritmaların veya işlevlerin değil grafik kartının test edilmesiyle sonuçlanabilir. bir dizüstü bilgisayarda ve bir masaüstü bilgisayarda yapılan bir test, yalnızca 3-5 kat daha yavaş bir ekran kartı nedeniyle birden çok kez farklı sonuçlar gösterebilir

Bu hatalar hep yapılıyor.

 
Renat Fatkhullin :

Evet, her şey doğru ve doğru.

Ayrıntılı cevap için çok teşekkür ederim. Yaklaşık olarak öyle düşündüm. Her şey mantıklı.

Neden: