Replikant_mih
Replikant_mih личный блог
17 марта 2019, 11:46

Вот он мой бэктестер-оптимизатор, моя прееелесть.

У хорошего мастера должны быть хорошие инструменты – у кузнеца – молот, у столяра – рубанок, у алготрейдера… — оптимизатор.


Выкатил новую версию.

 

Настоящий мужской оптимизатор конечно же должен быть консольным. Этот красавчик быстр – 10 лет 5-минуток на простой стратегии вместе с вычислением всяких там PF, RF 0,3 секунды. И это на одном потоке! (с многопоточностью, к слову, пока не смог подружить, но заложил такую возможность).

Бэктестер берет задания из csv файла и пашет. Т.е. на данный момент задания на оптимизацию задаются в момент создания файла с заданиями, решил поменять план оптимизации – меняю файл – меняется дальнейшая оптимизация. Т.е. по факту сейчас план на оптимизацию предустановленный, но легко прикрутить в дальнейшем оптимизацию с обратной связью на результаты предыдущих бэктестов. Меня всегда смущали стандартные оптимизаторы в этой части – где перебирается один параметр, или несколько строго итерационно, но я не мог задать явно другие алгоритмы перебора или в общем случае даже не перебора, а «изменения» значений. А здесь могу: т.е., могу за раз закинуть задания сразу на нужное количество гипотез, хочу посмотреть, как стратегия себя ведет между тикерам – не трогаю ничего, меняю только тикер, хочу проверить как ведет себя между тайм-фреймами – меняю только тайм-фреймы и т.д., т.е. минут за 5-10 во всемогущем экселе можно создать файл с заданиями для нужного набора гипотез. Потом когда бэктестер отработает – берешь эксельку и дата-майнишь данные.

Все-таки когда ты точно знаешь, чего хочешь, свой бэктестер это кайф! Нужна скорость, но не нужна какая-то функциональность – супер, не делаешь тормозящую функциональность, получая преимущество в скорости, интересует какая-то конкретная парадигма в оптимизации – отлично, пилишь архитектуру именно под парадигму, без оглядки на стандартные «лучшие практики», «модные мнения» и прочие «а вот я так делаю, а ты какую-то херню».

Более менее ООПшная прога получилась, так что есть надежда, что можно мяса при необходимости накрутить с контролируемым уровнем сложности и поддерживаемости.

Если вдруг кто-то собирался завидовать – не надо, вам бы не понравился мой оптимизатор. Думаю, он будет нравиться только мне! :)

72 Комментария
  • ezomm
    17 марта 2019, 12:17
    Редко встретишь в торговле счастливого спекулянта .+. Я все оттестил до 2008года и всем желаю изучить волновую теорию и ничего не тестить.Там и одного глаза достаточно.
  • Сергей Симонов
    17 марта 2019, 12:55
    Динамика инструмента — это функция от состава (C ), мотивации (M) и экономики игроков (E). Формула выглядит так:

    D = f(C,M,E)

    Если торговый алгоритм не учитывает аргументы этой функции, то любой бэкстест такого алгоритма — интересная математическая игрушка с прикольными результаты. Не более того.

    Имхо, единственный рациональный метод тестирования алгоритма выглядит так
  • Носорог
    17 марта 2019, 13:16
    Как минимум, оригинально. Свежо. Правда, я свою битву за оригинальность проиграл — ибо несколько лет ставил на Excel и VBA, но в итоге выяснилось что я тратил 90% своих усилий не на разработку стратегий, а на технические моменты, давно решенные в коробочных продуктах. Посему я сейчас на мультичартс. Все-таки, даже принимая во внимание врямяемкость оптимизационного перебора комбинаций, узкое место все же скорее в логическом поиске рыночных неоптимальностей и программировании качественного кода, а не в поиске банальным перебором исключительно математических закономерность и подгонки их параметров. Впрочем, здесь одной правды нет и знаю успешных алго, которые на мой взгляд наоборот не заморачиваются поиском логических причин — какая разница если система фактически сейчас зарабатывает? Главное держать руку на пульсе и вовремя соскочить.
  • 3 банка 2 вклада = %
    17 марта 2019, 13:25
    когда много систем возникает лотерея:

    угадай систему

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн