Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
aynı sonuç! bu noktalar için giriş parametreleri aynıdır!
Lütfen açıklayın. "Bu noktalar için giriş parametreleri aynı" konusunu anlamadım. Optimize edicinin işini anladığım kadarıyla, her geçiş benzersiz bir giriş parametresi kümesine karşılık gelir. Yoksa bir genetik algoritma kullanırken , optimize edici tarafından benzersiz bir giriş parametresi setinin birkaç kez işlenebileceği durumlar olabileceğini mi söylemek istiyorsunuz?
... Evet, aynen öyle diyor. O zaman, "önbellekten" sonraki tüm noktaların, optimizasyon sonuçlarının görsel algısını bozan bir kurgu olduğu ortaya çıkıyor mu?
Garip. Bir kez daha. Grafikte birbirine yakın iki nokta var ve sonuçlarda sadece bir tane var.
İpucu: Lütfen istenen göstergeye göre sıralayın ve tablonun dikey kaydırma çubuğunu göstermeyi unutmayın.
Bu sorun hiç çözülmeyecek mi???
Bu onun hakkında üçüncü kez konuşuyorum ve tepki sıfır!
Bu arada, bana öyle geliyor ki, yeniden alıntı modelleme seçilirse, bu önbellek kullanılmamalıdır. geliştiriciler bu konuda ne düşünüyor?
ve başka bir hata : genetik algoritmam 10496'nın ötesine geçtiğinde, grafik yanlış görüntülenmeye başladı - dikey olarak doğru ölçeklendi, daha yüksek sonuçların bulunduğunu anlamak mümkün oldu, ancak yatay olarak güncellenmedi. noktalar sağda bir yere, grafiğin sınırlarının ötesine eklenmiş gibiydi.
Terminalde sonuç
Test cihazında sonuç:
SymbolName (i) işlevinin tüm cazibesi gitti
Geliştiricilere istek. MT5 üzerindeki çalışmalar tüm hızıyla devam ederken ve hala değişiklikler yapılırken, optimizasyon geçişlerinin sayısını artırmak harika olurdu.
Anladığım kadarıyla bir çok problemin çözümü 10.000 civarında seçenek, belki biraz daha fazla belki biraz daha az. Bir işlemcide birkaç saat arama ve en iyi seçenekler bulunur.
MQL5+OOP+Çok çekirdekli testin evrenselliği, MT5 aracılığıyla çözülebilecek yeni görev ufuklarına (örneğin, kalıp arama) bakmanıza olanak tanır.
Ama sorun şu:
Sitenizde yayınlanan makale bir genetik algoritma örneği içeriyor https://www.mql5.com/ru/articles/55 , burada 100 çubukta arama sorununu çözmek için 3^100 doğrudan numaralandırma yapıldı - işte bu LongInt'ten biraz daha fazla :) ve çözüm 17.000 yinelemede bulundu. Genetik algoritma, LongInt'e göre daha birçok seçenek arasından çözümler bulabilmektedir. Ve bu kısıtlama tamamen mantıksız ve modası geçmiş. Eh, bunun dışında, MT5 üzerindeki çalışmanın bu son aşamasında bunu yapmak zor olacak.
Geliştiricilerden büyük bir istek, bu çok zor değilse, lütfen geçiş sayısını en az 2^LongInt (güçte 2) yapın.
kod:
Kayıt:
2010.12.06 18:07:52 testInd (EURUSD,H1) Değişti mi? tutamaç2=10
2010.12.06 18:07:52 testInd (EURUSD,H1) Tutamak2 =10
2010.12.06 18:07:52 testInd (EURUSD,H1) Tutamak1 =10
Buna göre, işleme2'ye yönelik tüm veri çağrıları, süre değişse de, işleme1'e yapılan çağrılara eşdeğerdir.
Uzman Danışmanın çalışması sırasında, aynı özelliklere sahip göstergelerin oluşturulması göz ardı edilmez ve bir tutamağa böyle bir optimizasyon makuldür, ancak tutamağın bir değişkene bu şekilde "yapışması" hayatı çok bozar.
PS Nedenini buldum. Bu bir hatadır - bir tutamaç numarasına yapılan optimizasyonun bir sonucudur.
IndicatorRelease (handle2); //уменьшает счетчик хендлов на единицу и в итоге следующий созданный хэндл(с любой переменной) - опять 10
kod:
Kayıt:
2010.12.06 18:07:52 testInd (EURUSD,H1) Değişti mi? tutamaç2=10
2010.12.06 18:07:52 testInd (EURUSD,H1) Tutamak2 =10
2010.12.06 18:07:52 testInd (EURUSD,H1) Tutamak1 =10
Buna göre, işleme2'ye yönelik tüm veri çağrıları, süre değişse de, işleme1'e yapılan çağrılara eşdeğerdir.
Uzman Danışmanın çalışması sırasında, aynı özelliklere sahip göstergelerin oluşturulması göz ardı edilmez ve bir tutamağa böyle bir optimizasyon mantıklıdır, ancak tutamağın bir değişkene bu şekilde "yapışması" hayatı çok bozar.
PS Nedenini buldum. Bu bir hatadır - bir tutamaç numarasına yapılan optimizasyonun bir sonucudur.
Sizce bu neden bir bug?
Sizce bu neden bir bug?
Örneğin, kullanıcı arayüzden MA için dönem değerleri girerse, göstergeler için tutamaçlar oluşturur ve gösterge arabelleklerinin değerlerini kullanırsa, o zaman tesadüfen de olsa yaratmışsa (örneğin, bu konuda varsayılan ayarlarım var). form) aynı özelliklere sahip 2 gösterge (tutamaçları bir nesne sargısına yerleştirilir), bu özelliğin bir sonucu olarak ikinci gösterge için ilk göstergenin tutamaç numarasını alır.
Aşağıdaki olası olay zincirleri.
Durum 1. İlk göstergeyi siler (ve program bir IndicatorRelease yapar) ve sonuç olarak ikinci gösterge otomatik olarak çalışmaz - arabellek kopyalama hatası.
Durum 2. İkinci göstergeyi kaldırır (ve program bir IndicatorRelease yapar), tutamaç sayacı azalır. İlki harika hissettiriyor. Farklı bir nokta ile üçüncü bir gösterge oluşturur. Kendisine bir tutamaç sayacı + 1 verilir, yani. yeni silinen göstergenin tutamaç numarası. Sonuç olarak, en kötüsü, farklı bir periyoda sahip, başarıyla oluşturulan üçüncü göstergenin, ilk , hala silinmemiş göstergenin değerlerini arabelleğe almasıdır .
Tutamaç numaralarını birleştirme özelliği, birleştirilmiş iki tanıtıcıdan birini silerken ve ardından yeni tutamaçlar oluştururken belirsiz durumlara yol açar.
Biri bana cevap verecek mi?
Burada bahsetmişler. https://www.mql5.com/en/forum/1997/page6/#comment_31644
Belki de soruyu oraya taşımak daha iyidir - taşınma önerisi.