Amibroker: введение

Многие знают, что я использую Amibroker, как один из рисерч тулзов, в нем я делаю все свои системы на фьючерсах и акциях. Лицензия Amibroker стоит около 200$, это делает его одним из самых доступных программ такого уровня.

Изначально Amibroker был спроектирован как система для портфельной торговли Американскими акциями, имеет портфельный тестер, развитый векторный язык, и много много всяких вкусностей.

Хочу сразу сказать, что в RT я торгую через C# софт, собственного производства, а Amibroker использую только в качестве платформы для рисерча.

В чем главная сила Amibroker:

  1. Векторный язык, который позволяет максимально быстро и эффективно проверять множество идей, тратя на это пару строк кода. Это свойство языка незаменимо, в периоды рисерча, когда пишутся тонны “чернового” кода. Если взять код с таким же функционалом написанный на C#, объем кода будет превышать код Ami в 10 и более раз.
  2. Быстрый много-поточный тестер и оптимизатор – с версии 5.50 в Amibroker появился новый многопоточный тестер. Например, 1 прогон стратегии на 5000 американских акций у меня на 6-ядерном Phenom занимает около 50 секунд.
  3. Возможности для исследований у Amibroker есть много механизмов, которые позволяют сделать исследование более быстрым и удобным. Например, режим Exploration, который выводит в удобном табличном формате данные, которые можно обрабатывать во внешних приложениях Excel, Matlab, Python. Сущуствуют механизмы низкоуровневой графики, которые позволяют добавлять как новые картинки в отчеты тестера, так и проводить анализ онлайн.
  4. Плагины на C++ и .NET (3rd party dotnetforab.com)

Amibroker – идеальная рисерч платформа для акций, фьючерсов и форекса. Но у него начинаются проблемы, когда нужно сделать шаг в сторону парного трейдинга, опционов, умного ММ.

Слабые стороны Amibroker:

  1. Нет интеграции с онлайном – Amibroker такая штука, которая умеет много считать, но не умеет торговать. В этом смысле Amibroker отстал от конкурентов, например Multicharts или WLD 5+. Конечно Amibroker может получать онлайн данные из разных источников, кидать ордера, даже есть спец либа под IB. Но это у меня вызывает серьезные вопросы, это несерьезный ритейл уровень, года так 2005. Сейчас даже у мейнстримового ритейл софта типа, NinjaTrader дела с execution обстоят лучше.
  2. Шаг влево/шаг вправо – расстрел – это проблема любого специализированного софта, если нужно вылезти за рамки, то приходится долго и мучительно плясать с бубном. С другой стороны, это касается лишь 1% юзеров, и не так это и страшно.В этом плане такие языки как Python или C# имеют неоспоримые преимущества.
  3. Субминутные фрейми идут лесом – если есть желание посчитать тики или секундки, Amibroker это позволитсделать, но скушает немерено памяти и времени. Но дела с потреблением памяти и производительности обстоят лучше, чем в WLD.

Bottom line:
Если вы хотите проверить с десяток идей, быстро обсчитать индикатор и посмотреть как он ведет себя на истории, или подготовит данные для анализа в других приложениях – Amibroker лучший инструмент. Не смотря на то, что я хвалю и Python и Matlab и C#, только Amibroker позволяет с максимальной эффективностью реализовать и проверить множество идей. А уже когда идея реализована и оттестирована, мы берем любимый C#, пишем сотни строк, качественного и оттестированного с помощью UnitTests кода, и запускаем в run-time. Только сотни и тысячи строк, получаются из пары десятков кода Amibroker.

Дальше напишу несколько постов о языке AFL, и good practice в написании AFL кода.

Leave a comment