Hatalar, hatalar, sorular - sayfa 2490
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
Aşağıdaki yazıdaki alıntımı dikkatlice okudunuz mu?
Bu davranış, " grafik başına maksimum çubuk" ayarının tanıtılmasından, yani MT4'ün başlangıcından beri her zaman olmuştur. Ve bu 15 yılda neden her defasında bar sayısını bu ayara göre kesmediğimizi defalarca açıkladık. Ve şimdi her seferinde kesmiyoruz.
Belgeleri kimse okumuyor. Ama bu bir paradoks. Hala okumadıkları belgelere başka bir şey yazmamızı istiyorlar
Slava, hiçbir şikayetim yok. Dikkatlice okudum ve sadece alıntınızı ve bunu değil
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
Hatalar, hatalar, sorular
Slava , 2019.06.29 18:25
oranları_toplam her zaman geçerli grafikte mevcut olan çubukların sayısını gösterir.
cümlenizin anlamını anlamadım
ve bu
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
Hatalar, hatalar, sorular
Slava , 2019.06.29 18:42
Şu anda yardım teklif etmek için elimde bir istemci terminali yok. Bir mobil cihazdan iki tıklamayla https://www.metatrader5.com/en/terminal/help/startworking/settings#max_bars
Özel paragraf
Daha ekonomik bir hesaplama için, göstergelerde "Pencere başına maksimum çubuk" parametresinde belirtilenden daha fazla çubuk bulunabilir. Yeni çubuklar geldiğinde , eski çubuklar veri önbelleğinden hemen kaldırılmaz. Bu, göstergenin her yeni çubukta tamamen yeniden hesaplanmasına değil, yalnızca yeni çubuklar için değerlerinin hesaplanmasına izin verir.
Elbette bir şeyi yanlış anladım, bu yüzden anlamaya çalışmak için tekrar soruyorum. Ve sanırım herhangi bir değişiklik olmayacak. Lütfen yorumlarımı şikayet olarak algılamayın.
yardım doğru değil, yanıltıcı, burada yazdı https://www.mql5.com/ru/forum/304239/page57#comment_11519307
MQL5'teki arabellekler genellikle sıradan diziler gibi çalışırken, MT4'te arabellekler bir şekilde terminal tarafından işlenir - ya EMPTY_VALUE içinde sıfırlanırlar, sonra ... MT5 ve MT4 göstergelerinin çalışması arasındaki farkı nereye yazdığımı hatırlamıyorum
ve MT5'te her şeyi kendiniz yaparsınız - arabellekleri temizlemeniz gerekir - normal bir dizi gibi temizlenir, terminal yalnızca arabellek dizisinin boyutunu ayarlar
İgor, basit bir Rusça ile açıklayabilir misin: Gösterge tamponunun her bir deliği, orada bulunan çöpün yerini alacak bazı değerlerle doluysa, bu delikleri gerekli değerlerle doldurmadan önce zorla temizlemenin amacı nedir? Yürütme hızı kaybı için mi?
İgor, basit bir Rusça ile açıklayabilir misin: Gösterge tamponunun her bir deliği, orada bulunan çöpün yerini alacak bazı değerlerle doluysa, bu delikleri gerekli değerlerle doldurmadan önce zorla temizlemenin amacı nedir? Yürütme hızı kaybı için mi?
"delikleri" doldurmak sadece "oklar" olan göstergede kritiktir, MT4'te gösterge başlatıldığında, bu "delikler" otomatik olarak EMPTY_VALUE değeri ile doldurulacaktır.
MT5'te programcı bunu yapmalıdır
veya MT5'te programcı gösterge arabelleklerini if() else yapısı aracılığıyla doldurmalıdır.
onlar. MT4'te şöyle çalışacak:
if (...) Buf[i] = high[i];
MT5'te şunları yazmalısınız:
veya MT5'te gösterge arabelleklerini temizlemeniz gerekir, aksi takdirde gösterge, TF'yi değiştirirken gösterge arabelleği tarafından bağlanan diziden "çöp" çekecektir .... genel olarak, nasıl yazılacağı ve ne yazılacağı bir zevk meselesidir. dikkate almak
not: hız? peki, hızı ölçün, vakaların %99'unda yerleşik işlevler daha hızlıdır, ancak genellikle performansta bir tutarsızlık bulmanın bir yolu yoktur, EMPTY_VALUE döngüsündeki her çubuğun ne doldurulacağı, neyin bir kez ArrayInitialize(Buf) aracılığıyla başlatılacağı ,BOŞ_VALUE)
"delikleri" doldurmak sadece "oklar" olan göstergede kritiktir, MT4'te gösterge başlatıldığında, bu "delikler" otomatik olarak EMPTY_VALUE değeri ile doldurulacaktır.
MT5'te programcı bunu yapmalıdır
veya MT5'te programcı gösterge arabelleklerini if() else yapısı aracılığıyla doldurmalıdır.
onlar. MT4'te şöyle çalışacak:
MT5'te şunları yazmalısınız:
veya MT5'te gösterge arabelleklerini temizlemeniz gerekir, aksi takdirde gösterge, TF'yi değiştirirken gösterge arabelleği tarafından bağlanan diziden "çöp" çekecektir .... genel olarak, nasıl yazılacağı ve ne yazılacağı bir zevk meselesidir. dikkate almak
not: hız? peki, hızı ölçün, vakaların %99'unda yerleşik işlevler daha hızlıdır, ancak genellikle performansta bir tutarsızlık bulmanın bir yolu yoktur, EMPTY_VALUE döngüsündeki her çubuğun ne doldurulacağı, neyin bir kez ArrayInitialize(Buf) aracılığıyla başlatılacağı ,BOŞ_VALUE)
Bütün bunlar sadece dalga geçiyor. İşte böyleydi, o kadar çok istiyorum ki, alışkanlıklarınızı ve diğer sebeplerinizi değiştirmek zor.
if else yapısı kolaylıkla şu şekilde değiştirilebilir:
Buf[i] = условие ? high[i] : EMPTY_VALUE ;
Bütün bunlar sadece nitpicking. İşte böyleydi, o kadar çok istiyorum ki, alışkanlıklarınızı ve diğer sebeplerinizi değiştirmek zor.
if else yapısı kolaylıkla şu şekilde değiştirilebilir:
Pekala, seçici olmak için, o zaman C++ veya C #'daki performansı artırma ipuçlarında, "koşullu operatör ? : " kullanmamanızı tavsiye ediyorlar, görünüşe göre bir keresinde Habré hakkında bir makale okumuştum (test etmedim, Daha uygun olduğu için kendim yazıyorum)
;)
Pekala, seçici olmak için, o zaman C++ veya C #'daki performansı artırma ipuçlarında, "koşullu operatör ? : " kullanmamanızı tavsiye ediyorlar, görünüşe göre bir keresinde Habré hakkında bir makale okumuştum (test etmedim, Daha uygun olduğu için kendim yazıyorum)
;)
Burada derleyici aptal değil ve Habre'deki "guru"dan daha iyi optimize ediyor
böyle durumlarda hep tekrar ederim: "güneş sabah doğar, akşam batar..." - Buradaki mantığı görüyor musunuz? - Evet, bu mantıklı, ama ifademde bilgi var mı? - o değil
sınamayacak mıyım? : , derleyici makinesi .... Habr, iyi ...
sınamayacak mıyım? :
test edilmiş MT5:
2019.06.30 13:37:04.230 tst (EURUSD,H1) if() döngülerini test etme=99999999999 zaman=10859 ms
2019.06.30 13:37:15.116 tst (EURUSD,H1) Test yapmak? : döngü=999999999 zaman=10891 ms
2019.06.30 13:38:05.348 tst (EURUSD,H1) if() döngülerini test etme=99999999999 zaman=10843ms
2019.06.30 13:38:16.190 tst (EURUSD,H1) Test yapmak? : döngü=99999999999 süre=10844 ms
2019.06.30 13:38:32.111 tst (EURUSD,H1) if() döngülerini test etme=99999999999 zaman=10860ms
2019.06.30 13:38:42.955 tst (EURUSD,H1) Test yapmak? : döngü=99999999999 süre=10843ms
2019.06.30 13:46:09.087 tst EURUSD,H1: Test mi ? : döngü=99999999999 süre=33234 ms
2019.06.30 13:45:35.854 tst EURUSD,H1: if() döngülerinin test edilmesi=99999999999 süre=32953 ms
2019.06.30 13:44:43.421 tst EURUSD,H1: Test mi ? : döngü=99999999999 süre=33328 ms
2019.06.30 13:44:10.094 tst EURUSD,H1: if() döngülerinin test edilmesi=99999999999 süre=33016 ms
2019.06.30 13:42:56.925 tst EURUSD,H1: Test mi ? : döngü=99999999999 süre=33344 ms
2019.06.30 13:42:23.584 tst EURUSD,H1: if() döngülerinin test edilmesi=99999999999 süre=32953 ms
Büyük bir projede özel makroların adlarını vurgulamanın her zaman işe yaramadığını uzun zamandır fark ediyorum. Diğer dosyalarda tanımlanan birçok makro, nedense vurgulanmıyor. Şu ana kadar kalıbı çözemedim. Yalnızca belirli bir dosyada belirli bir satırdan sonra tanımlanan tüm makroların artık diğer dosyalarda vurgulanmadığını görüyorum. Benzer bir şey gören başka biri var mı?
Herhangi bir fonksiyonun parametresi olarak yazarsanız, vurgulanmadığını fark ettim. Bunun türün tam bir eşleşmesinden olmadığını düşünüyorum. Ya da daha kesin olarak nasıl adlandıracağımı bilmiyorum.