Hatalar, hatalar, sorular - sayfa 2621

 

Belirgin bir yerde bir yanlış anlaşılmaya rastladım. İşte bir komut dosyası:

 double Sigma = 1.0 ;
double Smax = 5.0 ;
double Step = 2 ;


void OnStart ()
{
   int scount = 1;

   double s = Sigma;

   for ( ; s < Smax; scount++)
  {
    s *= Step;
     Print (scount, " " , s);
  }
  
   Print (scount);
}

Teoride 3 olması gerektiği halde bazı nedenlerden dolayı 4'e eşit scount çıktısı ile sonuçlanır. Başarılı bir kontrolden sonraki döngü artışı sadece s 1.0, 2.0, 4.0'a eşit olduğunda gerçekleştirilmelidir. Ayrıca s'de zaten 8 var, bu da 5'ten fazla.

 
Stanislav Korotky :

Belirgin bir yerde bir yanlış anlaşılmaya rastladım. İşte bir komut dosyası:

Teoride 3 olması gerektiği halde bazı nedenlerden dolayı 4'e eşit scount çıktısı ile sonuçlanır. Başarılı bir kontrolden sonraki döngü artışı sadece s 1.0, 2.0, 4.0'a eşit olduğunda gerçekleştirilmelidir. Ayrıca s'de zaten 8 var, bu da 5'ten fazla.

for ifadesinde artış, döngü gövdesinin bitiminden sonra yapılır https://www.mql5.com/ru/docs/basis/operators/for

for(ifade1; ifade2; ifade3 ) ifadesi;

выражение 1 ;
while (выражение 2 )
  {
   оператор;
   выражение 3 ;
  };

İlk makaleyi google'da arattım ama birden hatırlamıyorum - her şey C++'da çalışıyor https://en.cppreference.com/w/cpp/language/for

init_statement
while ( condition ) {
statement
iteration_expression ;
}
 
Igor Makanu :

for ifadesinde artış, döngü gövdesinin bitiminden sonra yapılır https://www.mql5.com/ru/docs/basis/operators/for

for(ifade1; ifade2; ifade3 )

Bu kadar. Döngü değişkeni 1, 2, 3 değerlerini geçmelidir. Çünkü üçüncü çarpmadan sonra koşul karşılanmaz: 8 > 5 - bu, döngüden yapılan son baskıdan görülebilir.

 
Stanislav Korotky :

Bu kadar. Döngü değişkeni 1, 2, 3 değerlerini geçmelidir. Çünkü üçüncü çarpmadan sonra koşul karşılanmaz: 8 > 5 - bu, döngüden yapılan son baskıdan görülebilir.

evet, ancak döngünün gövdesi yürütülüyor mu? bu nedenle artış, "ifade3" gövdesinin bitiminden sonra gerçekleşir, ardından bir kontrol vardır - "ifade2"

 
Igor Makanu :

evet, ancak döngünün gövdesi yürütülüyor mu? bu nedenle artış, "ifade3" gövdesinin bitiminden sonra gerçekleşir, ardından bir kontrol vardır - "ifade2"

Cuma ve hatta yılın son günü :-/

 

1- Test sonuçlarının çalıştırılması çalışmayı durdurdu. Disk alanı var. Herşey. Birkaç dakika önce çalışmakta olan şey aniden durdu.

Başlat düğmesine basıyorum veya optimizasyon sonucuna tıklıyorum ve hiçbir şey olmuyor. Bu yazıt sadece görünür:

2019.12.29 11:44:51.402 test cihazı tek geçiş başladı

Ve bir zamanlar şu yazıt vardı:

2019.12.29 11:41:56.053 test cihazı "Name.ex5" hata ayıklama sürümü algılandı

Hiçbir hata ayıklama etkin olmamasına ve bu Uzman Danışman düzenleyicide hiç açık olmamasına ve düzenleyicinin kapalı olmasına rağmen hiçbir şey derlenmemiş veya değiştirilmemiştir.

Parametreleri optimizasyondan ayarlara başarıyla aktarır ve görsel olarak her şey orada durur.


2- Ve ilerideki önemsizdeki "dur" butonu. Ya renk pembeden yeşile değişmez ya da terminal hiçbir şey yapmadığında bir ara duruma girer, ancak "ayarlar" sekmesinde hiçbir şey seçilemez, çünkü her şey pasif.

Durdurma düğmesine tekrar basmak, çalışmayı başlatır. Ve onu forvetten önce durdurabilirsin ve sonra her şey yolunda.


3- Ve başka bir "hile" - optimizasyon birkaç kat daha yavaş çalışmaya başlar. Sadece zamanla. Terminali yeniden başlatarak tedavi edilir .... Bir yerde bir şeyler birikiyor ... Günlüğü ve önbelleği temizlemek bu yavaşlamayı etkilemiyor gibi görünüyor. Ancak yeniden başlatmak büyük bir fark yaratır!
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 
Михаил :

Test sonuçlarının çalıştırılması durduruldu. Disk alanı var. Herşey. Birkaç dakika önce çalışmakta olan şey aniden durdu.

Başlat düğmesine basıyorum veya optimizasyon sonucuna tıklıyorum ve hiçbir şey olmuyor. Bu yazıt sadece görünür:

2019.12.29 11:44:51.402 test cihazı tek geçiş başladı

Ve bir zamanlar şu yazıt vardı:

2019.12.29 11:41:56.053 "Name.ex5" test cihazının hata ayıklama sürümü algılandı

Hiçbir hata ayıklama etkin olmamasına ve bu Uzman Danışman düzenleyicide hiç açık olmamasına ve düzenleyicinin kapalı olmasına rağmen hiçbir şey derlenmemiş veya değiştirilmemiştir.

Parametreleri optimizasyondan ayarlara başarıyla aktarır ve görsel olarak her şey orada durur.


Ve ileri önemsizdeki "dur" düğmesi. Ya renk pembeden yeşile değişmez ya da terminal hiçbir şey yapmadığında bir ara duruma girer, ancak "ayarlar" sekmesinde hiçbir şey seçilemez, çünkü her şey pasif.

Durdurma düğmesine tekrar basmak çalışmayı başlatır. Ve onu forvetten önce durdurabilirsin ve sonra her şey yolunda.


Ve başka bir "hile" - optimizasyon birkaç kat daha yavaş çalışmaya başlar. Sadece zamanla. Terminali yeniden başlatarak tedavi edilir .... Bir yerde bir şeyler birikiyor ... Günlüğü ve önbelleği temizlemek bu yavaşlamayı etkilemiyor gibi görünüyor. Ancak yeniden başlatmak büyük bir fark yaratır!

Yayın sürümünü F7 kullanarak derlemeniz gerekir. F5'e bastınız ve hata ayıklama sürümünü derlediniz

 
Artyom Trishkin :

Yayın sürümünü F7 kullanarak derlemeniz gerekir. F5'e bastınız ve hata ayıklama sürümünü derlediniz

Hayır, fare ve "Derle" düğmesi ile derliyorum. Ancak bu açıklanan durum için geçerli değildir, çünkü. bu EA önceki gün derlendi. Ardından başarıyla optimize edildi ve birkaç kez çalıştırıldı. Ve sonra böyle bir aksaklık verdi. Terminali yeniden başlatmak yardımcı oldu ...

Yani, sadece hataların bir yerde biriktiği hissi. Bu da çarpmalara ve frenlere yol açar. Tedavileri sıfırla (yeniden başlat)...
 
Ve bir şey daha - ileri koşu (tarihlere göre) ileri hareketin başlangıç tarihinden ne kadar uzaksa, o kadar yavaştır. İlk sefer hızlı gidiyor, sonra daha yavaş ve daha yavaş. Ve sonra feci şekilde daha yavaş. Düzeltmek güzel olurdu)
 
Михаил :
Ve bir şey daha - ileri koşu (tarihlere göre) ileri hareketin başlangıç tarihinden ne kadar uzaksa, o kadar yavaştır. İlk sefer hızlı gidiyor, sonra daha yavaş ve daha yavaş. Ve sonra feci şekilde daha yavaş. Düzeltmek güzel olurdu)

Oynatılacak kod yok - tepki yok