Hatalar, hatalar, sorular - sayfa 440

 
Renat :
Lütfen, negatif değerinizin sonucunu hesaplayın, bunu 32 bit int ile ilişkilendirin, ardından aritmetik taşma hakkında okuyun ve 17 gününüzü bulun.

Gerçek programlama dünyasına hoş geldiniz.

Evet, "17 gün nereden geldi ?" diye sormadım. :) Tekrar ediyorum: Test cihazında anlaşılmaz bir durum keşfettim, söylendi - (1) Sleep() işlevinin de sıfır olmayan bir gecikme vererek negatif değerlerle çalıştığı, (2) Sleep()'in çalışmasıyla ilgili açıklamalar aldım. ) işlevi test cihazında taklit edilir. Geliştiriciler bunu kabul edilebilir buluyorsa, itiraz edilecek ne var? Tam olarak 17 gün saymaya gerek yok.

Документация по MQL5: Общие функции / Sleep
Документация по MQL5: Общие функции / Sleep
  • www.mql5.com
Общие функции / Sleep - Документация по MQL5
 
stringo :
Teklifin nedir? Programı çökertmek mi?
Sistemin nasıl çalıştığını bilmeden bir şey önermek zor. Amacım soruyu dile getirmek ve sonra - kendi takdirinize bağlı olarak. Bu sefer sorunun, terminalin mevcut ideolojisine tamamen uyduğu ortaya çıktı. Peki, o zaman daha fazlasını bileceğim.
 
uncleVic :

Evet. Fili fark etmedik.

Bu satırda güçlü şüphelerim olan bir şey var:


ve bizim durumumuzda:

Derleyicinin bunu kaçırmaması gerektiğini düşünüyorum. Neye sahipsin? Bir uyarı bile yok mu? Değilse , Hizmet Masasına bir talep gönderin . TAMAM?


bir başvuru yaptı #154746

s1.open dizisindeki maksimum/minimum değere sahip elemanın sıra sayısı nasıl alınır?

 
Yedelkin :

Bu durumda, "Uyku işlevi" bölümünde bir göstergenin olması benim için yeterli olacaktır ... (2) "Uyku () işlevi, test cihazı tarafından tam olarak desteklenmektedir."

Test etmeyle ilgili ana konuları MetaTrader 5'te Test Temelleri adlı ayrı bir makalede özellikle ele aldık. İçinde, test cihazında belirli işlevleri kullanırken nüansların çoğunu açıklamaya çalıştık. Sleep() işlevi dahil:

Test cihazında Sleep() işlevi

Sleep() işlevi, bir grafik üzerinde çalışırken bir Uzman Danışman veya komut dosyasında bir mql5 programının yürütülmesini bir süre askıya almanıza olanak tanır. Bu, talep anında henüz hazır olmayan herhangi bir veri talep edilirken gerekli olabilir ve hazır olma anını beklemek gerekir. Sleep() işlevinin kullanımına ilişkin ayrıntılı bir örnek, Veri erişimini organize etme bölümünde bulunabilir.

Test cihazında Sleep() çağrıları test sürecini geciktirmez. Sleep() çağrıldığında, oluşturulan tikler belirtilen gecikme içinde "oynanır" ve bunun sonucunda bekleyen emirler, durmalar vb. tetiklenebilir. Sleep() çağrıldıktan sonra, test cihazında simüle edilen süre, Uyku fonksiyonunun parametresinde belirtilen aralık kadar artırılır.

Sleep() işlevinin yürütülmesinin bir sonucu olarak, test cihazındaki geçerli saat, test süresinin sonunu aşmışsa, bir "infinite loop in Sleep" hatası alınır. Böyle bir hata alındığında test sonuçları atılmaz, tüm hesaplamalar eksiksiz yapılır (işlem sayısı, düşüm vb.) ve bu testin sonuçları terminale iletilir.

Sleep() işlevi, çağrıldıktan sonra test süresinin test aralığının dışında olması garanti edildiğinden OnDeinit() içinde çalışmayacaktır.



Pirinç. 7. MetaTrader 5 terminalinin test cihazında Sleep() işlevini kullanma şeması.

 
Rosh :

Test etmeyle ilgili ana konuları MetaTrader 5'te Test Temelleri adlı ayrı bir makalede özellikle ele aldık. İçinde, test cihazında belirli işlevleri kullanırken nüansların çoğunu açıklamaya çalıştık. Sleep() işlevi dahil:

Üzgünüm, bu gerçekten benim canim. 9 ay boyunca test yapmadım - ve makaleyi kaçırdım.

..Önemli makalelerden bahsedilmesi Rehberin ilgili bölümlerinde yer alsaydı iyi olurdu (geçen yıl buna benzer bir şey önermiştim, ama bugün tekrarlamak için bir fırsat). Hepimiz önce F1'i kullanırız.

 
Demek istediğimi yapmadın.

Burada aritmetik taşma ile ilgili en basit hatanıza dikkat çekmeye çalışan birkaç kişi var.
 
Renat :
Demek istediğimi yapmadın.

Burada aritmetik taşma ile ilgili en basit hatanıza dikkat çekmeye çalışan birkaç kişi var.

================================================= ===========

Sen sordun:

Renat :
Lütfen negatif değerinizin sonucunu sayın, 32 bit int ile ilişkilendirin, ardından aritmetik taşma hakkında okuyun ve 17 gününüzü bulun ...

Cevap verdim: Evet, "17 gün nereden geldi?" diye sormadım. :) vb.

Şu anki sorunuzu cevaplıyorum. Sorduğun şey yapılmadı. Bu dün tarafımdan yapıldığından (aynı zamanda, biraz farklı başlangıç verilerim vardı, ancak neler olup bittiğinin özünü anladım). Bir senaryo çizdi. Bu betiği biri derlemiş olsaydı, iki uyarı verilirdi. Taşma / kesme - Dün kendim çözdüm.

Sorular, (1) işlevinin argümanın negatif değerleriyle neden çalıştığı ve (2) bu tür argümanların varlığında test cihazında bir gecikme ürettiğiydi. Bir kez daha int türünün taşmasıyla bir "programcı hatasına" işaret ediyorsunuz. - Yani Sleep() işlevi bağımsız değişkeni seçildiğinde "taşan değer" belirtildiği için test durumumu reddediyorum. Ama "değerin taşması"nda bir sorunun özü değil. Bu, test senaryosuna sadece ekstra bir dokunuş. Tartışmaya katılanlar bunu anlamış görünüyor ... Sonunda, test örneğinde, "kalabalık olmayan bir değer" ekleyebilirsiniz - diğer tüm şeyler eşit olduğunda, sorunun özü aynı kalacaktır (sorunun kendisi) zaten çözüldü).

Her durumda, tavsiye için teşekkürler. Çünkü derleyici uyarmasaydı, tavsiyeniz büyük olasılıkla çok yardımcı olurdu ve sizi düşündürürdü.

 

Kullanım kısıtlamaları nelerdir? W =(uzun)ChartGetInteger(Chart_ID[i],CHART_WIDTH_IN_PIXELS,0);
H =(uzun)ChartGetInteger(Chart_ID[i], CHART_HEIGHT_IN_PIXELS ,0);
W_B =(uzun)ChartGetInteger(Chart_ID[i],CHART_WIDTH_IN_BARS,0);

void OnInit() öğesinden işlevleri çağırıyorum, ancak void OnTick() öğesinden veriler yanlış, özellikle CHART_WIDTH_IN_BARS görünür çubukların sayısını veriyor, ancak grafiğe sığan çubukların sayısını vermemesi gerektiğini anlıyorum. telafi etmek

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков - Документация по MQL5
 
Virty :

İlkel soru için özür dilerim.

Takas talebi yürütülmez. Hata 10014 - İstekte yanlış hacim.

Danışmanın içinden şu anda satın alabileceğim maksimum ve minimum lot hacmi nasıl anlaşılır/hesaplanır?

OrderCheck işlevi uygun değil çünkü sadece kontrol eder, ancak mümkün olduğunca kaç lot satın alabileceğinizi söylemez.

ENUM_SYMBOL_INFO_DOUBLE numaralandırmasına ve ilgili işleve bakın. Ondan mı bahsediyorsun?
 
Yedelkin :
ENUM_SYMBOL_INFO_DOUBLE numaralandırmasına ve ilgili işleve bakın. Ondan mı bahsediyorsun?
Evet. Teşekkür ederim. SYMBOL_VOLUME_MAX Kendim buldum ve sen yardım ettin.
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5