Hatalar, hatalar, sorular - sayfa 1625
![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret 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
MT4, 888 ms derler
MT5'te aynı proje 4103 ms'de derlenir
MT5'te hiç param yok - Cent hesapları ticareti yapıyorum ve DC'nin onları saat beşte açmak için acelesi yok.
Yavaş MQL5 derleme sorununa tekrar değinmek istiyorum. Yaklaşık üç ay önce bu konuyu gündeme getirmeye çalıştım, ancak nedense anlayışla karşılaşmadım, görünüşe göre argümanlarım yeterince inandırıcı değildi. Bu nedenle, her şeyin neredeyse anında derlendiği eski yapıya (1159) geri döndüm (yeni derleyicilerde projem 20 saniyede derlendi).
Ve bir hafta önce, "Allah onlara 20 saniye versin, sabredeceğim, yeni güzellikler için" diye düşünerek yeni bir yapıya geçmek için yeni bir girişimde bulundum. Doğal olarak, yeni derleyicinin birkaç hatasını keşfettiğim süreçte (bunun hakkında burada yazdım) yeni koşullar için kodu biraz düzeltmem gerekiyordu. Ve sonuç nedir? Projem 30 saniyedir derleniyor! Bunun projenin karmaşıklığından mı yoksa derleyicinin bir sonraki "karmaşıklığından" mı kaynaklandığını bilmiyorum, ancak bu herhangi bir çerçeveye uymuyor.
Proje yaklaşık 700 kb kaynak koduna sahiptir, bu birkaç düzine mqh içeren bir Expert Advisor'dır. Her şey OOP. Daha önce, büyük fonksiyonların varlığından dolayı yavaşlamanın mümkün olduğunu yazmıştım. Bende bunlardan birkaç tane vardı. Onları küçük parçalara ayırdım - etki sıfır.
Ve en şaşırtıcı olan, bu ekstra uzun derlemenin hiçbir anlamı yok. Programın hızı eski derleyicidekiyle aynı, özel olarak yapılmış ölçümler. Ortaya çıkan tek bir cümle var: "Ne halt?"
Derleyicide bir hata / kusur olduğuna dair güçlü bir his var, çünkü boş boş sıfırdan peşinde koşuyor. Yalnızca OnStart() { } işlevine sahip tamamen boş bir komut dosyasının 400 ms'den fazla derlediği gerçeğini başka nasıl açıklayabiliriz! Bir kuklada derlemenin / optimize etmenin bu kadar uzun sürebilmesi akıl için anlaşılmazdır. Pekala, buna küçük fonksiyonlar ve sınıflar ekleyerek, derleme süresinin nasıl hızla büyüdüğünü gözlemleyebilirsiniz.
Donanımımın kesinlikle güçlü olmaktan uzak olduğunu hemen not ediyorum - Core i5U. Ama bu benim projemin eski derleyici üzerinde 1-2 saniye içinde derlenmesini engellemiyor. Buna göre, kukla genellikle anında derlenir.
Ve ayrıca not edeceğim. Derleyici, yalnızca önceden derlenmiş parçaların önbelleğe alınmasından değil, kaynak kodun kimliğinin banal kontrolünden bile yoksundur. Onlar. projeyi derleyin, ardından hiçbir şeyi değiştirmeden tekrar "Derle" düğmesine basın ve yine aynı 30 saniyeyi bekleyin. Peki bu nereye yakışıyor...
Hem MT geliştiricilerinden hem de büyük projelerle çalışan forum üyelerinden (bu sorunla gerçekten ilgilenen sadece ben miyim?), Birinin derlemesi ne kadar sürer, vb. yorumlarını duymak istiyorum. Derhal yürütülebilir bir dosya derlemekten bahsettiğimiz bir rezervasyon yapın.
Projelerimde , sizinki gibi bir düzineden fazla kaynak dosya var ve her şey OOP'de, yaklaşık 20 saniye söylemeyeceğim ama sürekli 11 - 14 saniyeden fazla izliyorum. Aynı zamanda, bir tür önbelleğe alma meydana gelir, çünkü. hiçbir şey değişmezse, zaman öngörülemeyen herhangi bir yönde 1-2 saniye değişir. Projelerin montajını eski derleyiciler ile yenileri üzerinde karşılaştırmadım, eski derleyiciler her şeyi çok daha hızlı topladı. Bence geliştiriciler bu anı kendileri görüyor ve iş parçacığı her şeyi düzelttiğinde :) Sonuçta, her ay birkaç yeni betanın yayınlanması boşuna değil, yani bir şeyler görüp düzeltiyorlar.
Terminalin sürümü ve bitliği
v.1375, 64 bit
problemin tanımı
En son yapıyı güncelledikten sonra, aracılar optimizasyon sırasında ilk 1900-2100 geçişinden sonra donuyor. Güncellemeden önce her şey yolundaydı, uzmanın tüm parametreleri ve kodu aynı kaldı.
sıralama
Optimizasyon başlar . Broker Keşfi. Gerçek hesap. Araçlar: Si Splice, Vtb Splice, Si 9.16, Vtb 9.16 (diğerlerini denemedim). Aralık ay, dakika, 15 dakika. Açılış fiyatları veya OHLC.
Sonuç
Aracılar - yerel ve uzak 2000 geçişten sonra aslında donar, yüzde yüklenir, değişiklikler 10 dakikada yaklaşık yüzde 0,01 olur. 14 ajan.
Beklenen Sonuç
Önceki yapıdaki gibi optimizasyon geçişi.
ek bilgi
Hakkımda: .net programcısı, MQL 5, deneyimli
Aynı zamanda, bir tür önbelleğe alma meydana gelir, çünkü. eğer hiçbir şey değişmezse, zaman tahmin edilemeyen herhangi bir yönde 1-2 saniye değişir.
:) bu açıkçası sadece bir hata, sistemdeki diğer işlemlerin etkisi ve ayrıca disk önbelleği. Her durumda,% 10-15, önbelleğe almanın yapıldığı tüm göstergeler değildir.
Projelerin montajını eski derleyiciler ile yenileri üzerinde karşılaştırmadım, eski derleyiciler her şeyi çok daha hızlı topladı. Sanırım geliştiriciler bu anı kendileri görüyor ve iş parçacığı her şeyi düzelttiğinde :) Sonuçta, her ay birkaç yeni betanın yayınlanması boşuna değil, yani bir şeyler görüp düzeltiyorlar.
Ama herkes susarsa bir şeyi nasıl görecekler! İnsanlar çeşitli hatalardan şikayet ettikleri için yeni betalar yayınlandı. Ama eğer hatalar, onların düzeltilmesi için ağır bir argümansa, o zaman diğer her şey... Onları uzun süre ikna etmeniz gerekiyor. Tüm argümanları açıkça ortaya koymuş, resmi olabildiğince açık bir şekilde özetlemiş gibi görünse bile, hala onlara karşı çıkıyor, ya da dolandırıcı :) Ben de 3 ay önce onları ikna etmeye çalıştım ama kimse desteklemedi onlara.
Ne de olsa, çok az insan MQL'de büyük projeler yapıyor. Ve küçük insanlarda, görünüşe göre, fazladan birkaç saniye yüzünden buhar banyosu yapmıyorlar.
Bu arada, yüzde kaç var?
...hâlâ dinleniyorlar, ya kancaya ya da dolandırıcı :)
kötü aradım. https://www.mql5.com/ru/forum/88768/page2#comment_2587760
Terminalin sürümü ve bitliği
v.1375, 64 bit
problemin tanımı
En son yapıyı güncelledikten sonra, aracılar optimizasyon sırasında ilk 1900-2100 geçişinden sonra donuyor. Güncellemeden önce her şey yolundaydı, uzmanın tüm parametreleri ve kodu aynı kaldı.
sıralama
Optimizasyon başlar . Broker Keşfi. Gerçek hesap. Araçlar: Si Splice, Vtb Splice, Si 9.16, Vtb 9.16 (diğerlerini denemedim). Aralık ay, dakika, 15 dakika. Açılış fiyatları veya OHLC.
Sonuç
Aracılar - yerel ve uzak 2000 geçişten sonra aslında donar, yüzde yüklenir, değişiklikler 10 dakikada yaklaşık yüzde 0,01 olur. 14 ajan.
Beklenen Sonuç
Önceki yapıdaki gibi optimizasyon geçişi.
ek bilgi
Hakkımda: .net programcısı, MQL 5, deneyimli
Bu davranış herhangi bir Uzman Danışmanda gözlemleniyor mu?
Günlükler yine de zarar vermez. Servis masasına bir bilet gönderin.
Terminal günlükleri - güzel, strateji test cihazının ve test aracılarının günlükleri daha ilginç.
+ Biletinize Uzman Danışmanınızın en az EX5'ini ekleyin (araştırmadan sonra kaldıracağız) + optimizasyonda kullanılan parametrelerin açıklaması.