Библиотека обновлена. Изменился порядок чтения тиков в цикле. Размер следующего блока надо определять в цикле.
Дополнено описание.
Еще +10%.
// T[tick].ask = ToPrice(this.ap); T[tick].bid = ToPrice(this.bp); T[tick].time_msc = this.tp; T[tick].time=(datetime)(this.tp / 1000); // tick++; this.SetTick(T[tick++]);
void SetTick( MqlTick &Tick ) /*const*/ // const, если ToPrice сделать const. { Tick.ask = ToPrice(this.ap); Tick.bid = ToPrice(this.bp); Tick.time_msc = this.tp; Tick.time=(datetime)(this.tp / 1000); }
Спасибо. Увеличило с
Decompress performance: 64.0 Ticks (millions)/sec.
до
Decompress performance: 68.0 Ticks (millions)/sec.
Код обновил.
В скрипте, в цикле распаковки, вместо
nextSize=Compressor3.ArrToInt2(Ticks2,ZIPpos);//размер следущего блока ZIPpos+=4
можно использовать более короткий вариант
nextSize=Compressor3.ArrToInt(Ticks2,ZIPpos);//размер следущего блока, увеличит ZIPpos на 4 Но и старый вариант рабочий.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
TickCompressor - со сжатием 1 тика до 2-3 байт в срднем:
Сжатие тиковых данных для хранения в компактном виде до 3,5 раз компактнее, чем .tcs файлы MQ. И для быстрой работы с ними, т.к. на чтение 3 байт тратится меньше времени, чем на 60 байт MqlTick структуры.
Автор: Forester