İş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.
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.
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.
MQL5.com web sitesine giriş yapmak için çerezlerin kullanımına izin vermelisiniz.
Lütfen tarayıcınızda gerekli ayarı etkinleştirin, aksi takdirde giriş yapamazsınız.
Hesabınıza giriş yaptınız. İki faktörlü kimlik doğrulama devre dışı bırakıldı. Yeniden kurup yeni bir QR kodu tarayın veya iki faktörlü kimlik doğrulama devre dışıyken devam edin.
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.