Hatalar, hatalar, sorular - sayfa 2879
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret 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
biraz elden geçirdim
(bu yüzden makro kullanmamak daha iyidir;)
biraz elden geçirdim
(bu yüzden makro kullanmamak daha iyidir;)
test ederken, optimize edicinin boş döngüler atmaması için kodu mümkün olduğunca karıştırırım
sen
// for(int i = 0; i < 5; i++) sum += u.param[i];
MQL yürütmesinin optimizasyonu, ilk döngüyü programdan önce sonlandırabilir, çünkü hesaplanan değerler kullanılmaz, bu nedenle SpeedTest() işleminden sonra sonuçlarla bir şeyler yapmanız gerekir - bu döngü
yorumlanmış bir döngü ile kontrol edildi, onu atmadı, ancak başka bir testte kopabilirsiniz
makrolar zevk meselesi, bu makroyu defalarca kontrol ettim, çalışıyor, aynı şeyi elle yazmak için bir neden göremiyorum
UPD: Modern derleyicilerin nasıl çalıştığını okuduğum yeri buldum, oldukça bilgilendirici
https://habr.com/ru/post/431688/
https://habr.com/en/post/47878/
kod, tutamaçların iRSI değerini verir ve bu şekilde devam eder, her zaman yalnızca 10'dur, ancak fiyatlar ve grafik aynı şekilde değişir.
iRSI(_Symbol, PERIOD_H1,14 ,PRICE_CLOSE)
2652 inşa
kod, tutamaçların iRSI değerini verir ve bu şekilde devam eder, her zaman yalnızca 10'dur, ancak fiyatlar ve grafik aynı şekilde değişir.
iRSI(_Symbol, PERIOD_H1,14 ,PRICE_CLOSE)
2652 inşa
Gösterge kolunu aldın, 10
Ardından, istenen çubuktaki değerleri almanız gerekir.
Yardımı okuyun veya forumda yanıt arayın - birçok
Gösterge kolunu aldın, 10
Ardından, istenen çubuktaki değerleri almanız gerekir.
Yardımı okuyun veya forumda yanıt arayın - birçok
Anladım. Tamponlar hakkında çalışacağım. Her şeyin zaten çalıştığına dair garip bir his vardı, belki mql4 ile karıştırdım.
İstek üzerine Google aracılığıyla bulamamam garip - mql5'teki göstergeden veri alıyorum
Evet, örneğinize göre, anladığım kadarıyla, RSI göstergesinin değeri sonuçta formun bir değişkeninde
kontrol:
2020.10.15 21:48:01.401 HızTst (EURUSD,H1) tst1 : : döngüler=10000000000 ms=10864370
2020.10.15 21:48:12.264 HızTst (EURUSD,H1) tst2 : : döngüler=10000000000 ms=10862287
önemli bir fark değil, testleri değiştirirseniz sonuçların tam tersi olması kuvvetle muhtemeldir.
genellikle kritik değildir.
teste rand() eklemek pek doğru değil, çünkü bu işlev, kaynakları diğer komutlardan çok daha fazla tüketir.
Bence bu daha iyi bir test olurdu:
Sonuç:
Neyse ki, hala yanlış ata bahse giriyorum. Sendikalar biraz daha hızlı. Onlarla çalışmak daha uygundur ve kod daha okunabilirdir.
teste rand() eklemek pek doğru değil, çünkü bu işlev, kaynakları diğer komutlardan çok daha fazla tüketir.
genellikle kritik olmayan
rand() çalışma zamanı sabittir, büyük olasılıkla normal bir C++ işlevidir, google "Rand c++ kaynak kodu"
başlatmak gerekir, ancak sabitlerle başlatırsanız, optimizasyonla karşılaşabilirsiniz.
genel olarak, rand () 'dan hoşlanmadığım belli değil
böyle bir şeyle başlatma seçeneği olarak:
hızlı olacak
betiğinizi başlattı, IMHO doğru değil
ana zaman, kodu önbelleğe ve ardından işlemciye yüklemektir.
peki, sistem zamanlayıcısının ayrıklığını ekleyin
neredeyse rastgele bir sayı alıyoruz
uzun bir süre, yaklaşık 100500 kez test etmeniz gerekiyor, IMHO
teste rand() eklemek pek doğru değil, çünkü bu işlev, kaynakları diğer komutlardan çok daha fazla tüketir.
Bunun daha iyi bir test olacağını düşünüyorum:
Sonuç:
Neyse ki, hala yanlış ata bahse giriyorum. Sendikalar biraz daha hızlı. Onlarla çalışmak daha uygundur ve kod daha okunabilirdir.
birer birer ve ilk galibiyet mesafesinde, (göründüğü gibi, ilk yöntem dönüşüm çizgisini kısa devreden bir şeye kaldırdı)
genellikle kritik olmayan
rand() çalışma zamanı sabittir, büyük olasılıkla normal bir C++ işlevidir, google "Rand c++ kaynak kodu"
başlatmak gerekir, ancak sabitlerle başlatırsanız, optimizasyonla karşılaşabilirsiniz.
genel olarak, rand () 'dan hoşlanmama net değil
böyle bir şeyle başlatma seçeneği olarak:
hızlı olacakölçüm yaparken, tam olarak neyin gerekli olduğunu, gereksiz olmadan ölçmek gerekiyordu.
ölçüm yaparken, tam olarak neyin gerekli olduğunu, gereksiz olmadan ölçmek gerekiyordu.
Numara
yinelenen kod bölümleri varsa - optimizasyon testi yapın!
rand()'ın ne kadar süre çalıştığı ne fark eder?
evet, test süresinin 2/3'ünü çalıştırmasına izin verin, asıl mesele rand()'ın çalışma süresinin sabit olmasıdır
IMHO, sistem işlevlerini yürütmek için bağlamı değiştirmeniz gerekiyor, ancak MQL kodunuz sistem MQL işlevlerini kullanacak mı? - test edilecek ideal kodun anlamı?