Canvas - это круто! - страница 17

Artyom Trishkin
Модератор
80959
Artyom Trishkin  
Алексей Тарабанов:

Морфометрический анализ - анализ убитых клеток. Сначала убиваем, после - под микроскоп. 

Морфометрия (греч. morphe форма + …метрия)

Всё. Достаточно засорять тему.

MetaQuotes
Админ
28655
Renat Fatkhullin  
fxsaber:


В два раза int быстрее double

Вы не осознаете масштаба и неправильно ведете тесты в микросинтетике, не учитывая последствия работы не 30 ассемблерных функций, а массива в 50к-100к инструкций.

Опровергните каждый мой пункт выше в исходном ответе.

fxsaber
21412
fxsaber  
Renat Fatkhullin:

Вы не осознаете масштаба и неправильно ведете тесты в микросинтетике, не учитывая последствия работы не 30 ассемблерных функций, а массива в 50к-100к инструкций.

Опровергните каждый мой пункт выше в исходном ответе.

Опроверг этот пункт (пусть и примитивными действиями на каждом тике)

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

Canvas - это круто!

Renat Fatkhullin, 2019.01.15 22:37

С учетом 64 битного кода и нашего компилятора нужно забыть про integer в классе задач, основанном на double вычислениях..

Тестер основан на double вычислениях. При этом их настолько много на каждом тике, что даже пустой прогон идет со скоростью 7 млн тиков в секунду.


Можно написать симулятор с действиями посложнее на каждом тике. Но основа Тестера - это сравнение текущей цены тика с ценой ордера, что и делает примерно коды выше. Данное утверждение делаю не на пустом месте. Воспроизводимые замеры и альтернативы расчетов выкладывал в паблик.

MetaQuotes
Админ
28655
Renat Fatkhullin  
fxsaber:

Опроверг этот пункт (пусть и примитивными действиями на каждом тике)

Тестер основан на double вычислениях. При этом их настолько много на каждом тике, что даже пустой прогон идет со скоростью 7 млн тиков в секунду.


Можно написать симулятор с действиями посложнее на каждом тике. Но основа Тестера - это сравнение текущей цены тика с ценой ордера, что и делает примерно коды выше.

Опровергните вот это:

  1. все придется перевести в инты
  2. получите многократные тормоза на конвертации данных
  3. получите дикое потребление памяти
  4. получите 100% шанс переполнений в каждой операции и полную смерть системы
  5. получите полный игнор разработчиков, которым вы предложили считать их индикаторы и всю работу в интах вместо даблов
  6. и таки да, уже нет разницы между даблами и интами в скорости. Сложно поверить, но да

Каждый пункт, пожалуйста.

Учтите, что даже одного пункта 4 или 5 достаточно, чтобы слить идею о целочисленном ускорении.

Я уж не говорю о том, что тестер - это не for(i=0;i<limit;i++ ) { }

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

fxsaber
21412
fxsaber  
Renat Fatkhullin:

Опровергните вот это:

  1. все придется перевести в инты
  2. получите многократные тормоза на конвертации данных
  3. получите дикое потребление памяти
  4. получите 100% шанс переполнений в каждой операции и полную смерть системы
  5. получите полный игнор разработчиков, которым вы предложили считать их индикаторы и всю работу в интах вместо даблов
  6. и таки да, уже нет разницы между даблами и интами в скорости. Сложно поверить, но да

Каждый пункт, пожалуйста.

Учтите, что даже одного пункта 4 или 5 достаточно, чтобы слить идею о целочисленном ускорении.

Целью было показать, что есть задачи, которые еще могут быть решены в целых числах с целью ускорения. Подобный Тестер - не универсальный, т.к. не подходит хотя бы к пункту 5.


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

MetaQuotes
Админ
28655
Renat Fatkhullin  
fxsaber:

Целью было показать, что есть задачи, которые еще могут быть решены в целых числах с целью ускорения. Подобный Тестер - не универсальный, т.к. не подходит хотя бы к пункту 5.


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

То есть, ни 4 ни 5 пункты не опровергнуты.

И даже конвертацию вы хотите сохранить, что сразу увеличивает затраты времени в разы. Да, в разы, включая память под конвертацию. Я уж подумал, что вы предлагаете всю платформу перевести например на цены в int64 ради избавления от конвертаций.

Даже теоретически нет никакого выигрыша от перехода в int уже лет 10.
fxsaber
21412
fxsaber  
Renat Fatkhullin:

Я уж не говорю о том, что тестер - это не for(i=0;i<limit;i++ ) { }

Если о тестере без таймера, то доказал, что Тестер - это for по тикам.

MetaQuotes
Админ
28655
Renat Fatkhullin  
fxsaber:

Если о тестере без таймера, то доказал, что Тестер - это for по тикам.

Это не тестер, а поделка. И без индикаторов и без профитов и вообще без ничего. Но зато с постоянным риском целочисленного переполнения.

Даже обсуждать не имеет смысла.

И еще раз:

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

Иногда достаточно добавить безобидную строку в цикл и потерять скорость на десятки процентов. А если перейти к реальным задачам, когда код распухает от реальной работы, то там все сравнения летят к черту.

Понимаете, что оптимизация 20 ассемблерных команд и реального блока на несколько сотен или тысяч команд убьет ваши пример?
fxsaber
21412
fxsaber  
Renat Fatkhullin:

То есть, ни 4 ни 5 пункт не опровергнуты.

И даже конвертацию вы хотите сохранить, что сразу увеличивает затраты времени в разы. Да, в разы, включая память под конвертацию. Я уж подумал, что вы предлагаете всю платформу перевести например на цены в int64 ради избавления от конвертаций.

Похоже, здесь непонимание, о чем говорил. Речь шла о примере частной задачи Тестера, где целочисленные цены могут дать выигрышь в определенных ситуациях. Универсальный случай не имелся в виду. Именно поэтому свой Тестер, на который дал ссылку выше, реализован на даблах, т.к. универсальный.

 Даже теоретически нет никакого выигрыша от перехода в int уже лет 10.

Не могу согласиться в 100% случаев.

fxsaber
21412
fxsaber  
Renat Fatkhullin:

Это не тестер, а поделка. И без индикаторов и без профитов и вообще без ничего. Но зато с постоянным риском целочисленного переполнения.

Это надстройка над Вашим Тестером, которая без изменения кода любого советника (с любыми индикаторами) делает полноценный проход со всеми сделками и профитами. Но делает это быстрее, чем штатный Тестер. Все воспроизводимые доказательства приводил. Люди с ресурса проверяли эти утверждения.