Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri - sayfa 167
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
Kısa bir kodu okumakta zorlanacağınızı düşünmedim, ardından https://www.mql5.com/en/docs/trading/ordercalcmargin yardımını okuyun.
Teşekkürler, zaten anladım)
MQL5 öğrenmeye yeni başladım. Muhtemelen doğru başlıkta değil soruyu sordu
Çapraz platform farkı ArrayCopy.
Açıkçası, fark olmaması için yazmanız gerekiyor
veya
veya bu bağlamda varsayılan olarak her şey
Açıkçası, fark olmaması için yazmanız gerekiyor
veya
veya bu bağlamda varsayılan olarak her şey
Sorun burada.
İşlev sıfır döndürürse, MQL4 ve MQL5 farklı sonuçlara sahip olacaktır.
Sorun burada.
İşlev sıfır döndürürse, MQL4 ve MQL5 farklı sonuçlara sahip olacaktır.
Bu nedenle GetAmountToCopy() işlevinde, işlevin sıfır döndürmesi durumunda bu sorun çözülebilir.
Örneğin:
Sorun burada.
İşlev sıfır döndürürse, MQL4 ve MQL5 farklı sonuçlara sahip olacaktır.
Orada ne beklediğiniz çok açık değil. GetAmountToCopy()'den döndürmek için birkaç seçenek olabilir.
0 - hiçbir şeyi kopyalamazsanız (anladığım kadarıyla sorunu yaratan koşul budur) ve -1 - tüm diziyi kopyalayın, o zaman açıkçası dönüş değerlerini 0'dan farklı olarak ayarlamanız gerekir ve -1 hiçbir şey kopyalamanız gerekmiyorsa. Örneğin, EMPTY_VALUE döndürün. Bu durumda, önce GetAmountToCopy() öğesinden kendisine ne iletildiğini kontrol eden, muhtemelen aşırı yüklenmiş bir ArrayCopy() işlevi yapmanız gerekir. EMPTY_VALUE ise, fonksiyondan çıkın. Aksi takdirde, WHOLE_ARRAY sabiti kullanıldığında, kopyalanan verinin boyutu hem MQL5 hem de MQL4'te doğru şekilde seçilecektir.
Orada ne beklediğiniz çok açık değil.
MQL4/5 farkını atlamanın olası uygulamaları hakkında neden yazdığınızı tam olarak anlayamadım. Bu farklılıkları platformlar arası kod yazanlar için not ettim.
Yazıda zaten farklılıklar birikmiş... Biri yazardı.
MQL4/5 farkını atlamanın olası uygulamaları hakkında neden yazdığınızı tam olarak anlayamadım. Bu farklılıkları platformlar arası kod yazanlar için not ettim.
Yazıda zaten farklılıklar birikmiş... Biri yazardı.
Bunun bir soru olduğunu düşündüm. İyi. Mesajlarımı silebilirim.
Daha önce sadece şüpheliydi, şimdi doğrulandı. Kaynaklarla çalışırken, bellek sızıntısı almak kolaydır.
Misal.
SB üzerinden komut dosyası, bir grafikte sayısal bir dizinin grafiğini görüntüler. Daha sonra bu grafiği (nesneyi) manuel olarak silebilirsiniz, ancak bu grafiğe atanan kaynak salt okunur modda sonsuza kadar bellekte kalacaktır. Silmek mümkün olmayacak çünkü. yalnızca ana bilgisayar komut dosyası onu silebilir (vurgulanan satıra bakın).
MQL'de bu kadar çok dolu belleği boşaltmak için hiçbir işlevsellik yoktur. Bir VPS'de buna özellikle dikkat edin.
Eskiden şüphelenirdim ama şimdi doğrulandı. Kaynaklarla çalışırken, bellek sızıntısı almak kolaydır.
Misal.
SB üzerinden komut dosyası, bir grafikte sayısal bir dizinin grafiğini görüntüler. Daha sonra bu grafiği (nesneyi) manuel olarak silebilirsiniz, ancak bu grafiğe atanan kaynak salt okunur modda sonsuza kadar bellekte kalacaktır. Silmek mümkün olmayacak çünkü. yalnızca ana bilgisayar komut dosyası onu silebilir (vurgulanan satıra bakın).
MQL'de bu kadar çok dolu belleği boşaltmak için hiçbir işlevsellik yoktur. Özellikle VPS'de dikkatli olun.
Bir bellek sızıntısı iletisi aldığınızda, bu belleği boşaltmak için açık bir komut olmadığı anlamına gelir.
Program çıktığında (yani, işlemin sonunda bu tür mesajları alırsınız), her durumda, sızdırılmış olan da dahil olmak üzere tüm belleği boşaltır.