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
Bize testimizin tam kodunu verin
tutun, ancak bir seçenek olarak, onu bir inc ++ değişkeni ile değiştirmek için tekrar tartışmak için Rand () kullanmanın amacını görmüyorum
evet... Kodumda bir tür hata var , zamanı saniye cinsinden göstermek istiyorum ama 10 kat daha fazla alıyorum, 1.000.000'a doğru bir şekilde böldüm, bunun nedenini kim söyleyebilir?
tutun, ancak bir seçenek olarak, onu bir inc ++ değişkeni ile değiştirmek için tekrar tartışmak için Rand () kullanmanın amacını görmüyorum
evet... Kodumda bir tür hata var , zamanı saniye cinsinden göstermek istiyorum ama 10 kat daha fazla alıyorum, 1.000.000'a doğru bir şekilde böldüm, bunun nedenini kim söyleyebilir?
SADECE BOMBA
işte aksini kanıtlayan kodunuz
SADECE BOMBA
işte aksini kanıtlayan kodunuz
sadece çekleri değiştirdim
sadece çekleri değiştirdim
2020.11.02 21:01:38.590 22222 (USDCHF,H1) cnt: döngüler = 1000 saniye=821.7159
2020.11.02 21:01:52.353 22222 (USDCHF,H1) ArraySize: döngüler = 1000 saniye=807.9415
Evet, ne testi? ))
Döngü koşulunun her iki çeşidini de kendiniz gösterdiniz.
Igor da yukarıdaki kodu getirdi.
Döngünün yürütülmesini size değişkeni ve döngü koşulunda ArraySize() ile ölçün.
bana aksini kanıtla
ve sonra benim testimde bir nedenden dolayı aynılar
sadece çekleri değiştirdim
evet yapılması gerekiyor
bu sefer tembel
testleri bir dış döngüye sardı, şöyle anladım:
2020.11.02 22:06:43.557 HızTst (EURUSD,H1) ArraySize: döngüler = 1000 saniye=117.4626
2020.11.02 22:06:58.328 HızTst (EURUSD,H1) cnt: döngüler = 1000 saniye=102.7337
2020.11.02 22:07:13.075 HızTst (EURUSD,H1) ArraySize: döngüler = 1000 saniye=87.9782
2020.11.02 22:07:27.850 HızTst (EURUSD,H1) cnt: döngüler = 1000 saniye=73.2461
2020.11.02 22:07:42.598 HızTst (EURUSD,H1) ArraySize: döngüler = 1000 saniye=58.4859
2020.11.02 22:07:57.380 HızTst (EURUSD,H1) cnt: döngüler = 1000 saniye=43.7522
2020.11.02 22:08:12.891 HızTst (EURUSD,H1) ArraySize: döngüler = 1000 saniye=28.9861
2020.11.02 22:08:28.874 HızTst (EURUSD,H1) cnt: döngüler = 1000 saniye=13.4910
evet yapılması gerekiyor
bu sefer tembel
testleri bir dış döngüye sardı, şöyle anladım:
2020.11.02 22:06:43.557 HızTst (EURUSD,H1) ArraySize: döngüler = 1000 saniye=117.4626
2020.11.02 22:06:58.328 HızTst (EURUSD,H1) cnt: döngüler = 1000 saniye=102.7337
2020.11.02 22:07:13.075 HızTst (EURUSD,H1) ArraySize: döngüler = 1000 saniye=87.9782
2020.11.02 22:07:27.850 HızTst (EURUSD,H1) cnt: döngüler = 1000 saniye=73.2461
2020.11.02 22:07:42.598 HızTst (EURUSD,H1) ArraySize: döngüler = 1000 saniye=58.4859
2020.11.02 22:07:57.380 HızTst (EURUSD,H1) cnt: döngüler = 1000 saniye=43.7522
2020.11.02 22:08:12.891 HızTst (EURUSD,H1) ArraySize: döngüler = 1000 saniye=28.9861
2020.11.02 22:08:28.874 HızTst (EURUSD,H1) cnt: döngüler = 1000 saniye=13.4910
Ve şimdi döngüde onları değiştirin - şaşırın
Ve şimdi döngüde onları değiştirin - şaşırın
Şaşırmayacağım, derleyicinin kodu anında optimize edebileceğini biliyorum.
ancak, IMHO, iç içe döngülerde, yine de gereksiz yere ArraySize() öğesini çağırmamalısınız , bu daha kolay ve ben zaten ters döngüyü kullanmaya alışkınım
Tabii ki, bu bazen uygunsuz olur, o zaman geçici bir değişken arasında bir döngü yaparım - seçenek numaranız 2
IMHO, güvenilir ve ne olacağını anlıyorsun
IMHO'ya karşı bir şey söyleyemem.
Çok büyük tekrarlarda, zafer birinci ve ikinci yöntemlerde rastgele oldu ... büyük olasılıkla mevcut anda işlemcinin önbelleğine ve toplam yüke bağlı hale geldi.
Soru döngüyle ilgili değildi - ancak işlevin açılmasıyla ilgiliydi. Tıpkı bir örnek olarak ArraySizehere
Sonuç;
for (int i=0; i<ArraySIze(mas); i++) == for (int i=0; i<size; i++)
Ancak ikinci kısma boyut değişkeni ile başlatma eklersek. daha sonra ilk yöntem, bu değişkeni başlatma ve bir değere eşitleme süresi için liderliği alır., yalnızca büyük tekrarlarla fark edilebilir.
döngünün gövdesindeki dizilerin boyutunu değiştirirseniz, anında optimizasyon artık çalışmaz
bu yüzden kodu değiştirin:
daha sonra ilk yöntem, bu değişkeni başlatma ve bir değere eşitleme süresi için liderliği alır., yalnızca büyük tekrarlarla fark edilebilir.
aşmaz
çalışma zamanı optimizasyonu lider olacak
bu kadar basit makine komutlarını profil oluşturucu olmadan test edemezsiniz, genel olarak bir döngüde istediğinizi yazabilirsiniz, isteğe bağlı olarak, test cihazında test edin, hız bunun için önemlidir