LINUX.ORG.RU

Делаю фреймворк для алготрейдинга, ищу единомышленников (Python/Rust)

 , ,


2

3

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

Я делаю библиотеку для алготрейдинга. Которая (в мечтах) должна дорасти вот прямо таки до фреймворка. Стек кросплатформенный (Python, Rust, eframe/egui), но сам веду разработку под линуксом, и на других ОС не тестировалась, так что проект линуксовый, но с возможностью запуска на других ОС, если надо. Идея такая:

== Суть и мотивация

Каждый алготрейдер, так или иначе, решает для себя задачи: получения и обновления исторических данных, проверки торговых гипотез, коннекторы к брокерам и логику управления торговыми стратегиями. На разработку подобных велосипедов уходит от пары месяцев до нескольких лет, смотря как делать.

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

== Модули и возможности

  • analyse: инструменты статистического анализа исторических данных
  • connect: коннекторы, пока доступно подключение только к Тинькофф брокеру (Т-банк)
  • core: структуры для удобной работы с данными на «трейдерском языке»: график, таймфрейм, ордер…
  • data: загрузка и обновление исторических данных. Пока только с Московской биржи
  • strategy - база для создания своих стратегий
  • tester: простой, но очень быстрый бэк-тестер
  • trader: модуль запуска стратегий в боевом режиме
  • terminal: GUI терминал для ручной торговли
  • report: построение отчетов
  • informer: уведомления в telegram
  • gui: утилиты для просмотра результатов тестов и др.

== Что уже сделано и что планируется

data - единственный модуль в системе написанный на Python, остальное на Rust. Здесь cli утилита для загрузки рыночных данных с мос.биржи, пример работы: «avin-data download -i MOEX_SHARE_SBER». Это обертка над moexalgo, с более простым api и автоматически раскладывает данные по папкам в формате parquet. Раньше использовал postgres но это медленно.. А система целится в реал-тайм работу с тиками и стаканами, что питону не по зубам. В планах - другие источники данных кроме мосбиржи, разные форматы сохранения данных (csv, postgres - опционально, хотя не вижу в этом смысла, parquet рулит).

core - тут все уже довольно стабильно, и многое даже с документацией и док-тестами на docs.rs. Тут общие структуры которые используются всеми остальными модулями. Бар, график, таймфрейм, брокер, аккаунт, актив, футпринт (кластерные графики). Тут дальше только улучшать документацию, делать еще более удобное api. Оно сделано в духе Pine от TradingView, ну насколько это возможно на Rust…

strategy - базовый «класс» для стратегий, наследуемся и пишем свою логику. Ну только не класс а trait, написал класс и наследуемся чтобы людям не знакомым с Rust тоже было понятно. Стратегия принимает биржевые события (новый тик, бар, ордер исполнен) и отправляет экшены (выставить ордер, отменить ордер…).

tester - ну базово работает. Причем весьма быстро. Прогон данных 1 года на минутках занимает 10 секунд. Синхронка. В gui результаты на графике показывает, итоговую табличку строит. Но тут еще работы на пятилетку. Строить кривую капитала, считать всякие модные коэффициенты типо Сортино, выдавать красивые отчетики с диаграммами.

trader - опять же базово работает, к брокеру подключается, загружает стратегию, ордера отправляет и тп. Асинхронка.

terminal - По задумке это кастомный терминал с возможностью добавления своих виджетов со своей аналитикой. То есть нечто большее чем просто индикаторы. А что нибудь расчитанное на периоде за годы, сохраненное и загруженное, а не в реалтайме считающееся, хотя можно и в реал-тайме. Все можно, по задумке. На практике там пара моих виджетов со статистикой по трендам и соответственно расчеты вероятностей текущей картины на графике. Я не знаю как правильно сделать плагины. По идее тут должны быть бинарные плагины которые пользователи пишут для себя или для сообщества. А в библиотеке должна быть база, ну как NeoVim или VSCode, только терминал. Не знаю пока как это сделать, но с годами разберусь.

analyse - там пока только cumulative distribution function. Добавлю что-то еще, но по задумке это тоже раздел для плагинов пользователей.

report - не начинал еще. Тут будут отчеты о торговле в боевом режиме в разрезе по стратегиями, дням, неделям, месяцам, и так чтобы красиво, чтобы приятно было рассматривать, со всякими там круговыми диаграммами.

informer - тоже не начинал.

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

== Чего хочу

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

== Репозитарий проекта

https://github.com/arsvincere/avin

== Зачатки документации

https://docs.rs/avin/latest/avin/



Последнее исправление: alexavin (всего исправлений: 2)

Немного о себе.

По неоконченному высшему - программист. Реально всю жизнь был предпринимателем, торговал мебелью. В трейдинге 3 года. Через год, начал смотреть в сторону алготрейдинга. TSLab, Meta Trader, Pine (TradingView) - сразу отпали, это не серьезно. Увидел API Тинькофф и понял что это то, что нужно. Выучил Python. Изначально сделал все на нем. 40к строк уже было, весь базовый функционал. Начал уже работать над стратегиями. По ходу дела продолжая разработку. Дошел до тиков и стало понятно - питону это не по зубам. Думал о Си С++ Cython для критических участков, но принял трудное решение - выучить и переписать все на Rust.

Я убыточный трейдер. На данный момент потерял 600тр. Начал торговать на микродепозите 4тр. Первые хорошие плюсы по 3-5-10% начал делать в этом году в феврале, уже основываясь на анализе данных который сделал, но еще в ручном режиме, не роботами. Последние два месяца закрыл в плюс +92% и +40%, тоже пока ручками, но с еще большей опорой на проделанный анализ. Уверен что терпение и труд все перетрут. В течении нескольких лет отобью потерянное и разбогатею. Да и чем пополнить депо еще есть, но сейчас главное наработать стабильность. Большие суммы - больше эмоций, больше ошибок. А в случае с роботами - ликвидность…

Торгую на 1М, горизонт сделок от нескольких минут до нескольких дней. В основном интрадей. Оборачиваю депо за день раз 10-20-30-50. Торгую с плечами x5-x20.

Реальные торговые алгоритмы оказались намного сложнее чем я думал на берегу. И переложить логику по которой я торгую на алгоритм это тысячи строк кода. Но в перспективе года двух все будет.

alexavin
() автор топика

долгий и сложный путь - переписать все на Rust. Это даст бОльшую надежность кода

после такого сектантства даже страшно стало что там за ТС. но все равно успехов в поиске грааля.

usi_svobodi
()
Ответ на: комментарий от usi_svobodi

А в чем сектанство то?

Грааль не ищу. Сразу знал что его нет. Но есть рыночные неэффективности которые можно находить и зарабатывать на этом. Стабилизируя цену и предоставляя ликвидность на экстремумах.

alexavin
() автор топика
Ответ на: комментарий от alexavin

А в чем сектанство то?

в расте. складывается впечатление, что там комьюнити сектантов, бегающих и везде рассказывающих про «надежность» и «безопасность» раста. если тебе не хватило питона, ты либо что то не так делал, либо хочешь какую то высокочастотную торговлю.

usi_svobodi
()
Ответ на: комментарий от MoldAndLimeHoney

Начинали в 2013 году с одногрупником, клеили объявления на подъезды, и продавали серийку самую дешманскую, по 10-20тр за кухню. Через 3 месяца открыли первую точку на 20м. Начали торговать МДФ, ARPA, средний сегмент. Через 4 года было 3 точки. Потом разбежались магазины распродали. Я ушел в премиалку, скурпулезная проработка деталей, сервис, качество. В 2020 дошел до заказов по дизайн проектов, и хороших чеков по несколько миллионов на квартиру. Потом дошел до рублевки, там меня поимели как лоха, закрыл три сделки в минус да так что еще должен остался. Потом… потом не важно, личное, но в связи с болезнью больше не могу заниматься мебелью, только кнопки на клавиатуре нажимать и мышку катать, вот и пришел в трейдинг.

alexavin
() автор топика
Ответ на: комментарий от usi_svobodi

в расте. складывается впечатление, что там комьюнити сектантов, бегающих и везде рассказывающих про «надежность» и «безопасность» раста.

Ну как видишь не бегаю и не рассказываю. Был большой соблазн сделать все на C++ который знал, и не вылезать за пределы Qt с которым тоже хорошо знаком. Но это любительский проект пока, и мне нравится учиться, и раст у меня вызвал не отторжение, а восхищение. А на репутацию комьюнити раста мне начхать. Я вижу дофига хороших крейтов, и дофига хорошего в языке, и его использование в серьезных проектов. Этого достаточно.

alexavin
() автор топика
Ответ на: комментарий от alysnix

Ну пока лох которого обдирают это я. Но да. Биржевая торговля это игра с нулевой суммой. Даже с отрицательной, потому как есть комиссия брокера и биржи.

Но лохи сами приходят на биржу, добровольно. Это нормально. Это как единоборства но в финансах.

alexavin
() автор топика
Ответ на: комментарий от alexavin

Ну как видишь не бегаю и не рассказываю.

тем не менее, это у тебя прям на странице проекта написано, какую раст даст надежность. хотя это еще ни кем не доказано.

usi_svobodi
()
Ответ на: комментарий от alysnix

У нас осталось три пути - закладки, биржа и ойти.

thesis ★★★★★
()
Ответ на: комментарий от usi_svobodi

тем не менее, это у тебя прям на странице проекта написано, какую раст даст надежность. хотя это еще ни кем не доказано.

Это заявлено разработчиками языка. Это приоритет в разработке языка. А по моему дилетантскому мнению - субъективно, никогда еще я не чувствовал такой уверенности в написанном коде. Никогда еще мои программы не работали так стабильно. Никаких сегфолтов. И никаких вылетов в режиме выполнения из-за «забыл тут переименовать переменную» как в питоне. Мне нравится. Никого не призываю писать на Rust. Кому надо, когда проект действительно обретет зрелость, сделает биндинги на питоне и слышать про раст не будет больше.

alexavin
() автор топика
Ответ на: комментарий от usi_svobodi

тем не менее, это у тебя прям на странице проекта написано, какую раст даст надежность. хотя это еще ни кем не доказано.

Это уже моя страница. Туда уже пришли те кому интересно. Я обосновал причину выбора языка. Я не шарю в асинхронке и многопоточке, я побоялся делать это на С++. Меня устраивает что в питоне за этим следил GIL, а в расте за этим следит компилятор. А я знаю в этом минимум. Был бы я сеньором С++, тогда раст бы не рассматривал. А при студенческих знаниях… пофигу на каком языке писать, лучше на современном, впереди еще вся жизнь.

alexavin
() автор топика
Ответ на: комментарий от alexavin

Биржевая торговля это игра с нулевой суммой.

угу. типа игра в дурака на деньги, тотализатора, и все такое. И разумеется в биржевой игре долгосрочно выигрывает ТОЛЬКО биржа…

и обьективно ТОЛЬКО бирже выгодны все эти алкотрейдинги и «новые иструменты».

Вот и вопрос. Зачем тебе, если ты не биржа, всем этим заниматься? А приглашение - «заработать» там, где в реальности тебя обдерут, является число мошенническим предложением.

alysnix ★★★
()
Ответ на: комментарий от alysnix

А приглашение - «заработать» там, где в реальности тебя обдерут, является число мошенническим предложением.

Я сразу сказал - обращение к алготрейдерам. Тем кто уже этим занимается, или хочет заняться. Я новых адептов на биржу не зову. Более того - не ходите на биржу. Это реально адово сложно. Трейдеров десятки тысяч в Росси. Среди них есть много ОЧЕНЬ умных парней. Конкурировать с ними очень сложно. Статистика такова - лишь 1 из 1000 краткосрочных трейдеров прибылен. Остальные делают ему прибыль. Я намерен стать этим трейдером и хорошо понимаю цену которую надо заплатить за успех в этом деле.

alexavin
() автор топика
Ответ на: комментарий от cocucka_B_TECTE

Чтобы и тут поимели?

Очень остроумно. Спасибо за заботу.

alexavin
() автор топика
Ответ на: комментарий от usi_svobodi

в расте. складывается впечатление, что там комьюнити сектантов

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

Сюда зашел хотел адресно написать человеко «observer», но не нашел способ это сделать. Однако он тут бывает регулярно, вот и решил создать тему, вдруг заглянет.

alexavin
() автор топика

Пустое это. Давайте лучше алкотрейдингом займёмся. Не заработаем, так развлечёмся на славу.

ugoday ★★★★★
()
Ответ на: комментарий от cocucka_B_TECTE

Ты про Теорию Игр что-нибудь слышал? Если нет, то остановись. Если да, то ты не с того начал.

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

alexavin
() автор топика
Ответ на: комментарий от ugoday

Пустое это. Давайте лучше алкотрейдингом займёмся. Не заработаем, так развлечёмся на славу.

Давай! Я не против культурного отдыха. Где когда? Угощаешь?

alexavin
() автор топика
Ответ на: комментарий от cocucka_B_TECTE

А куда тебе идти сказать?

Если там много алготрейдеров - говори, схожу. Если есть просто жгучее желание меня послать - ну пошли, не развалюсь.

alexavin
() автор топика
Ответ на: комментарий от alexavin

я зову уже торгующих

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

alysnix ★★★
()
Последнее исправление: alysnix (всего исправлений: 1)
Ответ на: комментарий от usi_svobodi

Будто программисты C++ меньшие сектанты. Вот среди них как раз и часто встречаются зашоренные индивидуумы, причем довольно токсичные. Почему часто? Просто потому, что их действительно много, этих программистов C++

anonymous
()
Ответ на: комментарий от alysnix

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

Я в курсе, что в этом деле не просто найти кого надо.

Еще раз - я сюда пришел чтобы обратиться к одному конкретному человеку «Observer». Который сам выступал с похожей темой. Но тут нет ЛС, поэтому так. И как кастануть человека я не знаю, не сижу на этом форуме. Но его уже кастанули в теме, еще раз спасибо.

alexavin
() автор топика
Ответ на: комментарий от usi_svobodi

если тебе не хватило питона, ты либо что то не так делал, либо хочешь какую то высокочастотную торговлю.

Это общеизвестный факт - на питоне в HFT и около того делать нечего. Я не HFT, но интерес в ту сторону на будущее есть. Но даже на горизонте нескольких минут если мониторишь тики и стакан - это десятки или даже сотни обновлений в секунду по одному инструменту. Следишь допустим за 50 инструментами - все, конец. А гуи в реалтайме на питоне тормозит уже на 1 тикере (это при том что PyQt!), и при том что тяжелые расчеты кешировал. Просто перерисовку графика и стакана уже не вывозит питон. И JS у Тинькофф не вывозит, а там то прогеры получше меня сидели.

alexavin
() автор топика
Ответ на: комментарий от alexavin

Интересная история, я бы послушал об этом:

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

До этих событий хорошо зарабатывал?

MoldAndLimeHoney ★★
()
Ответ на: комментарий от MoldAndLimeHoney

Вот тебе оно что даст? Вот что ты будешь делать с данными о моих доходах? Это как то повлиет на твое решение участвовать ли в проекте который теперь вообще в другой сфере? Или это просто чтобы сложить мнение обо мне? Мне вот абсолютно безразлично что обо мне думают на форуме на котором я первый, и наверняка последний раз.

Начиная с работы по индивидуальным дизайн-проектам и до рублевки зарабатывал в среднем 200к в месяц. Для этой сферы это не много, минимум. После рублевки когда оклемался максимум закрывал 1млн в месяц.

alexavin
() автор топика
Ответ на: комментарий от MoldAndLimeHoney

Ну если реально интересно - ну пиши в личку, контакты есть в профиле и в репозитарии. Я вообще открыт к общению по интересам, а бизнес 12 лет был моим интересом.

alexavin
() автор топика
Ответ на: комментарий от thesis

Увидев название темы, ожидал больше жогова от тебя.

wandrien ★★★
()

По сути могу сказать: я не бизнесмен (пока, во всяком случае). Но я видел множество случаев, когда люди пытались начать что-то с создания какого-то идеального фреймворка/сайта для бизнеса.

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

То же самое, мне кажется, применимо и к этой идее. Если есть понимание, как можно заработать на бирже, то всё получится и без идеального фреймворка. Если нет понимания, то в мире появится ещё один полузаброшенный «проект» на GitHub.

Из того, что я здесь прочитал, вырисовывается, скорее, второе.

Chiffchaff
()

Кто ж тебе данные-то даст, кто стаканы даст, да еще в реальном времени? Агрегация и сбор данных - это такая большая тема, как и сам трейдинг. Не имея данных и не имея механизма исполнения заказов, какой смысл в алготрейдинге? Это же только довесок к реальному трейдингу.

Rust поддерживаю, но здесь и жабка может справиться технически.

anonymous
()
Ответ на: комментарий от alexavin

Даже с отрицательной, потому как есть комиссия брокера

Не приятнее ли тогда спускать бобло в казино? Принцип то один.

goingUp ★★★★★
()
Ответ на: комментарий от anonymous

Кто ж тебе данные-то даст, кто стаканы даст, да еще в реальном времени? Агрегация и сбор данных - это такая большая тема, как и сам трейдинг. Не имея данных и не имея механизма исполнения заказов, какой смысл в алготрейдинге? Это же только довесок к реальному трейдингу.

На дворе не 2000 год. Любой брокер сейчас раздает реал-тайм стаканы и тики по grpc. В России по мосбирже - платная подписка мосбиржи (600р в месяц), брокер T, Финам, Алор - бесплатно.

alexavin
() автор топика
Ответ на: комментарий от goingUp

Не приятнее ли тогда спускать бобло в казино? Принцип то один.

Не приятнее.

alexavin
() автор топика
Ответ на: комментарий от goingUp

Не приятнее ли тогда спускать бобло в казино? Принцип то один.

Почему один? Казино - гарантированные слив денег (ну, почти гарантированный, ибо некоторые казино - лавочка для отмыва денег, им нужен постоянный приток посетителей, потому позволяют выигрывать иногда).

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

Моя стратегия идеально простая: когда оппошиза всей массой начинает суетиться и сливать акции голубых фишек, я их покупаю. Например, в 2019 году у либералов началась истерия, что гос-во собирается национализировать Яндекс. На этом фоне, акции Яндекс очень сильно просели. Я на все свободные деньги закупил их и потом выгодно перепродал.

То же самое сделал, например, с акциями Газпрома и многих других в 2022 году.

Да, это редкие истории, случаются не чаще раза в год, но так и «трейдинг» для меня - скорее хобби, на которое я затрачиваю минимум времени, и от которого ничего особенно не жду.

Chiffchaff
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)