Идея разработки свободной платформы для трейдинга. Собираю команду

grv87
Участник форума
Сообщения: 1
Зарегистрирован: 02 апр 2014, 12:28

Идея разработки свободной платформы для трейдинга. Собираю команду

02 апр 2014, 14:21

Всем привет!

Есть идея разработки свободной платформы для анализа финансовых и нефинансовых данных, создания торговых систем и роботов, для любых рынков и инструментов.
Целевая аудитория: трейдеры; аналитики; учёные, изучающие финансовые рынки.
Ищу единомышленников и собираю команду разработчиков.


Некоторые предварительные соображения / Прагматическая философия:

Хорошее программное обеспечение для финансистов должно удовлетворять следующим требованиям:
1. Расширяемость
2. Портируемость
3. Открытый исходный код
4. Разумное ценообразование

1. Программное обеспечение во многих сферах от года к году движется по пути улучшения. И это относится как к проприетарному, так и к свободному ПО. Сравните, например, развитие Windows и ОС на основе GNU/Linux. Но в финансовой сфере такого прогресса не наблюдается:
— На рынке есть очень много проприетарных продуктов, и каждый год выпускаются новые.
— Проприетарное ПО не расширяемо по своей сути.
— Программы повторяют друг друга и со временем не улучшаются. Разработчики делают одно и то же, вместо того, чтобы, переиспользуя готовый код, увеличивать полезность программ для пользователей. В итоге мы имеем переливание из пустого в порожнее.
— Существующие программы плохо интегрируются между собой.
- Существует существенный разрыв между инструментами и технологиями, которыми фактически пользуются трейдеры, и новейшими достижениями как ИТ-индустрии, так и финансовой математики и анализа финансовых рынков.
— Существует несколько свободных проектов. Однако они имеют архитектурные недостатки и предоставляют откровенно слабый набор возможностей. Хотя их код может быть переиспользован в новых продуктах, он требует значительной доработки и переделки.

2. Портируемость — больная тема для финансового ПО. Большинство программ работает исключительно под Windows.

3. Трейдеры не спешат пользоваться стратегиями—чёрными ящиками. По тем же самым причинам нет никаких оснований доверять программам—чёрным ящикам. Для ПО, помогающего принимать финансовые решения и управлять капиталом, открытый исходный код является обязательным требованием.

Проприетарное ПО не удовлетворяет требованию открытого исходного кода.

4. В мире трейдинга и спекуляций ценностями являются:
— Собственно финансовые активы
— Торговые стратегии и идеи, лежащие в их основе
— Биржевая информация, доставляемая точно вовремя, и услуги по её доставке
— Услуги по исполнению сделок и клирингу
— Агрегированная биржевая информация в больших объёмах, предназначенная для исторического тестирования стратегий

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

Высокая стоимость финансового ПО является барьером, затрудняющим вход на финансовые рынки для начинающего спекулянта, и потому снижает ликвидность на рынках и их эффективность для экономики.

Цены на существующие программы значительно варьируются, начиная с бесплатных (свободных) и заканчивая продуктами за $24000. Бесплатные продукты в основном не предоставляют платную техподдержку. Платные продукты зачастую слишком дороги. (Вопрос цены, конечно, относителен. Продукт может казаться дешёвым для жителя США или для инвестора с миллионными счетами, но дорогим для России или для новичка с минимальным счётом в $100).

Система ценообразования должна быть разумной:
— Я верю, что программы для трейдинга могут быть полностью бесплатными. Финансисты зарабатывают на управлении активами, а не на программах. Задача-минимум: цены на программы должны быть достаточно низки, чтобы их мог позволить себе простой "человек с улицы", не имеющий значительного начального капитала и не готовый нести значительные издержки на первые опыты на бирже. Начинающему трейдеру сложно понять, подходит ли ему конкретный продукт, и 30-дневного тестового периода совсем не достаточно для полной оценки. Если через некоторое время трейдер упрётся в то, что в программе нет какой-то возможности, или даже в ней есть ошибки, он рискует столкнутся с необходимостью покупки другого продукта и издержками по миграции.
— Хорошая программа должна обладать интерфейсом, интуитивно понятным любому пользователю без какого-либо специального обучения. Проприетарные разработчики (например, Bloomberg) поступают как раз наоборот: бесплатно учат пользоваться совершенно неюзабельным ПО, чтобы потом заставлять покупать его за большие деньги.
— Основную часть поступлений разработчики ПО должны получать из таких источников:
a) Предоставление качественной платной технической поддержки, в режиме 24/7 и по различным каналам
b) Предоставление биржевой информации
c) Разработка собственных прибыльных стратегий с использованием своей платформы

Таким образом:
1) Свободное программное обеспечение слабо представлено в финансовой сфере
2) От создания хорошего свободного ПО для финансистов выиграли бы все стороны:
— хорошая реклама для FOSS-сообщества
— увеличение полезности и уменьшение издержек для финансистов
— возможности для учёных быстрее опробовать свои идеи на практике
— уменьшение разрыва между наукой и практикой
— увеличение возможностей для начинающих трейдеров


Описание новой платформы:

Проектное название — FIDATA.
Основные особенности:
1. Свободность
2. Модульность, расширяемость
3. Портируемость
4. Широчайший набор возможностей
5. Архитектура клиент-сервер
6. Хранение временных рядов в колоночной (column-oriented) БД
7. Поддержка параллельных вычислений на GPU и CPU
8. Хранение метаданных (сведений о финансовых инструментах и т.д.) в БД
9. Сохранение провенанса данных
10. Работа "из коробки", со всеми требуемыми компонентами и библиотеками
11. Рабочий язык — английский


Подробности:
1. Функциональность.
Не всё будет сразу, но вот что планируется:
— технический анализ
— графический анализ
— эконометрический анализ макроэкономических показателей
— статистический анализ временных рядов (любых)
— разработка ТС (графическая + код), компиляция, тестирование и анализ результатов
— статистический контроль качества ТС
— нейронные сети
— нечёткая логика
— генетические алгоритмы
— имитационное моделирование, генераторы котировок, поддержка аппаратных ГСЧ
— анализ нечисловых данных (например, лингвистических — ленты новостей, названий компаний, тикеров)
— экспертные системы
— генерация отчётов
— электронные таблицы (возможно)

2. Открытый исходный код. Основной код лицензируется под GPL/AGPL.
Монетизация в данный момент не планируется. Пишем в первую очередь сами для себя. Доход команда будет получать от тех ТС, которые сама разработает на новой платформе.

3. Портируемость на все основные ОС: Windows, Linux, OS X.
В перспективе клиенты для iOS и Android.

4. Основной язык разработки — Python. Будут части на C и C++.
В первых версиях, возможно, будет переиспользоваться код на Java, R, Perl и т.д. В будущем всё портируем на Python, C, C++. (По крайней мере, от Java избавимся точно).

5. Модульность:
— для удобства разработки и поддержки
— для удобства установки и обновления пользователями
— для поддержки различных программных и аппаратных платформ (платформозависимые версии модулей)
— для простой расширяемости сторонними разработчиками
— для избежания несовместимости лицензий
— для переиспользования готового кода из других проектов
— для сравнения различных реализаций по скорости и выбора лучших решений
В платформу будет встроен движок, подобный OSGi. Он позволит описать стандартные интерфейсы, которые должны предоставлять модули, и динамически загружать конкретную реализацию. Примеры того, что может работать через стандартные интерфейсы:
— языки программирования для разработки роботов/ТС
— форматы импорта/экспорта данных
— виды графиков
— индикаторы ТА
— численные алгоритмы
— локализация интерфейса

Платформа должна работать "из коробки". Для этого следующий готовый код будет переиспользован и включён в продукт:
— CPython, различные модули для Python
— Cython и/или другие компиляторы для Python
— Qt
— PostgreSQL
— Mozilla NSS
— колоночная СУБД (в данный момент смотрю на MonetDB, но её текущая лицензия несовместима с GPL)
— Apache httpd с дополнительными модулями
— UDT, GridFTP
— различные служебные библиотеки от проекта GNU
— различные математические библиотеки a) на Fortran; b) от проекта GNU
— LuaLaTeX и пакеты (для генерации красивых отчётов)
Кроме того, если нам что-то будет нравится, то мы будем брать готовые куски кода из существующих свободных проектов с совместимыми лицензиями (StockSharp, Merchant of Venice и т.п.).
Всё это будет собираться заново под каждую аппаратно-программную платформу, с соответствующими оптимизациями.

В общем, планируем взять всё лучшее, что есть в мире open source, оформить это как модули, интегрировать их между собой и получить платформу для финансистов и трейдеров, самую крутую из когда-либо существовавших.

6. Система сборки включает в себя:
a) CMake
b) Qt Installer Framework
c) Maven, Gradle (в перспективе будет что-то одно, пока окончательный выбор не сделан)
d) Jenkins


Это большой open source-проект. Проект интересен сам по себе. Например, колоночные БД и вычисления на GPU — активно развивающиеся области научно-прикладных исследований. Если ищете тему для научной работы или диплома, или строчку в резюме — они у вас будут.

Сейчас я собираю команду:
* толковых людей
* знающих азы программирования
* располагающих свободным временем
* самостоятельных
* желающих развиваться в программировании
* желающих работать над созданием свободного ПО
* желающих в будущем зарабатывать на бирже механической или алгоритмической торговлей
Знание Python, C, C++, Gradle, Maven, английского языка, финансовых рынков и т.д. не обязательно, если вы готовы учиться самостоятельно.
Про себя скажу, что я пишу на Python, знаю азы C и С++, но с Gradle и Maven работаю первый раз и сам учусь. Я этим занимаюсь для себя. Зарабатывать собираюсь с помощью ТС, которые я разработаю с помощью этой платформы.
Когда будет выпущена рабочая версия, будет платная поддержка, соответственно, постоянное рабочее место для желающих.

Адрес для контактов: fidata-team@yandex.ru.


Буду также благодарен за:
* Мнения о данном проекте: полезен/бесполезен, получится/не получится (почему?) и т.д.
* Советы, предложения на тему: Как собрать команду разработчиков? На какие форумы и в какие рассылки писать? Стоит ли делать анонс для прессы? Стоит ли выступить на каких-то мероприятиях с голой идеей? По какому алгоритму работать, чтобы не получить в итоге vaporware?
* Отзывы от трейдеров и новичков о существующих продуктах, свободных и несвободных. Чем пользуетесь, что нравится, что не нравится, что устраивает, что хотели бы видеть в новой платформе.
Прошу писать на fidata-team@yandex.ru, или высказываться здесь.

Вернуться в «Остальные темы»