Тема применения Numba для Python не раскрыта, нет практически никаких пояснений по коду. На кого рассчитана эта статья, для новичков? - тогда они не поймут без разжевывания кода. Для спецов в Python? - им это не надо, и так знают как ускорить вычисления.
По второй части статьи тоже не все гладко. Приводится пример оптимизации всего лишь с двумя параметрами с очень грубым шагом и делается сравнение между полным перебором и алгоритмом оптимизации и при этом утверждается, что ускорение достигнуто аж в 2 раза. За счет чего достигнуто? - это не поясняется. За счет сокращения количества обращений к расчету целевой функции test_model_func? - но в случае с AO не показывается это самое количество обращений. По факту, поскольку пространство задачи очень мало, можно получить ускорение в 400 раз, по сравнению с полным перебором в этой задаче, достаточно генерировать случайные числа один раз но делать множественные тесты, а в статье привести лучший результат из тестов. В общем, нарушены все принципы проведения экспериментов.
Если правильно понял, что тестер на вход в ТС подает ценовые данные+торговое окружение (текущие ордера) и принимает от ТС торговые сигналы.
У Вас все несколько иначе, если правильно понял.
Ценовые данные + направления сделок для каждого наблюдения (покупка, продажа), которые предсказало МО.
То есть ТС внутри тестера не исполняется, направления сделок посчитаны и известны заранее.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Опубликована статья Быстрый тестер торговых стратегий на Python с использованием Numba:
В статье реализован быстрый тестер стратегий для моделей машинного обучения с применением Numba. По скорости он превосходит тестер стратегий на чистом Python в 50 раз. Автор рекомендует использовать эту библиотеку для ускорения математических расчетов и особенно там, где используются циклы.
При разработке торговых алгоритмов на основе машинного обучения, важно правильно и быстро оценивать результаты их торговли на истории. Если брать в расчет редкое использование тестера на крупных временных интервалах и с небольшой глубиной истории, то тестер на языке Python вполне подходит. Если же стоит задача многократного тестирования, в том числе высокочастотных стратегий, то интерпретируемый язык может оказаться слишком медленным.
Предположим, что мы не удовлетворены скоростью выполнения некоторых скриптов, но не хотим отказываться от привычной среды разработки Python. Здесь на помощь приходит Numba, которая позволяет транслировать и компилировать нативный Python код в быстрый машинный код на лету, скорость выполнения которого становится сравнима со скоростью выполнения кода таких языков программирования как C и FORTRAN.
Автор: Maxim Dmitrievsky