Блог им. Eugene777

Оптимизация оптимизации в торговом роботе.

Медленно но верно, мой алгодвижок становится многопоточным. 

Что это значит на практике? Одной из фишек моего движка — тестер-оптимизатор с визуальным представлением всех кривых эквити. Один год минутных данных на 80 инструментах робот считал примерно пять минут, пятиминутки считались около минуты. Это было сопоставимо с производительностью Wealth-Lab, и в общем, приемелемо, однако задача стоит более глобальная, и она потребует много исторических расчетов. 
В связи с тем, что мне пришлось работать с многопоточностью для Takion, я решил попробовать использовать подобную технику для оптимизатора, и результаты меня порадовали. 
После добавления многопоточности и небольшой оптимизации алгоритмов скорость на i7-3770K увеличилась в десять раз и стала более чем приемлема. Минутки — 30 секунд, пятиминутки — 6. 

На этом я не успокоился и собрал сервер с двумя Xeon X5650 2.6GHz, 6 ядер в каждом. Итого у меня появилась возможность запускать сразу 24 потока. 

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



В планах, если когда-нибудь возникнет потребность работать с большим количеством тиковых данных, я хочу попробовать поработать с технологией обсчета на видеокартах NVidia. Например, за 5 тысяч долларов можно купить NVidia Tesla K40 и получить маленький атомный реактор, но пока это не актуально, загрузка роботом CPU в режиме торговли у меня сейчас в районе 1%, терминалы же успешно грузят один поток.

Оптимизация оптимизации в торговом роботе. 
 
Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
77 | ★3
11 комментариев
Крутяк! Я в своем оптимизаторе сразу многопоточность добавил, это действительно помогает. Но с расчетами на видюхе проблем много.
avatar
Станислав Дорошин, я как-то до последнего времени не запаривался, а сейчас начал понимать, что надо делать такой код, за который не стыдно потом будет. С видюхой, уверен, не все так просто, да и задачи пока я не вижу, однако, меня все больше и больше тянет пробовать новые технологии.
avatar
а вы торгуете своими роботами или только оптимизируете?
avatar
vfreeman, торгую периодически =)
avatar
а по какому алгоритму у вас происходит оптимизация?
Роман Frank_Cowperwood, сейчас брутфорс по нескольким параметрам с визуальной оценкой результата, но хочется еще другого, и я над этим работаю.
avatar
Eugene777, брутфорс??? Я тоже этим грешил))) Это же просто убийство времени) Думаю, с многопоточностью ты поспешил. В первую очередь надо алгоритм нормальный применить, это даст намного больше ускорения, чем распараллеливание брутфорса.

И еще, я заметил справа графики загрузки проца. Там хоть и написано 100%, но судя по графику, загрузка не полная…
avatar
Станислав Дорошин, про неполную загрузку я написал. Брутфорс — понятие растяжимое. Если описывать в двух словах: в стратегии есть определенные парметры, смысл которых понятел. Оптимизация проходит вблизи этих параметров. Соответственно, я беру один-два-три параметра, прогоняю окресности, выбираю лучшую эквити с графиков, потом от нее ставлю на перебор другие параметры. Поднаторев в визуальном анализе и более менее поняв, как хочется выбирать эквити на глаз, я собираюсь сделать перебор и выбор уже по всем параметрам в автоматическом режиме. Алгоритм я более менее понимаю сейчас, а Вы что посоветуете?
avatar
Eugene777, я у себя сделал методом покоординатного спуска. Почти как у тебя, но берется только один параметр, перебираются его значения в указанных пределах и из них выбирается лучшее. Затем берется следующий параметр, он прогоняется так же. И все повторяется снова с первого параметра.

Мне интересно, по какому признаку ты выбираешь из нескольких эквити лучшую?
avatar
Станислав Дорошин, да, я думал сделать так же. Смотрю на график ( он там слева, только это на портфеле символов ), тыкаю на нее мышкой, смотрю кол-во сделок и профит на сделку. Просадка видна визуально. То, что нравится, мышкой же и стаскиваю либо в портфель, либо в окошко с оптимизационными параметрами.
avatar
Eugene777, то есть каких-то формальных параметров оценки эквити нет?
П.С. Заходи в чат, у меня в профиле ссылка есть. Там проще обсуждать.
avatar

Читайте на SMART-LAB:
Фото
Финансовые результаты Аэрофлота по РСБУ за 6 месяцев 2026 года
Аэрофлот опубликовал финансовые результаты по РСБУ за 2 квартал и 6 месяцев 2026 года. ✈️ Выручка во 2 квартале увеличилась на 3,3% год к году и...
Фото
Эмитент допустил дефолт: что делать инвесторам в таком случае?
Дефолт по облигациям не всегда означает полную потерю вложений. Даже если эмитент перестал платить купоны или не погасил долг, инвестор...
Ключевые тезисы менеджмента Норникеля по итогам раскрытия финансовых результатов за 1П 2026 г.
Сегодня мы раскрыли финансовые результаты за 1П 2026 г. по МСФО. Все наши материалы доступны на сайте...
Фото
ГМК Норникель: Прибыль иксанула, а котировки упали - обзор отчета по МСФО за 1-е полугодие 2026
ГМК Норникель отчитался сегодня по МСФО за 1- е полугодие Чистая прибыль выросла в 2 раза по сравнению с прошлым годом...

теги блога Eugene777

....все тэги



UPDONW
Новый дизайн