Автор |
Сообщение |
spitfire
Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow
|
Оказывается у функции Status есть еще такой аргумент как
Цитата: |
"barinrange" - returns 1 when current bar is within current auto-analysis From-To range |
То что доктор прописал |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
Mechanic
Зарегистрирован: 10.06.2008
Сообщения: 359
|
spitfire писал(а): |
Такое чувство что бектест делается по всем данным, а потом просто в репорте вычленяются только те, что попали на выбранный юзером интервал |
Так и есть. Неоднократно убеждался в этом, сканируя простенький код (вроде Buy = 0; Sell = 0; ) на базах разной длины, выбирая разные участки в настройках сканера. Корреляция однозначная: чем длиннее база, тем дольше выполняется, от выбранного интервала сканирования вообще ничего не зависит. Хоть один последний бар ставь, хоть всю базу. И память расходуется на всю базу. Не знаю, может быть есть какая-то оптимизация, и "основная" часть кода выполняется только на выбранном диапазоне, но цикл (на низком уровне) прогоняется по всем барам.
spitfire писал(а): |
Гспди, какой же тупой саппорт в амиброкере. Я ему про определение интервала бектеста, а он мне про двойные кавычки в путе к файлу. Пздц. |
Ыыы, пообщайся в кухне с саппортами - вот тогда узнаешь, что такое "тупой"! |
Последний раз редактировалось: Mechanic (Пн Янв 20, 2014 4:53 pm), всего редактировалось 1 раз |
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
spitfire
Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow
|
Mechanic писал(а): |
Так и есть. Неоднократно убеждался в этом, сканируя простенький код (вроде Buy = 0; Sell = 0; ) на базах разной длины, выбирая разные участки в настройках сканера. |
Ага, мне это подтвердил саппорт-мэн. Вот жеж какая глупая и неэкономная софтина эта Амишка |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
MrDrJOKER
Зарегистрирован: 22.06.2009
Сообщения: 489
|
Mechanic писал(а): |
Неоднократно убеждался в этом, сканируя простенький код (вроде Buy = 0; Sell = 0; ) на базах разной длины, выбирая разные участки в настройках сканера. Корреляция однозначная: чем длиннее база, тем дольше выполняется, от выбранного интервала сканирования вообще ничего не зависит. Хоть один последний бар ставь, хоть всю базу. И память расходуется на всю базу. Не знаю, может быть есть какая-то оптимизация, и "основная" часть кода выполняется только на выбранном диапазоне, но цикл (на низком уровне) прогоняется по всем барам.
|
+1 |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Mechanic
Зарегистрирован: 10.06.2008
Сообщения: 359
|
spitfire писал(а): |
Mechanic писал(а): |
Так и есть. Неоднократно убеждался в этом, сканируя простенький код (вроде Buy = 0; Sell = 0; ) на базах разной длины, выбирая разные участки в настройках сканера. |
Ага, мне это подтвердил саппорт-мэн. Вот жеж какая глупая и неэкономная софтина эта Амишка |
Запихивай свои коды в плагин - будет быстрее. )) |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
spitfire
Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow
|
Mechanic писал(а): |
Запихивай свои коды в плагин - будет быстрее. )) |
тут уже я глупый - не умею делать плагины. И пока влом разбираться) |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
BRTO
Зарегистрирован: 01.03.2009
Сообщения: 105
|
spitfire писал(а): |
тут уже я глупый - не умею делать плагины. И пока влом разбираться) |
Плагин может уменьшить время теста % на 50...
Кстати, а что там с поддержкой многоядерности в последних версиях? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
MrDrJOKER
Зарегистрирован: 22.06.2009
Сообщения: 489
|
BRTO писал(а): |
spitfire писал(а): |
тут уже я глупый - не умею делать плагины. И пока влом разбираться) |
Плагин может уменьшить время теста % на 50...
Кстати, а что там с поддержкой многоядерности в последних версиях? |
реализована полностью в тестере.
только эти 50% времени теста + ещё дофига прийдётся потратить как раз на написание плагина |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Mechanic
Зарегистрирован: 10.06.2008
Сообщения: 359
|
Да дело не в скорости плагина, а в том, что в нём можно указать диапазон тестирования (и вынести его в параметры для удобства), чтобы Ами не гонял тест по всей базе, когда это не требуется.
Плагин, кстати, не будет быстрее обычного АФЛ кода, если в последнем нет циклов. А писать его просто, ничуть не дольше, чем цикл в АФЛ, надо только один раз разобраться. |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
BRTO
Зарегистрирован: 01.03.2009
Сообщения: 105
|
MrDrJOKER писал(а): |
реализована полностью в тестере.
только эти 50% времени теста + ещё дофига прийдётся потратить как раз на написание плагина |
И в режиме форвардного тестирования? В описании к последней версии не увидел такого.
На счет плагинов - если код вроде такого как здесь
http://amisite.ru/phpBB2/viewtopic.php?t=802&sid=770048cb7f1db3fc1ec61c7fc960d8e6
то разница может быть очень большой
+ можно заставить Ami делать еще какие-то полезные действия, например, общаться с другими программами |
|
|
Посмотреть профиль Отправить личное сообщение |
|
spitfire
Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow
|
Многоядерность тут такая, мнимая. Ты можешь одновременно запускать тесты для разных инструментов. А так - один инструмент, 1 ядро, 1 тест.
И если ты используешь всякие умные оптимизаторы, то там также не поддерживается многоядерность.
Про плагин ксать интересно - у меня все системы на циклах сделаны.. В форвардном тестировании можно систему-плагин использовать? |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
BRTO
Зарегистрирован: 01.03.2009
Сообщения: 105
|
spitfire писал(а): |
Многоядерность тут такая, мнимая. Ты можешь одновременно запускать тесты для разных инструментов. А так - один инструмент, 1 ядро, 1 тест.
И если ты используешь всякие умные оптимизаторы, то там также не поддерживается многоядерность.
Про плагин ксать интересно - у меня все системы на циклах сделаны.. В форвардном тестировании можно систему-плагин использовать? |
Насколько я понял, в последних версиях в режиме Individual optimize поддерживается до 32-ядер и процесс ускоряется во столько же раз, сколько ядер в наличии, а вот при форвардном тестировании этот режим действительно (еще) не поддерживается. Однако, OLE Automation в Ami позволяет автоматизировать процесс запуска Individual optimize, т.е. форвардный тест можно заменить запуском серии Individual optimize, и их данные суммировать.
Afl-плагин в простом случае - та же функция, просто заменяем ею имеющуюся Afl-функцию\процедуру, при этом еще и размер кода уменьшается. А раз код выполняется быстрее, соответственно, и при форвардном тестировании время будет уменьшаться.
Допустим, прогон с одной переменной занимал 200 сек, а после замены afl-цикла на функцию из dll стало 120 сек.
Но "внедрение" многоядерности позволит в теории довести этот прогон, например, до 20 сек. А если тестирование длится не секунды, а часы, дни? Я тоже что-то стал ориентироваться на форварды, не знаю, хорошо ли это
Насколько я знаю, уважаемый Mechanic больше многих разбирается в создании dll и коде С++ |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Mechanic
Зарегистрирован: 10.06.2008
Сообщения: 359
|
Верно. Код по ссылке построен на цикле, такие вещи в плагине ускоряются сильно.
BRTO писал(а): |
Насколько я понял, в последних версиях в режиме Individual optimize поддерживается до 32-ядер и процесс ускоряется во столько же раз, сколько ядер в наличии, а вот при форвардном тестировании этот режим действительно (еще) не поддерживается. Однако, OLE Automation в Ami позволяет автоматизировать процесс запуска Individual optimize, т.е. форвардный тест можно заменить запуском серии Individual optimize, и их данные суммировать. |
Да, в последней версии реализовали поддержку многоядерности при индивидуальной оптимизации. Не проверял, но вроде как форвардное тестирование тоже должно стать многоядерным - это ведь просто последовательность оптимизаций.
Цитата: |
Насколько я знаю, уважаемый Mechanic больше многих разбирается в создании dll и коде С++ |
(скромно поправляя колпак на голове) Да, я очень опытный главврач в нашей палате. |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
spitfire
Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow
|
Mechanic писал(а): |
Да, в последней версии реализовали поддержку многоядерности при индивидуальной оптимизации. Не проверял, но вроде как форвардное тестирование тоже должно стать многоядерным - это ведь просто последовательность оптимизаций. |
Ключевой вопрос какая оптимизация. Гинетика или exhaustive? Я как то срался с саппортом, они мамой клялись что к гинетки многоядерность не смогут прикрутить.
А проверить просто - запустить оптимизацию и глянуть загрузку. Если загрузка = 100/число ядер +- 10% то никуя не работает многоядерность. |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
Mechanic
Зарегистрирован: 10.06.2008
Сообщения: 359
|
Не-не, про генетику было отдельно оговорено - многоядерность на неё не распространяется. Речь про обычную оптимизацию с полным перебором. |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
|