Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 Как из стабильно сливающей системы сделать денежный пылесос! Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
spitfire



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

СообщениеДобавлено: Пн Янв 20, 2014 3:07 pm Ответить с цитатой Вернуться к началу

Оказывается у функции Status есть еще такой аргумент как
Цитата:

"barinrange" - returns 1 when current bar is within current auto-analysis From-To range

То что доктор прописал Cool
Посмотреть профиль Отправить личное сообщение ICQ Number
Mechanic



Зарегистрирован: 10.06.2008
Сообщения: 359

СообщениеДобавлено: Пн Янв 20, 2014 4:47 pm Ответить с цитатой Вернуться к началу

spitfire писал(а):
Такое чувство что бектест делается по всем данным, а потом просто в репорте вычленяются только те, что попали на выбранный юзером интервал Evil or Very Mad

Так и есть. Неоднократно убеждался в этом, сканируя простенький код (вроде Buy = 0; Sell = 0; ) на базах разной длины, выбирая разные участки в настройках сканера. Корреляция однозначная: чем длиннее база, тем дольше выполняется, от выбранного интервала сканирования вообще ничего не зависит. Хоть один последний бар ставь, хоть всю базу. И память расходуется на всю базу. Не знаю, может быть есть какая-то оптимизация, и "основная" часть кода выполняется только на выбранном диапазоне, но цикл (на низком уровне) прогоняется по всем барам.

spitfire писал(а):
Гспди, какой же тупой саппорт в амиброкере. Я ему про определение интервала бектеста, а он мне про двойные кавычки в путе к файлу. Пздц.

Ыыы, пообщайся в кухне с саппортами - вот тогда узнаешь, что такое "тупой"! Laughing


Последний раз редактировалось: Mechanic (Пн Янв 20, 2014 4:53 pm), всего редактировалось 1 раз
Посмотреть профиль Отправить личное сообщение ICQ Number
spitfire



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

СообщениеДобавлено: Пн Янв 20, 2014 4:52 pm Ответить с цитатой Вернуться к началу

Mechanic писал(а):
Так и есть. Неоднократно убеждался в этом, сканируя простенький код (вроде Buy = 0; Sell = 0; ) на базах разной длины, выбирая разные участки в настройках сканера.

Ага, мне это подтвердил саппорт-мэн. Вот жеж какая глупая и неэкономная софтина эта Амишка Smile
Посмотреть профиль Отправить личное сообщение ICQ Number
MrDrJOKER



Зарегистрирован: 22.06.2009
Сообщения: 489

СообщениеДобавлено: Пн Янв 20, 2014 6:21 pm Ответить с цитатой Вернуться к началу

Mechanic писал(а):

Неоднократно убеждался в этом, сканируя простенький код (вроде Buy = 0; Sell = 0; ) на базах разной длины, выбирая разные участки в настройках сканера. Корреляция однозначная: чем длиннее база, тем дольше выполняется, от выбранного интервала сканирования вообще ничего не зависит. Хоть один последний бар ставь, хоть всю базу. И память расходуется на всю базу. Не знаю, может быть есть какая-то оптимизация, и "основная" часть кода выполняется только на выбранном диапазоне, но цикл (на низком уровне) прогоняется по всем барам.


+1
Посмотреть профиль Отправить личное сообщение
Mechanic



Зарегистрирован: 10.06.2008
Сообщения: 359

СообщениеДобавлено: Пн Янв 20, 2014 7:02 pm Ответить с цитатой Вернуться к началу

spitfire писал(а):
Mechanic писал(а):
Так и есть. Неоднократно убеждался в этом, сканируя простенький код (вроде Buy = 0; Sell = 0; ) на базах разной длины, выбирая разные участки в настройках сканера.

Ага, мне это подтвердил саппорт-мэн. Вот жеж какая глупая и неэкономная софтина эта Амишка Smile

Запихивай свои коды в плагин - будет быстрее. ))
Посмотреть профиль Отправить личное сообщение ICQ Number
spitfire



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

СообщениеДобавлено: Пн Янв 20, 2014 11:05 pm Ответить с цитатой Вернуться к началу

Mechanic писал(а):
Запихивай свои коды в плагин - будет быстрее. ))

тут уже я глупый - не умею делать плагины. И пока влом разбираться)
Посмотреть профиль Отправить личное сообщение ICQ Number
BRTO



Зарегистрирован: 01.03.2009
Сообщения: 105

СообщениеДобавлено: Вт Янв 21, 2014 12:18 am Ответить с цитатой Вернуться к началу

spitfire писал(а):

тут уже я глупый - не умею делать плагины. И пока влом разбираться)

Плагин может уменьшить время теста % на 50...

Кстати, а что там с поддержкой многоядерности в последних версиях?
Посмотреть профиль Отправить личное сообщение
MrDrJOKER



Зарегистрирован: 22.06.2009
Сообщения: 489

СообщениеДобавлено: Вт Янв 21, 2014 2:46 am Ответить с цитатой Вернуться к началу

BRTO писал(а):
spitfire писал(а):

тут уже я глупый - не умею делать плагины. И пока влом разбираться)

Плагин может уменьшить время теста % на 50...

Кстати, а что там с поддержкой многоядерности в последних версиях?


реализована полностью в тестере.

только эти 50% времени теста + ещё дофига прийдётся потратить как раз на написание плагина Laughing
Посмотреть профиль Отправить личное сообщение
Mechanic



Зарегистрирован: 10.06.2008
Сообщения: 359

СообщениеДобавлено: Вт Янв 21, 2014 6:16 am Ответить с цитатой Вернуться к началу

Да дело не в скорости плагина, а в том, что в нём можно указать диапазон тестирования (и вынести его в параметры для удобства), чтобы Ами не гонял тест по всей базе, когда это не требуется.

Плагин, кстати, не будет быстрее обычного АФЛ кода, если в последнем нет циклов. А писать его просто, ничуть не дольше, чем цикл в АФЛ, надо только один раз разобраться.
Посмотреть профиль Отправить личное сообщение ICQ Number
BRTO



Зарегистрирован: 01.03.2009
Сообщения: 105

СообщениеДобавлено: Вт Янв 21, 2014 11:05 am Ответить с цитатой Вернуться к началу

MrDrJOKER писал(а):


реализована полностью в тестере.

только эти 50% времени теста + ещё дофига прийдётся потратить как раз на написание плагина Laughing


И в режиме форвардного тестирования? В описании к последней версии не увидел такого.

На счет плагинов - если код вроде такого как здесь
http://amisite.ru/phpBB2/viewtopic.php?t=802&sid=770048cb7f1db3fc1ec61c7fc960d8e6
то разница может быть очень большой

+ можно заставить Ami делать еще какие-то полезные действия, например, общаться с другими программами
Посмотреть профиль Отправить личное сообщение
spitfire



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

СообщениеДобавлено: Вт Янв 21, 2014 11:53 am Ответить с цитатой Вернуться к началу

Многоядерность тут такая, мнимая. Ты можешь одновременно запускать тесты для разных инструментов. А так - один инструмент, 1 ядро, 1 тест.
И если ты используешь всякие умные оптимизаторы, то там также не поддерживается многоядерность.
Про плагин ксать интересно - у меня все системы на циклах сделаны.. В форвардном тестировании можно систему-плагин использовать?
Посмотреть профиль Отправить личное сообщение ICQ Number
BRTO



Зарегистрирован: 01.03.2009
Сообщения: 105

СообщениеДобавлено: Вт Янв 21, 2014 12:56 pm Ответить с цитатой Вернуться к началу

spitfire писал(а):
Многоядерность тут такая, мнимая. Ты можешь одновременно запускать тесты для разных инструментов. А так - один инструмент, 1 ядро, 1 тест.
И если ты используешь всякие умные оптимизаторы, то там также не поддерживается многоядерность.
Про плагин ксать интересно - у меня все системы на циклах сделаны.. В форвардном тестировании можно систему-плагин использовать?


Насколько я понял, в последних версиях в режиме Individual optimize поддерживается до 32-ядер и процесс ускоряется во столько же раз, сколько ядер в наличии, а вот при форвардном тестировании этот режим действительно (еще) не поддерживается. Однако, OLE Automation в Ami позволяет автоматизировать процесс запуска Individual optimize, т.е. форвардный тест можно заменить запуском серии Individual optimize, и их данные суммировать.

Afl-плагин в простом случае - та же функция, просто заменяем ею имеющуюся Afl-функцию\процедуру, при этом еще и размер кода уменьшается. А раз код выполняется быстрее, соответственно, и при форвардном тестировании время будет уменьшаться.
Допустим, прогон с одной переменной занимал 200 сек, а после замены afl-цикла на функцию из dll стало 120 сек.

Но "внедрение" многоядерности позволит в теории довести этот прогон, например, до 20 сек. А если тестирование длится не секунды, а часы, дни? Smile Я тоже что-то стал ориентироваться на форварды, не знаю, хорошо ли это Confused


Насколько я знаю, уважаемый Mechanic больше многих разбирается в создании dll и коде С++
Посмотреть профиль Отправить личное сообщение
Mechanic



Зарегистрирован: 10.06.2008
Сообщения: 359

СообщениеДобавлено: Вт Янв 21, 2014 3:52 pm Ответить с цитатой Вернуться к началу

BRTO писал(а):
На счет плагинов - если код вроде такого как здесь
http://amisite.ru/phpBB2/viewtopic.php?t=802&sid=770048cb7f1db3fc1ec61c7fc960d8e6
то разница может быть очень большой

Верно. Код по ссылке построен на цикле, такие вещи в плагине ускоряются сильно.

BRTO писал(а):
Насколько я понял, в последних версиях в режиме Individual optimize поддерживается до 32-ядер и процесс ускоряется во столько же раз, сколько ядер в наличии, а вот при форвардном тестировании этот режим действительно (еще) не поддерживается. Однако, OLE Automation в Ami позволяет автоматизировать процесс запуска Individual optimize, т.е. форвардный тест можно заменить запуском серии Individual optimize, и их данные суммировать.

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

Цитата:
Насколько я знаю, уважаемый Mechanic больше многих разбирается в создании dll и коде С++

(скромно поправляя колпак на голове) Да, я очень опытный главврач в нашей палате. Laughing
Посмотреть профиль Отправить личное сообщение ICQ Number
spitfire



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

СообщениеДобавлено: Вт Янв 21, 2014 6:20 pm Ответить с цитатой Вернуться к началу

Mechanic писал(а):

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

Ключевой вопрос какая оптимизация. Гинетика или exhaustive? Я как то срался с саппортом, они мамой клялись что к гинетки многоядерность не смогут прикрутить.
А проверить просто - запустить оптимизацию и глянуть загрузку. Если загрузка = 100/число ядер +- 10% то никуя не работает многоядерность.
Посмотреть профиль Отправить личное сообщение ICQ Number
Mechanic



Зарегистрирован: 10.06.2008
Сообщения: 359

СообщениеДобавлено: Вт Янв 21, 2014 7:03 pm Ответить с цитатой Вернуться к началу

Не-не, про генетику было отдельно оговорено - многоядерность на неё не распространяется. Речь про обычную оптимизацию с полным перебором.
Посмотреть профиль Отправить личное сообщение ICQ Number
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



Следующая тема
Предыдущая тема
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen