Моё недовольство к тестеру стратегий. к разрабочикам MQL - страница 7

 

(Продолжение)

Составленные мной простые програмы аналетического понимания показали что рынок очень сильно сказываетса на тиках аск и бид.


отмеченное уже нашло своё место в цитатнике форума ?

это-же ХИТ...:-)

PS/ тестер нужен чтобы проверить работоспособность робота. Оптимизатор чтобы удостовериться про стабильность параметров. ВСЁ. тестер не делает стратегий, оптимизатор не угадывает рынок.

 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Моё недовольство к тестеру стратегий. к разрабочикам MQL

Renat Fatkhullin, 2017.12.02 15:23

А вы сравните как их зип на слабом режиме сжатия сжимает. Может BMP файлы такие.

Сжатие ресурсов работает.

Вообще это несерьезно такие вещи без доказательств заявлять на фоне прямого опровержения.

Возьмите этот код. У меня EX5 - 1 717 722 bytes. ZIP в самом слабом режиме - 1 177 567 bytes.

Demo_BitmapOffset (OBJPROP_XOFFSET и OBJPROP_YOFFSET)
Demo_BitmapOffset (OBJPROP_XOFFSET и OBJPROP_YOFFSET)
  • голосов: 19
  • 2011.03.25
  • MetaQuotes Software Corp.
  • www.mql5.com
С появлением двух новых свойств стало возможным загружать одно изображение с набором из нескольких картинок. Такая технология давно используется в web-дизайне и получила название Спрайт: Важно: для использования свойств OBJPROP_XOFFSET и OBJPROP_YOFFSET обязательно указывайте размер области видимости с помощью свойств OBJPROP_XSIZE и...
 
fxsaber:

Возьмите этот код. У меня EX5 - 1 717 722 bytes. ZIP в самом слабом режиме - 1 177 567 bytes.

Все верно, эти конкретные файлы сжимаются слабо и размер EX файла обоснован.

Конечно, внутри EX ресурсы сжаты.

 
Renat Fatkhullin:

Все верно, эти конкретные файлы сжимаются слабо и размер EX файла обоснован.

Конечно, внутри EX ресурсы сжаты.

Нет, к сожалению.

void OnStart()
{
  uchar Data[];
  uchar Key[1];
  uchar Result[];
  
  FileLoad("thousands_rubies_galaxy.bmp", Data);  
  Print(CryptEncode(CRYPT_ARCH_ZIP, Data, Key, Result));
  
  ArrayFree(Data);
  
  FileLoad("space_wind.wav", Data);  
  Print(CryptEncode(CRYPT_ARCH_ZIP, Data, Key, Result));  
}


Результат

826534
306648


Ваш ZIP сжимает значительно лучше, чем EX5.

 

Ресурсы сжимаются максимально быстрым алгоритмом lzss, а не зипом.

Мы же не самоубийцы очень долго жать зипом, а потом распаковывать долго.

 
Renat Fatkhullin:

Ресурсы сжимаются максимально быстрым алгоритмом lzss, а не зипом.

Мы же не самоубийцы очень долго жать зипом, а потом распаковывать долго.

#define BENCH(A)                                                              \
{                                                                             \
  const ulong StartTime = GetMicrosecondCount();                              \
  A;                                                                          \
  Print("Time[" + #A + "] = " + (string)(GetMicrosecondCount() - StartTime)); \
} 

void OnStart()
{
  uchar Data[];
  uchar Key[1];
  uchar Result[];
  
  FileLoad("thousands_rubies_galaxy.bmp", Data);  
  BENCH(Print(CryptEncode(CRYPT_ARCH_ZIP, Data, Key, Result)))
  
  ArrayFree(Data);
  
  FileLoad("space_wind.wav", Data);  
  BENCH(Print(CryptEncode(CRYPT_ARCH_ZIP, Data, Key, Result)))
}

Результат

826534
Time[Print(CryptEncode(CRYPT_ARCH_ZIP,Data,Key,Result))] = 53334
306648
Time[Print(CryptEncode(CRYPT_ARCH_ZIP,Data,Key,Result))] = 29029

80 мс - самоубийство?

 
fxsaber:




Результат

80 мс - самоубийство?

На целероне запустите.

А потом отмасштабируйте на вариант файлов побольше размеров в проекте.

 
Renat Fatkhullin:
За целероне запустите.

Речь, конечно, об относительном времени. У меня на i7 компиляция исходника из КБ занимает

'demo_bitmapoffset.mq5' demo_bitmapoffset.mq5   1       1
0 error(s), 0 warning(s), compile time: 232 msec                1       1


Когда комментирую это

//#resource "\\Files\\thousands_rubies_galaxy.bmp";
//#resource "\\Files\\space_wind.wav";


то получаю уменьшение на 30 мс

'demo_bitmapoffset.mq5' demo_bitmapoffset.mq5   1       1
0 error(s), 0 warning(s), compile time: 202 msec                1       1


Итого переход на чистый ZIP (80 мс) занял бы 282 мс. Т.е. замедление было бы на 21.5%. И это для простейшего исходника.

Если же брать исходники, которые компилируются секундами, то там замедление будет около 1%. Вроде, ничего страшного при таком раскладе.

 

Нет, мы считали и считаем, что ресурсы должны сжиматься и расжиматься максимально быстрым способом на всем зоопарке процессоров. Очень много придушенных экономичностью процессоров, включая полуживые атомы. Там потери скорости в десяток раз по сравнению с современными мощными процессорами.

Кстати, в последних билдах мт5 мы кардинально повысили скорость запуска терминала и редактора как раз после глубокой оценки влияния сжатия ресурсов и методов инициализации защит. На слабых процах выиграли целые секунды.

То, что незаметно на полноценных i7/xeon, было катастрофой на секунды в атомах/целеронах и аналогичных по мощности.

 
Renat Fatkhullin:

Нет, мы считали и считаем, что ресурсы должны сжиматься и расжиматься максимально быстрым способом на всем зоопарке процессоров. Очень много придушенных экономичностью процессоров, включая полуживые атомы. Там потери скорости в десяток раз по сравнению с современными мощными процессорами.

Кстати, в последних билдах мт5 мы кардинально повысили скорость запуска терминала и редактора как раз после глубокой оценки влияния сжатия ресурсов и методов инициализации защит. На слабых процах выиграли целые секунды.

То, что незаметно на полноценных i7/xeon, было катастрофой на секунды в атомах/целеронах и аналогичных по мощности.

Снимаю шляпу за такой ресерч! Хотелось бы такого же основательного подхода в вопросах CopyTicks и CustomSymbols. Там почти катастрофа.

Причина обращения: