Evet, neler oluyor??? - sayfa 5

 
Andrey F. Zelinsky :

değişkeni global olarak bildirin ve bunu bildirdiğinizde, örneğin, int kk=0;

sonra OnTick()'te yazdırmayı kaldırın ve değeri değiştirin, örneğin, Print("kk=",kk); ++kk;

sonra TF'yi değiştirin -- ve sonuca bakın.

TF değiştirildiğinde bile global değişkenin değerini koruyacağı açıktır - ancak test cihazında bunun gibi bir şey olmaz.

 
Andrey Dik :

TF değiştirildiğinde bile global değişkenin değerini koruyacağı açıktır - ancak test cihazında bunun gibi bir şey olmaz.

Burada sonuçlardaki farklılığın sebebinin cevabını buldunuz.

optimize ederken, bir parametre araması vardır, yani. EA'yı farklı ayarlarla yeniden başlatma.

 
Andrey F. Zelinsky :

Burada sonuçlardaki farklılığın sebebinin cevabını buldunuz.

Expert Advisor'ın global değişkeninin , optimize edicinin önceki lansmanları sırasında değerini koruduğunu ve sonrakilere aktarıldığını düşünüyor musunuz? danunah.

 
Andrey F. Zelinsky :

kontrol edin, kontrol etmek tahmin etmekten daha kolaydır.

Renat yukarıda, optimize edicinin "saat gibi" çalıştığını ve sebebinin kodda olduğunu yazdı - birkaç kez çıktı almayı önerdi - kimsenin yapmadığını kabul ediyorum.

kendin kontrol ettin mi Tek bir çalıştırmanın bir optimizasyonun parçası olmaktan farklı şekilde çalışacağı durumlarda net örnekler var mı?

örneğin, test cihazındaki tutamacı silmenin daha önce çalışmadığını hatırlıyorum, sistemle birlikte bir bellek taşmasına ve terminalin çökmesine neden oldu. belki bu sorun zaten çözülmüştür, ancak gösterge tutamaçları oluşturma ve silme ile ilgili tuzaklar vardır ve optimize edicinin çalışmasında ve göstergelerle tek bir çalıştırmada farklılıklar vardır. çünkü geliştiricilerin mümkün olan her yerde bellek tüketimini hızlandırma ve en aza indirme konusunda çok iyi bir iş çıkardıkları güvenilir bir şekilde bilinmektedir.

 
Andrey Dik :

kendin kontrol ettin mi Tek bir çalıştırmanın bir optimizasyonun parçası olmaktan farklı şekilde çalışacağı durumlarda net örnekler var mı?

bu durumda, tek bir çalıştırma değil.

 
Andrey F. Zelinsky :

global olarak bildirilen değişkenlerin başlatılmasını kontrol edin.

başlatmalar OnInit() içinde değilse, ancak bildirildiğinde ve değerleri kodda değiştirilmişse.

  1. Kontrol.
  2. Bunun için değişkenler ve değişebilen değişkenler.
  3. Yanlışsam düzelt.
  • Bir değişken bildirilmişse, bunun için bellek ayrılmıştır.
  • Başlatılmamışsa, içinde her şey olabilir.
  • Fark nedir, hemen sıfırla mı sıfırla, yoksa hesaplamaların sonucunu doğru yere mi ata?
  • Başlatılmamış bir değişken kullanmayı denerseniz, derleyici bir uyarı verecektir.

Basit örnek:

 int tst( int x)
{
   int y;
   if (x >= 0 )  y = 1 ;
   else
   if (x < 0 )   y = 0 ;
   return (y);		// possible use of uninitialized variable 'y'
}

Her ne kadar .... Bir nedenden dolayı, derleyici artık bildirim global kapsama taşınırsa uyarıda bulunmaz (((

 int y;

int tst( int x)
{
   if (x >= 0 )  y = 1 ;
   else
   if (x < 0 )   y = 0 ;
   return (y);           // никакого предупреждения уже нет...
}
'test.mq5'
code generated
0 errors, 0 warnings, 143 msec elapsed

Başka bekliyordum...

 
Сергей Таболин :

  1. Kontrol.
  2. Bunun için değişkenler ve değişebilen değişkenler.
  3. Yanlışsam düzelt.
  • Bir değişken bildirilmişse, bunun için bellek ayrılmıştır.
  • Başlatılmamışsa, içinde her şey olabilir.
  • Fark nedir, hemen sıfırla mı sıfırla, yoksa hesaplamaların sonucunu doğru yere mi ata?
  • Başlatılmamış bir değişken kullanmayı denerseniz, derleyici bir uyarı verecektir.

Basit örnek:

Her ne kadar .... Bir nedenden dolayı, derleyici artık bildirim global kapsama taşınırsa uyarıda bulunmaz (((

Başka bekliyordum...

Beşinci bir sayfa vardı, ama hala mql5 kodu yoktu... Testle ilgili karanlıkta gizlenen bir gizem de var: sembol(ler), zaman çerçevesi(ler), test ayarları.

 

Çıktıya başlamadan önce bir soru daha.

Örneğin, sonuçları yazdım:

optimizer - satın al;sat;sat;satın al;satın al;sat

test eden - satın al;sat;sat;satın al; satın al; sat; sat; satın al ; satın al; sat

Bu " ekstra " işlemlere ilişkin veriler, hangi tavandan düştüklerini anlamaya nasıl yardımcı olacak? Muhtemelen, önceki çubukların fiyatlarını veya başka bir şeyi yazmanız gerekiyor?

 
Vladimir Karputov :

Beşinci bir sayfa vardı, ama hala mql5 kodu yoktu... Testle ilgili karanlıkta gizlenen bir gizem de var: sembol(ler), zaman çerçeve(ler)i, test ayarları.

Tatilden tekrar hoşgeldiniz)))

Burada her şey görülüyor .

 
Сергей Таболин :

  1. Kontrol.
  2. Bunun için değişkenler ve değişebilen değişkenler.
  3. Yanlışsam düzelt.
  • Bir değişken bildirilmişse, bunun için bellek ayrılmıştır.
  • Başlatılmamışsa, içinde her şey olabilir.
  • Fark nedir, hemen sıfırla mı sıfırla, yoksa hesaplamaların sonucunu doğru yere mi ata?
  • Başlatılmamış bir değişken kullanmayı denerseniz, derleyici bir uyarı verecektir.

Basit örnek:

Her ne kadar .... Bir nedenden dolayı, derleyici artık bildirim global kapsama taşınırsa uyarıda bulunmaz (((

Başka bekliyordum...

'x' double türündeyse, verilen örnekler temelde yanlıştır ve her iki durumda da 'y' durumu tanımsızdır

yani, sinir ağlarının derinliklerinde bir yerde, özel çift değerlerin elde edilmesi mümkündür - infs, nans veya eps'ye benzer değerler

Документация по MQL5: Основы языка / Типы данных / Вещественные типы (double, float)
Документация по MQL5: Основы языка / Типы данных / Вещественные типы (double, float)
  • www.mql5.com
Вещественные типы (или типы с плавающей точкой) представляют значения, имеющие дробную часть. В языке MQL5 есть два типа для чисел с плавающей точкой. Способ представления вещественных чисел в машинной памяти определен стандартом IEEE 754 и не зависит от платформ, операционных систем и языков программирования. Константы с плавающей точкой...