Hatalar, hatalar, sorular - sayfa 432

 
gumgum :

sadece 290 ve... daha fazla)

Kapsamlı arama 290 yapar.

Geçiş olmadığını anlıyorum (gerçek koşu), ancak düzeltildi (eşleşmeler varsa)?

Bir genetik algoritma seçtiğiniz için, popülasyonları geçmek ve çıkarım yapmak için kendi planını oluşturur. Genetik optimize edicinin algoritması, ilgili makalede açıklanmıştır.

Bu kadar az sayıda (290) geçişle genetiği çalıştırmak mantıksızdır. En az onbinlerce, tercihen milyonlarca/milyar/trilyonlarca seçeneğin ilk sayımında genetik algoritma kullanılmalıdır.

Генетические алгоритмы - это просто!
Генетические алгоритмы - это просто!
  • 2010.05.25
  • Andrey Dik
  • www.mql5.com
В статье автор расскажет об эволюционных вычислениях с использованием генетического алгоритма собственной реализации. Будет показано на примерах функционирование алгоритма, даны практические рекомендации по его использованию.
 

MQL5 Referansında Yazım Hatası - Standart Kitaplık - Verileri düzenlemek için sınıflar - CArrayObj (sitede ve yardımda):

2. Bellek yönetim mekanizması devre dışı bırakılır.

Bu durumda, CArrayObj belleği boşaltmaktan sorumlu değildir.

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 
Renat :

Evet, mevcut en son tarihe kadar test etmenize gerek yoktur.

Önceki iş gününün 00:00'ı veya hatta son iş haftasının sonu gibi makul bir sabit bitiş tarihi seçin. Sürekli olarak son günü kullanırsanız, özellikle test süreci uzak veya bulut aracıları kullanılarak uzun sürüyorsa, grafiğin sonu periyodik olarak kayar.


Bitiş tarihi olarak Pazar gününü kullanın. Ne kadar akıllı? Pazar günü ihale yoktur. Orada ne yüzebilir?
 
MoneyJinn :
Bitiş tarihi olarak Pazar gününü kullanın. Ne kadar akıllı? Pazar günü ihale yoktur. Orada ne yüzebilir?

O zaman belki de sorun hikayenin diğer ucundadır. Göstergelerin çalışması için ne kadar geçmişe ihtiyacınız var? Testin başlangıcında, anladığım kadarıyla, önceki yüz çubuk garantilidir.

Daha fazlasına ihtiyacınız varsa, Uzman Danışmanın başlangıcından sonra, [ gerekli_sayı_of_bars - 100 ]'den daha uzun olan bir geçmiş parçasını atlayın. Benim için bu, test cihazı ve optimize edicinin sonuçlarını eşleştirmeyle ilgili sorunları çözdü.

 
MetaDriver :

O zaman belki de sorun hikayenin diğer ucundadır. Göstergelerin çalışması için ne kadar geçmişe ihtiyacınız var? Testin başlangıcında, anladığım kadarıyla, önceki yüz çubuk garantilidir.

Daha fazlasına ihtiyacınız varsa, Uzman Danışmanın başlangıcından sonra, [ gerekli_sayı_of_bars - 100 ]'den daha uzun olan bir geçmiş parçasını atlayın. Benim için bu, test cihazı ve optimize edicinin sonuçlarını eşleştirmeyle ilgili sorunları çözdü.

Teşekkürler, ancak ekran görüntüleri ağ üzerinden optimizasyon yaparken Cuma tarihinin kaybolduğunu gösteriyor (24/06/11)

 

Temel bir soru değil, ama yine de. Dize birleştirme. Belgeler, StringAdd ve StringConcatenate adlı iki işlevi açıklar.

İlki şunu belirtir: " StringAdd() işlevi, dizeleri toplama işlemleriyle birleştirmekten daha hızlıdır ve bellek açısından daha verimlidir ."

İkincisinde: " StringConcatenate() işlevi, geçici dize değişkenlerinin kullanılmaması nedeniyle, ekleme işlemlerini kullanarak dizeleri birleştirmekten daha hızlı ve bellek açısından daha verimlidir ".

 void OnStart () {
   string string1 = "sdfdsfjssdfads" ;
   string string2 = "bsadfasdfaaa" ;
   string string3 = "ssdfsdgasgsaggsda" ;
   string result;
   uint i, start, stop, length = 10000000 ;

  start = GetTickCount ();
   for (i = 0 ; i < length; i++)
    result = string1 + string2 + string3;
  stop = GetTickCount ();
   Print ( "№1 " , (stop-start), " milliseconds, i = " , i);
 
  start = GetTickCount ();
   for (i = 0 ; i < length; i++) {
     StringAdd (result, string1);
     StringAdd (result, string2);
     StringAdd (result, string3);
  }
  stop = GetTickCount ();
   Print ( "№2 " , (stop-start), " milliseconds, i = " , i);

  start = GetTickCount ();
   for (i = 0 ; i < length; i++)
     StringConcatenate (result, string1, string2, string3);
  stop = GetTickCount ();
   Print ( "№3 " , (stop-start), " milliseconds, i = " , i);
}

Sonuç:

2011.06.26 19:10:55 testi (EURUSD,H1) №1 2012 milisaniye, i = 10000000
2011.06.26 19:11:04 testi (EURUSD,H1) №2 8269 milisaniye, i = 10000000
2011.06.26 19:11:10 testi (EURUSD,H1) №3 6661 milisaniye, i = 10000000

Ancak sıradan eklemenin daha hızlı olduğu ortaya çıktı.

Документация по MQL5: Строковые функции / StringConcatenate
Документация по MQL5: Строковые функции / StringConcatenate
  • www.mql5.com
Строковые функции / StringConcatenate - Документация по MQL5
 
voix_kas :

Ancak sıradan eklemenin daha hızlı olduğu ortaya çıktı.

Soru zaten ortaya çıktı: https://www.mql5.com/ru/forum/58/page13#comment_59630 Aşağıdaki tartışmaya bakın. Geliştiriciler: Sonuç, bu konunun referans materyallerde ele alınmadığını gösteriyor.
Изучаем и пишем вместе на MQL5
Изучаем и пишем вместе на MQL5
  • www.mql5.com
2) вывод всей возможной информации по инструментам, ордерам и др.
 
MoneyJinn :
Bitiş tarihi olarak Pazar gününü kullanın. Ne kadar akıllı? Pazar günü ihale yoktur. Orada ne yüzebilir?

Bu tür sorular ayrıntılar gerektirdiğinden, hizmet masasında ek açıklamalar içeren bir bilet oluşturun - biz bunu çözmeye çalışacağız.

Sorun, elbette, tarihte ve onun senkronizasyonunda.

 
voix_kas :

Temel bir soru değil, ama yine de. Dize birleştirme. Belgeler, StringAdd ve StringConcatenate adlı iki işlevi açıklar.

İlki şunu belirtir: " StringAdd() işlevi, dizeleri toplama işlemleriyle birleştirmekten daha hızlıdır ve bellek açısından daha verimlidir ."

İkincisinde: " StringConcatenate() işlevi, geçici dize değişkenlerinin kullanılmaması nedeniyle, ekleme işlemlerini kullanarak dizeleri birleştirmekten daha hızlı ve bellek açısından daha verimlidir ".

Sonuç:

2011.06.26 19:10:55 testi (EURUSD,H1) №1 2012 milisaniye, i = 10000000
2011.06.26 19:11:04 testi (EURUSD,H1) №2 8269 milisaniye, i = 10000000
2011.06.26 19:11:10 testi (EURUSD,H1) №3 6661 milisaniye, i = 10000000

Ancak sıradan eklemenin daha hızlı olduğu ortaya çıktı.

+ aracılığıyla dize birleştirmeyi optimize ediyor gibi görünüyor.

Artık uzun zamandır beklenen optimizasyon modlarını dahil etmek açısından derleyiciyi ciddi şekilde değiştiriyoruz. Bir süre sonra sonuçları göstereceğiz.

 
Renat :

+ aracılığıyla dize birleştirmeyi optimize ediyor gibi görünüyor.

Artık uzun zamandır beklenen optimizasyon modlarını içermesi açısından derleyiciyi ciddi şekilde değiştiriyoruz. Bir süre sonra sonuçları göstereceğiz.

Apaçık. Peki, mümkünse bunu forumda açık bir şekilde anlatabilirsiniz (bütün şubeleri takip etmeye çalışıyorum).

Şimdiye kadar, algoritma işi "+" bıraktı.