Hatalar, hatalar, sorular - sayfa 2588

 
Aleksey Vyazmikin :

Hala anlamıyorum - tahmincileriniz büyük bir hesaplama derinliği gerektiriyor mu? Gerçekten bir taneye ihtiyacım var - Günlük olarak Mashka :) Test etmeye bir yıl önce başlıyorum ve bu tarihten önce alım satım yasaklanabilir...

Evet - bir yıldan fazla bir süredir tarihin derinliğine ihtiyaç var. Çözüm zaten bulundu. Şimdi ben de 3 yıl önce başlatacağım ve onları atlayacağım.
 
Kod KB olarak geçmez. Bunun gibi hatalar veriyor
MQL5\Include\fxsaber\BestInterval\Deal.mqh( 10 , 32 ) : error 239 : '::' - syntax error
MQL5\Include\fxsaber\BestInterval\Deal.mqh( 10 , 34 ) : error 279 : 'ToNull' - call non- const method for constant object
MQL5\Include\fxsaber\BestInterval\Deal.mqh( 10 , 34 ) : error 279 : 'ToNull' - call non- const method for constant object
MQL5\Include\fxsaber\BestInterval\BestInterval.mqh( 202 , 32 ) : error 239 : '::' - syntax error
MQL5\Include\fxsaber\BestInterval\BestInterval.mqh( 202 , 34 ) : error 351 : 'ToNull' - access to non- static member or function
MQL5\Include\fxsaber\BestInterval\BestInterval.mqh( 214 , 32 ) : error 239 : '::' - syntax error
MQL5\Include\fxsaber\BestInterval\BestInterval.mqh( 214 , 34 ) : error 351 : 'ToNull' - access to non- static member or function
MQL5\Include\fxsaber\BestInterval\BestInterval.mqh( 225 , 32 ) : error 239 : '::' - syntax error
MQL5\Include\fxsaber\BestInterval\BestInterval.mqh( 225 , 34 ) : error 351 : 'ToNull' - access to non- static member or function
MQL5\Include\fxsaber\BestInterval\BestInterval.mqh( 416 , 33 ) : error 239 : '::' - syntax error
MQL5\Include\fxsaber\BestInterval\BestInterval.mqh( 416 , 35 ) : error 351 : 'ToNull' - access to non- static member or function
MQL5\Include\fxsaber\BestInterval\BestInterval.mqh( 435 , 33 ) : error 239 : '::' - syntax error
MQL5\Include\fxsaber\BestInterval\BestInterval.mqh( 435 , 35 ) : error 351 : 'ToNull' - access to non- static member or function

Lütfen KB derleyicisini güncelleyin.

 
Vladimir Simakov :
Tatilden dönerim, levyede olmazsa konuyu incelerim. Ama işin mantığına göre bug mql'de değil sizin kodunuzda.
Bu arada, aynen böyle, ya kütüphaneniz hangi kodlama ile çalışıyor? Sonuçta, utf-16'nın ve aniden aynı utf-8'in en yaygın olduğundan eminsiniz.

Ancak bu an henüz kontrol edilmedi, bahşiş için teşekkürler. O yönde kazacağım.
Okyanus kütüphanesi, çalıştığım sınıflar W harfiyle seçiliyor, yani. Unicode.

Kodlamayı anladığım gibi.

const karakter *Utf8;
const char *Ansi;
const wchar_t *Utf16;
const wchar_t *Utf32;

utf-16, wchar_t türünü ifade eder, kitaplık işlevi okuma dizesi const wchar_t* değerini döndürür
Bundan, işlevin utf-16 kodlamasında bir dizgeye bir işaretçi döndürdüğü anlaşılır.
Proje özelliklerinde Unicode karakterler için destek de seçilir.
Mql belgeleri, dizenin Unicode biçiminde çalıştığını söylüyor.

 

Yeniden optimize etmeye başladım, yürütme hızı için aşağıdaki kodu test edebileceğimden emin değilim:

 void OnStart ()
{   datetime m_stoptime = 0 ;
//1.
   if (m_stoptime < TimeCurrent ())
   {
       //расчеты   
   }


//2.
   MqlTick last_tick;
   if ( SymbolInfoTick ( _Symbol , last_tick))
   {   if (m_stoptime < last_tick.time) 
      {
         //расчеты
      }
   }

}

2. seçeneğin daha hızlı çalışacağından şüpheleniyorum?

öyleyse, nerede "tuzaklar" olabilir - OnTick()'te kullanıyorum - işlem süresi optimize edicide arama yapmak için kodu optimize etmenin yollarını arıyorum


Not: 1 No'lu ve 2 No'lu seçenekleri hız açısından nasıl kontrol edeceğimi sorabilirim, derleyicinin çalıştırılabilir kodu optimize etmesi ve testler doğru çıkmaması kuvvetle muhtemel - bu yüzden soruyorum

 
Igor Makanu :

1 ve 2 numaralı seçenekleri hız açısından nasıl kontrol edeceğimi sorabilirim, derleyicinin yürütülebilir kodu optimize etme olasılığı yüksek ve testler doğru olmayacak - bu yüzden soruyorum

1 ve 2 için ayrı ayrı düzenli bir test yapın ve süreyi karşılaştırın? )

Süre önemsizse, aynı optimizasyonu seçenek 1 ve seçenek 2 ile çalıştırın.

 
Igor Makanu :

Not: 1 No'lu ve 2 No'lu seçenekleri hız açısından nasıl kontrol edeceğimi sorabilirim, derleyicinin çalıştırılabilir kodu optimize etmesi ve testler doğru olmayacağı yüksek ihtimal - bu yüzden soruyorum

https://www.mql5.com/en/code/18804

TesterBenchmark
TesterBenchmark
  • www.mql5.com
При написании разных версий кода может возникнуть необходимость измерения влияния их на общую производительность советника в тестере. Это позволяет не только понять, насколько оптимален написанный код по сравнению с другим, но и дает предпосылки к будущей быстрой оптимизации советника. Такой подход позволяет выявить "бутылочное горлышко" в...
 
Igor Makanu :

Yeniden optimize etmeye başladım, yürütme hızı için aşağıdaki kodu test edebileceğimden emin değilim:

2. seçeneğin daha hızlı çalışacağından şüpheleniyorum?

öyleyse, nerede "tuzaklar" olabilir - OnTick()'te kullanıyorum - işlem süresi optimize edicide arama yapmak için kodu optimize etmenin yollarını arıyorum


Not: 1 No'lu ve 2 No'lu seçenekleri hız açısından nasıl kontrol edeceğimi sorabilirim, derleyicinin çalıştırılabilir kodu optimize etmesi ve testler doğru olmayacağı yüksek ihtimal - bu yüzden soruyorum

Hata ayıklama modunda kontrol edin. Orada, teoride derleyici, gerçekte olduğu gibi HZ'ye rağmen optimize etmemelidir.
 

ArrayResize ile ilgili soru. Hemen birkaç gigabaytlık bir Yedek oluşturuyorum. Ve orijinal Yedekten daha az olan Boyutu kademeli olarak artırın.

TaskManager, Boyutu artırırken neden bellek tüketiminde artış gösteriyor?

 
fxsaber :

ArrayResize hakkında soru. Hemen birkaç gigabaytlık bir Yedek oluşturuyorum. Ve orijinal Yedekten daha az olan Boyutu kademeli olarak artırın.

TaskManager, Boyutu artırırken neden bellek tüketiminde artış gösteriyor?

Metatrader'a ek olarak, nihayetinde birkaç düzine işlemden hangisine (bu arada, her birinin varsayılan olarak 4 GB adres alanına sahip olduğuna) karar veren Windows da var, gerçekten (orada kaç tane var? ) Ayrılacak RAM .
 
Andrey Khatimlianskii :

1 ve 2 için ayrı ayrı düzenli bir test yapın ve süreyi karşılaştırın? )

Süre önemsizse, aynı optimizasyonu seçenek 1 ve seçenek 2 ile çalıştırın.

Yanlış bir şey yapıyorum, hala farklılıkları göremedim, sonuçlar 0.1 saniyelik bölgede tek bir işlemle yüzüyor