Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri - sayfa 130
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
Teşekkür ederim. ArraySwap işlevini kullanmak aklıma gelmezdi.
Anladığım kadarıyla, işleviniz boyutta hem artış hem de azalma ile çalışacak, yani. tam bir ArrayResize analogu olarak.
Bir diziyi arttırırken, ArraySwap, ArrayResize, ArrayCopy üç işlevini çağırmaktansa, yalnızca standart ArrayResize'ı çağırmak daha iyi değil mi?
ps Sürümünüzü kontrol ettim ve MqlTick dizisini 1.000.000'dan 500.0000'e düşürürken iki kopya ile benim sürümünüzü kontrol ettim. Sürümünüz 22 milisaniyede başa çıkıyor. Benimki 37-38.Bir diziyi arttırırken, ArraySwap, ArrayResize, ArrayCopy üç işlevini çağırmaktansa, yalnızca standart ArrayResize'ı çağırmak daha iyi değil mi?
Düşündüm ama yapmadım çünkü. aslında daha fazla nüans var. Bu yüzden daha basit versiyona bağlı kalmaya karar verdim.
Nüanslardan biri şudur. Yapıcılar/yıkıcılar içeren bir yapı dizisi alırsanız, ArrayResize bunları her iki yönde de değerler arasındaki farka eşit bir miktarda çağırır.
Ancak ArrayCopy kullanımı, tüm yapıcılara yapılan bir çağrıdır. ArrayTmp kaldırılıyor - tüm yıkıcıları çağırıyor. Yani ArrayResize2 tam olarak ArrayResize değil.
Optimizasyondan sonra bunu göreceksiniz
Expert Advisor'ı çerçeve modunda kapatır ve standart modda çalıştırırsanız, Optimizasyon sırasında aldığı verilerin aynısını gösterecektir.
Bu yaklaşım, tekrar tekrar Optimizasyon sonuçlarına geri dönmenizi sağlar.
PS Danışmanın çerçeve modu için Terminalde açılan çizelgede birden fazla danışman çalıştıramazsınız. Bu nedenle standart modda çalıştırmanız gerekiyorsa, çerçeveler için açılmamış grafikler üzerinde çalıştırmanız gerekir.
fxsaber :
extern теперь является жестко заданным макросом
Buna göre, mq4 kodunun MT5'te değişiklik yapmadan çalışmasını sağlamak her zaman mümkün olmayacaktır.
Belgelerde herhangi bir değişiklik yok. Bunu daha detaylı açıklayabilir misiniz?
Belgelerde herhangi bir değişiklik yok. Bunu daha detaylı açıklayabilir misiniz?
Bu tür kod
her zaman bir uyarı verecektir. "İmkansızlık" ile ilgili olarak - heyecanlandım. Geçersiz kılmak mümkündür, bu nedenle bu tür durumlarda sadece uyarılar her zaman askıda kalır.
Nüanslardan biri şudur. Yapıcılar/yıkıcılar içeren bir yapı dizisi alırsanız, ArrayResize bunları her iki yönde de değerler arasındaki farka eşit bir miktarda çağırır.
Ancak ArrayCopy kullanımı, tüm yapıcılara yapılan bir çağrıdır. ArrayTmp kaldırılıyor - tüm yıkıcıları çağırıyor. Yani ArrayResize2 tam olarak ArrayResize değil.
O zaman ona ArrayReallocate demek muhtemelen daha doğru olur. Her ne kadar böyle bir zorla yeniden kopyalamada bir anlam görmüyorum. Ekstra frenler.
Belleği boşaltmak tek nedendir.