Блог им. firetrade

Trading framework

Здравствуйте,
хотел представить на публику трейдинг фреймворк который разрабатываю на скале,
разрабатываю давно и он мне очень нравится, сорцы хостятся на bitbucket в гите
билдится с помощью maven
описание на английском
bitbucket.org/firetrade/firelib/wiki/Home
пример рисерча по стратегии в ролике
www.youtube.com/watch?v=hPSbtsPxjbA
сорцы все в открытом доступе, ключевые части покрыты тестами

основные фичи описаны здесь на английском
bitbucket.org/firetrade/firelib/wiki/Features
если на русском:

вывод стратегии в прод без изменения кода
баскет трейдинг с множеством инсрументов
быстрая в батчах оптимизация с невысокими требованиями по памяти
симуляция асинхронности работы с маркетом что критично для переноса стратегий с бэктеста в прод и тестинга HFT стратегий
как входные данные поддерживаются тики и бары — стаканы еще не сделаны, но несложно сделать с текущей архитектурой
репортинг независимо реализован от ядра фреймворка — промежуточные данные выводятся в csv далее их можно анализировать с помощью питона, текущий стандартный репорт с помощью питона (pandas/ipython)
репортинг позволяет интерактивный рисерч, комбинирование факторов без повторного перетеста
для скорости реализована прозрачная конвертация csv маркет данных в бинарный формат что позволяет читать 10-12 миллионов тиков в секунду
архитектура исключает race-condition в коре фреймворка
тк на скале написан позволяет использовать любые библиотеки из java мира коих тысячи — может как нибудь сделаю демонстрацию machine learning


на вики есть некоторые пробелы в доках, но постепенно их заполняю

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

код открыт, поэтому каждый может пользоваться, если интересно, продуман шаблон для хостинга-деплоя собственных стратегий, чтобы не заморачиваться с деплоем стратегий

также думаю будет интересен фреймворк для hft трейдеров с не очень высокими требованиям по задержкам с хорошими моделями
архитектура допускает расширение фреймворка до стаканов и ордер лога с эмуляций проскальзываний
думаю вклад фреймворка в задержки должен быть не более 100 микросекунд хотя надо измерять

пс раньше был фреймворк на c#, но это винда со всеми вытекающими, они делают какие то телодвижения в сторону линукса, но в ближайший год-два не думаю, что будет что то зрелое
scala мощнейший язык гибридного типа и можно писать очень краткие выразительные программы на нем, хотя есть некоторый входной барьер
★7
23 комментария
Много непонятного, но, сука, интересно
avatar
vito333, что непонятно? могу разъяснить моменты
можете озвучить целевую аудиторию этого продукта?
avatar
vfreeman, есть категория homemade алготрейдеров немногочисленная, каждый из которых мастерит свой велосипед типа qusma.com/, есть определенное количество некрупных контор в которых дела со своими фреймворками плачевное — работал в одной из таких.
хорошая идея. а сколько на данный момент участников?
avatar
один пока, я довел фреймворк до рабочего состояния не пытаясь его опубликовать, чтобы можно было без оглядки на совместимости делать рефакторинг и устаканить архитектуру. Сейчас он в рабочем состоянии и поставлен на рельсы, остаются интеграционные задачи — тестирую адаптер к дукаскопи и собираюсь написать адаптер под плазу. До этого писали c# фреймворк втроем, оттуда взял некоторые идеи для нового фреймворка
а как у Вас предикшин считается? на чем основан?
avatar
Рома Н.К., линейная регрессия a=bx без константы, где
а — приращение по сберу, b — приращение по ртс
Иван Файртрейдов, Я посмотрел видео, в том месте где были показаны трейды, видно было, что входы в позицию как-то не особо впечатляют, это с чем связано? и ещё, данные подгружаете из внешних csv, а как в Вашей архитектуре решается вопрос с динамической работой с данными, имею ввиду их поступление, хранение, обработка, и принятие решений, бектест?
avatar
даже не знаю что сказать чтобы впечатлить, статистика то есть
бэктест через csv, потом когда запускаете в прод модель подключается к провайдеру маркет данных и рынку через интерфейсы
для самой модели это прозрачно, провайдер маркет данных может быть любым можно iqfeed, можно esignal, но пока только IB )
может в скором времени сниму ролики про это
Иван Файртрейдов, а данные где храните? имею ввиду БД какая-нибудь используется или нет? и насчет баскета хотел спросить, получается у Вас на данный момент используется только регрессия?
avatar
Рома Н.К., это просто пример стратегии, модели стройте какие угодно хоть регрессии хоть нейронные сети, фреймворк это каркас. бд не использую это медленно для последовательных данных
Иван Файртрейдов, да это понятно, что каркас. Какие модели планируете развивать? насчет хранения данных и их обработки, если использовать внутренний язык БД (смотря какую конечно же использовать), то можно добиться хорошей скорости, но конечно не для HFT.
avatar
Иван Файртрейдов, скажите а как обстоит дело со скоростью обработки данных и вычислений в скала? если можно, то в сравнении с с++, с#
avatar
можете посмотреть бенчмарки в интернете, в си++ конечно можно писать более быстрые программы, но писать будете дольше
где то как шарп или даже быстрее
на jvm даже хфт некоторые инвест дома ранят, в ubs скажем весь прайсинг на jvm
Иван Файртрейдов, уже глянул, перспективы конечно же есть. а какая у вашего проекта конечная цель? и ёще, хотел бы услышать Ваше мнение насчет использования БД в таких проектах. почему все-таки ваш фреймворк не предусматривает работу с БД?
avatar
Рома Н.К., конечная цель найти толковых контрибьюторов, одному неэффективно тащить все, надо еще время рисерчем заниматься по стратегиям. Бд — а зачем оно нужно? сделать элементарно, но незачем — пока по крайней мере. Это же все абстракция данных, там куча оверхеда на транзакции. Разве что трекать трейды в какой нибудь энтерпрайз системе, но мне энтерпрайз не нужен
Иван Файртрейдов, по плазе есть наработки?
avatar
да насчет анализа в БД есть такой проект pandas сделан товарищем из какой то трейдинг фирмы, весь анализ что можно делать в бд можно делать с помощью этого тулза — я в одном из следующих роликов покажу на какой нибудь стратегии его возможности
плазу собираюсь только делать, смотрел немного вроде все понятно
Иван Файртрейдов, у Вас есть скайп?
avatar
Рома Н.К., мыло firelib.bitbucket@gmail.com — здесь скайп писать не хочу, пишете отвечу со скайпом
ок
avatar

теги блога Иван Файртрейдов

....все тэги



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