Standart özelliklerin/yaklaşımların alternatif uygulamaları - sayfa 6

 
fxsaber :

Analoglar bile performansta büyük farklılıklar gösterir. Bunları yazabilen veya bulabilen kişi sayısı, kullanıcı yüzdesinden daha azdır.

Duc çünkü insanların geri kalanı mevcut performanstan oldukça memnun) Sonuçta, kalpten, bu ivmelerin çoğu sadece izole test ölçümlerinde fark edilir.

Tabii ki, mükemmellik için çabalamamız gerektiği gerçeğini tartışmıyorum, ancak bunu öncelik sırasına göre yapmak arzu edilir.

 
Alexey Navoykov :

Duc çünkü insanların geri kalanı mevcut performanstan oldukça memnun) Sonuçta, kalpten, bu ivmelerin çoğu sadece izole test ölçümlerinde fark edilir.

Optimizasyonda %1'lik bir kazanç bile somut sonuçlar verir.

Tabii ki, mükemmellik için çabalamamız gerektiği gerçeğini tartışmıyorum, ancak bunu öncelik sırasına göre yapmak arzu edilir.

MQ için, çeşitli nedenlerle ilk beşe geçmeyen bütün bir MT4 ustaları ordusundan daha az ilgi çekicisiniz.

 
Библиотеки: Fast iBarShift and Bars for MT5
Библиотеки: Fast iBarShift and Bars for MT5
  • 2018.05.04
  • www.mql5.com
Fast iBarShift and Bars for MT5: Автор: Nikolai Semko...
Dosyalar:
iBars.mqh  14 kb
 

ceil(), floor(), round() standart işlevlerinin daha hızlı analogları

2-2,5 kat hız artışı

 long Ceil ( double x) { return (x-( long )x> 0 )?( long )x+ 1 :( long )x; }
long Round( double x) { return (x> 0 )?( long )(x+ 0.5 ):( long )(x- 0.5 );}
long Floor( double x) { return (x> 0 )?( long )x:(( long )x-x> 0 )?( long )x- 1 :( long )x; }

doğruluk ve hız testi sonuçları:

 2018.08 . 25 17 : 23 : 23.199 TestRound (EURUSD,M10)  Время выполнения ceil =   3.745 наносекунд, Контрольная сумма = 5250492895
2018.08 . 25 17 : 23 : 23.200 TestRound (EURUSD,M10)  Время выполнения Ceil =   1.806 наносекунд, Контрольная сумма = 5250492895
2018.08 . 25 17 : 23 : 23.205 TestRound (EURUSD,M10)  Время выполнения floor = 4.243 наносекунд, Контрольная сумма = 5249492896
2018.08 . 25 17 : 23 : 23.206 TestRound (EURUSD,M10)  Время выполнения Floor = 1.621 наносекунд, Контрольная сумма = 5249492896
2018.08 . 25 17 : 23 : 23.209 TestRound (EURUSD,M10)  Время выполнения round = 2.984 наносекунд, Контрольная сумма = 5249992896
2018.08 . 25 17 : 23 : 23.211 TestRound (EURUSD,M10)  Время выполнения Round = 1.519 наносекунд, Контрольная сумма = 5249992896
Standart işlevler, double türünü döndürür. Ama tekrarlamadım. Yuvarlak işlevlerin neden double türüne ihtiyaç duyduğunu anlamıyorum.
Dosyalar:
TestRound.mq5  5 kb
 
Nikolai Semko :

doğruluk ve hız testi sonuçları:

Sadece nano değil, mil.

 
fxsaber :

Sadece nano değil, mil.

Nano yok. 1000000 geçer ve 1000'e bölün.
Sadece onlar daha da hızlı çünkü. döngü geçişinin tüm içeriğiyle birlikte sayılır. 3 saat içinde bilgisayara gideceğim ve tamamen bu işlevlerin yürütme süresinin hesaplanmasını düzelteceğim.
 
Nikolai Semko :
Nano yok. 1000000 geçer ve 1000'e bölün.
O zaman belirsiz yorumlama. Bir işlev çağrısının ortalama süresinin değil, döngü süresinin görüntülenmesine karar verdim.
 
fxsaber :
O zaman belirsiz yorumlama. Bir işlev çağrısının ortalama süresinin değil, döngü süresinin görüntülenmesine karar verdim.
Evet, bu süreye üç ekleme ve 1 kontrol yapma süresi de dahildir.
düzelteceğim çünkü nasil OLDUĞUNU biliyorum. Böylece kazanç daha da büyük olacaktır.
 
Nikolai Semko :
Standart işlevler, double türünü döndürür. Ama tekrarlamadım. Yuvarlak işlevlerin neden double türüne ihtiyaç duyduğunu anlamıyorum.

Çünkü double'ı tamsayıya (böylece) dönüştürmek boktan bir koddur. arkadaşlarla tur, bir kayan noktadan tamsayı türü almak için tasarlanmamıştır.