Блог им. Eugene777

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

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

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

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

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



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

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

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

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

Читайте на SMART-LAB:
Фото
ИИС в БКС теперь застрахованы
Защита капитала: с 1 июля 2026 г. индивидуальные инвестиционные счета (ИИС-3) в ООО «Компания БКС» защищены Фондом гарантирования...
Олег Дубинский о декабрьском цикле, деньгах и прогнозе рынка
В открытой студии Smart-Lab Conf 2026 ТРЕЙДЕР ТВ — Олег Дубинский. Олег — частный трейдер на Московской бирже с 2007 года, инвестор, портфельный...
Фото
Привет, Смартлаб 👋
Мы расширяем платформы присутствия и теперь вы можете читать нас и на Смартлабе. HeadHunter — #1 hr-tech платформа в России и СНГ,...
Фото
ВТБ 5 мес. 2026 г. - бесконечный опцион на светлое будущее
ВТБ опубликовал результаты за 5 месяцев работы по МСФО. Чистая прибыль за май составила 27,3 млрд рублей, снизилась на 59,9% к прошлому году....

теги блога Eugene777

....все тэги



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