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
Yardım plz, MEditor5'te sihirbaz olarak bir danışman yapıyorum, onu derliyorum, çizelgeye koyuyorum ve (danışman) çöküyor, yani. simgesi belirir ve kaybolur
Yani test cihazı veya MQL5 runtime hatası yok ama programcının bariz hatası var.
Um. Programcı, programın kendisi için beklenmedik davranışını keşfetti , bu davranışın özünü ortaya çıkardı, açıkça yeniden üretti, saçmalık noktasına getirerek en basit açıklayıcı örneği verdi ( Negatif değerlerle uyu ) ve onun için bu bir programcının hatasıdır :) Bir "programcının hatası", örneğin, test cihazındaki Uyku işlevinin çalışmadığının açık bir ifadesi olsa da.
Yukarıdaki açıklamalardan, geliştiricilerin Sleep() işlevi için negatif değerler kullanmanın kabul edilebilir olduğunu düşündükleri anlaşılmaktadır. Ancak, işlevin açıklamasından ("...mevcut Expert Advisor'ın veya komut dosyasının yürütülmesini belirli bir aralık için geciktirir"), gecikme aralığının negatif sayılar olarak hesaplanabileceğini varsaymak zordur. ..Ve hatalardan bahsettiğimiz için, terminalin Sleep() işlevinde negatif değerleri kullanmayı bırakması gerektiğine dair ifademi bu şekilde düşünebilirsiniz.
Um. Programcı, programın kendisi için beklenmedik davranışını keşfetti , bu davranışın özünü ortaya çıkardı, açıkça yeniden üretti, saçmalık noktasına getirerek en basit açıklayıcı örneği verdi ( Negatif değerlerle uyu ) ve onun için bu bir programcının hatasıdır :) Bir "programcının hatası", örneğin, test cihazındaki Uyku işlevinin çalışmadığının açık bir ifadesi olsa da.
Yukarıdaki açıklamalardan, geliştiricilerin Sleep() işlevi için negatif değerler kullanmanın kabul edilebilir olduğunu düşündükleri anlaşılmaktadır. Ancak, işlevin açıklamasından ("...mevcut Expert Advisor'ın veya komut dosyasının yürütülmesini belirli bir aralık için geciktirir"), gecikme aralığının negatif sayılar olarak hesaplanabileceğini varsaymak zordur. ..Ve hatalardan bahsettiğimiz için, terminalin Sleep() işlevinde negatif değerleri kullanmayı bırakması gerektiğine dair ifademi bu şekilde düşünebilirsiniz.
Yedelkin, fonksiyon parametrelerinin derleyici tarafından kontrol edilmesini nasıl hayal ediyorsunuz? Ancak parametre değerlerini kontrol etmesi gereken bir düzineden fazla fonksiyon vardır.
Burada ikisinden biri - ya derleme hızı ya da toplam paranoyak kontrol.
İlk yolu tuttuk. Aynı zamanda, yürütme alt sistemi, yürütme aşamasında geçersiz parametreleri atlamaz ve GetLastError işlevi kullanılarak alınabilecek bir hata kodu oluşturur.
Gerçek programlama dünyasına hoş geldiniz.
Ve görünüşe göre, negatif bir gecikme değeriyle, girmeden önce Uyku'dan çıkacağınızı mı bekliyordunuz?
Beklenti varsayımı yanlıştır.
Negatif değerlerle çalışmak hiç de beklenmiyordu. Yukarıdaki mesajıma bakın: " İşlevin açıklamasından ("...mevcut Expert Advisor'ın veya komut dosyasının yürütülmesini belirli bir aralık için geciktirir") gecikme aralığının negatif sayılar olarak hesaplanabileceğini varsaymak zordur ". Ve bu "bekleyebileceğim" şeyle ilgili değil, aslında SLeep işlevinin negatif değerlerle çalışmanıza izin vermesiyle ilgili. Öğrenildiğinde - mesajı gönderdi. Sleep() işlevinin bu tür çalışmasını kabul edilebilir buluyorsanız, öyle kalacaktır.
ama aslında SLeep işlevi negatif değerlerle çalışmanıza izin verir.
Beklenti varsayımı yanlıştır.
Negatif değerlerle çalışmak hiç de beklenmiyordu. Yukarıdaki mesajıma bakın: " İşlevin açıklamasından ("...mevcut Expert Advisor'ın veya komut dosyasının yürütülmesini belirli bir aralık için geciktirir") gecikme aralığının negatif sayılar olarak hesaplanabileceğini varsaymak zordur ". Ve bu "bekleyebileceğim" şeyle ilgili değil, aslında SLeep işlevinin negatif değerlerle çalışmanıza izin vermesiyle ilgili. Öğrenildiğinde - mesajı gönderdi. Sleep() işlevinin bu tür çalışmasını kabul edilebilir buluyorsanız, öyle kalacaktır.
Tabii ki, iç temsil imzasız.
Parametre tipinin uint olarak değiştirilmesini talep edebilirsiniz.
Yedelkin, fonksiyon parametrelerinin derleyici tarafından kontrol edilmesini nasıl hayal ediyorsunuz? Ancak parametre değerlerini kontrol etmesi gereken bir düzineden fazla fonksiyon vardır.
Burada ikisinden biri - ya derleme hızı ya da toplam paranoyak kontrol.
İlk yolu tuttuk. Aynı zamanda, yürütme alt sistemi, yürütme aşamasında geçersiz parametreleri atlamazve GetLastError işlevi kullanılarak alınabilecek bir hata kodu oluşturur.
Evet beyler, her zaman yanınızdayım! :) Ve programlamada bildiklerinizin sadece küçük bir kısmını biliyorum (sadece MQL5 Referansını kullanıyorum). Ama kişisel olarak benim için net olmayan bazı anlar görürsem, bunun hakkında yazarım. Mümkünse "anlaşılmaz an"ın net bir örneğini vermeye çalışıyorum. Yol boyunca, bu anın neden benim için anlaşılmaz olduğunu açıklıyorum. Buna göre, "alarmın yanlış" olduğunu düşünüyorsanız, o zaman referans materyallerini yanlış anladığım veya referans materyallerin anı anlamak için gerekli tüm bilgileri yansıtmadığı ortaya çıkıyor. Bu durumda "Uyku işlevi" bölümünde (1) "derleyicinin işlev parametresinin değerini kontrol etmediği ve bu nedenle işlevin negatif değerlerle çalışabileceğine dair bir gösterge (uyarı) olması benim için yeterli olacaktır. " ve (2) "Uyku İşlevi ( ) test cihazı tarafından tam olarak desteklenir".
..Derleyici nasıl çalışır - Hiçbir fikrim yok. Derleyicinin çalışmasının açıklanan paradigmasına dayanarak, bir dilek ortaya çıkar: notlarında, parametrelerinin değerlerinin terminal tarafından kontrol edilmediğini düzinelerce fonksiyona yansıtmak.