Hatalar, hatalar, sorular - sayfa 2490

 
Slava :

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.

ve belgeleri birçok kez okuyun. Ama resimleri yeni başlatılan bir terminalde yaptım. Pencerede sadece 5000 çubuk vardı, yenilerinin henüz yüklenmeye zamanı olmamıştı.

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.

 
Igor Makanu :

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?

 
Alexey Viktorov :

İ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:

 if (...) Buf[i] = high[i]; else Buf[i] = EMPTY_VALUE ;

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)

 
Igor Makanu :

"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 ;
 
Alexey Viktorov :

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)

;)

 
Igor Makanu :

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
 
Artyom Trishkin :
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 ...

 
Igor Makanu :

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

test edilmiş MT4:

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

MT geliştiricileri, her zaman olduğu gibi zirvede!
 
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. Tek gördüğüm, belirli bir dosyada belirli bir satırdan sonra tanımlanan tüm makroların artık diğer dosyalarda vurgulanmadığı. Benzer bir şey gören başka biri var mı?
 
Alexey Navoykov :
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.