MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 329
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
Bir dizi öğesinin her eklenmesinden sonra diziyi sıralamaya gerek yoktur. Daha iyi sıralama
yardımdan
Mas[Blizko2] dizideki bir sonraki en küçük değerdir
Cevap için teşekkürler! Lütfen söyleyin, dizinin bir sonraki öğesini belirlemek için zaten bulunan +1 öğesini kullandım, ancak test cihazında bu yerde hata veriyor.
Ve bir sonraki öğeyi tanımlamam gerekiyor. Açıkçası +1, ancak program bir hata veriyor! Başka bir yolu var mı yoksa yanlış mı yapıyorum? Lütfen bana söyle)
Blizko1 = Mas[Blizko2]+ 1 ;ya da böyle??
ancak olası veri kaybı hakkında bir uyarı derlerken
Böyle bir tasarımla
Blizko1 = Mas[Blizko2]+ 1 ;Blizko2 indeksli hücreden elde edilen değere 1 eklersiniz ve fiyat orada saklanır - çift değer. Bir tamsayı eklersiniz 1. Bir uyarıdan kaçınmak için +1.0 yazmanız gerekir.
Ancak bu bile "Rus demokrasisinin babasını" kurtarmaz, çünkü dizine değil, Blizko2 dizinindeki Mas[] dizisinde depolanan değere bir tane ekliyorsunuz.
Bu nedenle, doğal olarak, yakındaki bir dizi hücresinden bir değer elde etmek için, dizine 1 eklemeniz veya çıkarmanız gerekir, ancak burada tökezlediğiniz bir hata düzenlenir: dizin dizinin en uç hücresini gösteriyorsa - ya 0 ya da sonuncusu, sonra 1'i çıkararak ( 0'da) ya da 1 ekleyerek (en son), dizinin ötesine geçeceksiniz - orada böyle bir hücre yok. Buna göre Blizko2+1'in ArraySize(Mas)-1'den büyük veya Blizko2-1'in sıfırdan küçük olmadığından emin olmanız gerekir.
Ve..., döngünün her yinelemesinde diziyi sıralamanız gerekmediği söylendi - frenlere ihtiyacınız var mı?
Dizinin boyutunun 1'den büyük olduğunu kontrol ettikten sonra sıralamanız gerekir.
Ancak bu tasarım genellikle neden açık değildir:
Bakın: Blizko2'de fiyat ile dizi hücresinin indeksine sahipsiniz.
Ardından diziye - Blizko2+1 hücresine - Blizko1 değişkeninin içerdiği değeri (neden???) - orada da fiyatlarınız olmalı ve onları anlaşılmaz değerlerle dolduruyorsunuz.
Gerçekte ne yaptığınızı bulmanız gerekiyor - sadece işlevinizin her satırını yorumlayın. Düşünceli bir şekilde.
Böyle bir tasarımla
Blizko2 indeksli hücreden elde edilen değere 1 eklersiniz ve fiyat orada saklanır - çift değer. Bir tamsayı eklersiniz 1. Bir uyarıdan kaçınmak için +1.0 yazmanız gerekir.
Ancak bu bile "Rus demokrasisinin babasını" kurtarmaz, çünkü dizine değil, Blizko2 dizinindeki Mas[] dizisinde depolanan değere bir tane ekliyorsunuz.
Bu nedenle, doğal olarak, yakındaki bir dizi hücresinden bir değer elde etmek için, dizine 1 eklemeniz veya çıkarmanız gerekir, ancak burada tökezlediğiniz bir hata düzenlenir: dizin dizinin en uç hücresini gösteriyorsa - ya 0 ya da sonuncusu, sonra 1'i çıkararak ( 0'da) ya da 1 ekleyerek (en son), dizinin ötesine geçeceksiniz - orada böyle bir hücre yok. Buna göre Blizko2+1'in ArraySize(Mas)-1'den büyük veya Blizko2-1'in sıfırdan küçük olmadığından emin olmanız gerekir.
Ve..., döngünün her yinelemesinde diziyi sıralamanız gerekmediği söylendi - frenlere ihtiyacınız var mı?
Dizinin boyutunun 1'den büyük olduğunu kontrol ettikten sonra sıralamanız gerekir.
Ancak bu tasarım genellikle neden açık değildir:
Bakın: Blizko2'de fiyat ile dizi hücresinin indeksine sahipsiniz.
Ardından diziye - Blizko2+1 hücresine - Blizko1 değişkeninin içerdiği değeri (neden???) - orada da fiyatlarınız olmalı ve onları anlaşılmaz değerlerle dolduruyorsunuz.
Gerçekte ne yaptığınızı bulmanız gerekiyor - sadece işlevinizin her satırını yorumlayın. Düşünceli bir şekilde.
Anlamlı cevap için teşekkürler! Dizi oluşturma amacım, fiyatın altındaki ve varsa fiyatın üzerindeki en yakın emirlerin fiyatlarını belirlemektir. Ve eğer öyleyse ve onlardan fiyata olan mesafe belirli bir mesafeyi aşarsa, ilgili emirleri açın. Böyle görünmesi gerektiğini düşündüm (Burada eylemlerimin mantığını elimden geldiğince anlattım)
böyle arardım
böyle arardım
Teşekkür ederim! DBL_MAX en üst düzeyde ne anlama geliyor ?
Teşekkür ederim! DBL_MAX ne anlama geliyor?
Hatta bir bağlantı eklemiş akıllı bir forum motorunuz var. Cevap beklemektense onu takip etmek daha kolay.
Hatta bir bağlantı eklemiş akıllı bir forum motorunuz var. Cevap beklemektense onu takip etmek daha kolay.
Teşekkür ederim! Böyle bir motor istiyorum)))
Anlamlı cevap için teşekkürler! Dizi oluşturma amacım, fiyatın altındaki ve varsa fiyatın üzerindeki en yakın emirlerin fiyatlarını belirlemektir. Ve eğer öyleyse ve onlardan fiyata olan mesafe belirli bir mesafeyi aşarsa, ilgili emirleri açın. Böyle görünmesi gerektiğini düşündüm (Burada eylemlerimin mantığını elimden geldiğince anlattım)
Bu satırdaki yorumda bir hata var.
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
MQL4, yardım ve algoritmalar ve kodlar hakkında herhangi bir acemi sorusu
Alexey Viktorov , 2017.10.04 09:32
yardımdan
Geri dönüş değeri
Bulunan ilk öğenin dizinini döndürür. Aranan değer bulunamazsa, arama değerinin bulunduğu öğelerin en yakın alt değerinin dizinini döndürür .
Mas[Blizko2] dizideki bir sonraki en küçük değerdir.
Sadece yardımın diziyi sıralama yönüne bağımlılık hakkında söylemediğini eklemek için kalır. Bu nedenle, ArrayBsearch'ten sonra herhangi bir manipülasyon gerekli değildir. Görev zaten tamamlandı.
Sonra Artyom her şeyi çiğnedi. Sınırların dışına atlamamak için dizinin sıfıra eşit olup olmadığını ve dizinin boyutunu kontrol edin...
Farenin yalnızca düğmeye bastıktan sonra izlemeye başlaması nasıl yapılır. Sonra şöyle bir durum oluyor (teorik olarak danışmandan mouse ile stop tüm emirler için tek bir noktaya aktarılıyor) butona tıkladığımda butonun bulunduğu fiyattaki tüm emirler için stop hemen aktarılmaya başlıyor. basıldı. Bu özelliği beğen if(id==CHARTEVENT_CLICK)
sadece bu butona tıkladıktan sonra çalıştırın if( ObjectGetInteger (0,"cm STOP ALL",OBJPROP_STATE))
Farenin yalnızca düğmeye bastıktan sonra izlemeye başlaması nasıl yapılır. Ve sonra şöyle bir durum oluyor (teorik olarak danışmandan fare ile tıklanarak stop tüm emirler için tek bir noktaya aktarılıyor) butona tıkladığımda butonun bulunduğu fiyattaki tüm emirler için stop hemen aktarılmaya başlıyor. basıldı. Bu özelliği beğen if(id==CHARTEVENT_CLICK)
sadece bu butona tıkladıktan sonra çalıştırın if(ObjectGetInteger(0,"cm STOP ALL",OBJPROP_STATE))