×

Біржовий кодінг. Фондові ринки [не forex та блокчейн]

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

Всім привіт. Хотів би почати обговорення на тему «Біржовий кодінг(не FOREX)».
Цікаво почути чи багато людей котрі заходять на цей сайт займаються програмуванням в цьому напрямку, а саме:

• Розробка власних індикаторів/алгоритмів
• Розробка програмного забезпечення
• Штучний інтелект
• Торговельні боти
• Високочастотний трейдінг.

Цікаво почути які використовуєте фреймворкі для обробки даних, апі для отримання котирувань, платні чи безкоштовні. Можу поділитись своїм досвідом.
Пишу для себе різні індикатори(одразу кажу, що ніяких стохастіків та RSI я не малюю, бо це все повне дно і вам раджу з цим не зв’язуватись) загалом направленні на обробку об’єму торгів, принти та роботу з формаціями свічок.

Графіки не малюю, кожен що поважає себе постачальник біржових даних надає історію графіків одразу в барах/свічках від 1хв до року на довгу історію.
Зі свого досвіду хотів би поділитись в таких напрямках.

1. Тип та архітектура додатку
2. Провайдери даних

Загалом в моїй системі бере участь 3 додатки.

• Провайдер — Console App. Core 3.0
• Отримувач — Console App. Core 3.0
• Вивід даних після аналізу — Web: Angular 8 + WebApi Core 3.0

Провайдер — Додаток який запускай процес отримання даних від провайдерів, тобто постачальник біржових даних. В цей додаток заходять мільйони принтів з тих бірж до яких я під’єднався. Архітектура додатку класична.

prntscr.com/qns3o4

Будую свій кастомний Staptup на кшталт як у вебі при створенні додатку в студії. В стартапі реєструю всі інтерфейси, вся робота іде тільки через них. І вперед => запускаю першого провайдера.

service.StartStreamActiveTickSP500();

Після запуску бачу в консоль що є контакт.

prntscr.com/qns26z

Провайдер починає надавати стрім без затримок на всі тікера які я вказав при конекті. В моєму випадку це акції NYSE, NASDAQ. Далі починає працювати RabbitMQ на даний момент без обгортки MassTransit. Хоча знаю що мастранзіт покращує роботу рабіта. RabbitMQ тут по любому потрібен, бо потрібно будувати чергу на майбутню обробку даних. З цією задачею кролик справляються чудово. Головний плюс, якщо в вас впаде отримувач даних(другий додаток) то після підняття ви все одно побачите чергу яку рабіт для вас зберіг і дані відпрацюють. Дуже зручно, бо коли потрібно відключити другий додаток та зробити якісь зміни(а перші два дотики працюють майже цілодобово) то не слід переживати що я втрачу данні. Рабіт помістить те що я отримав від платних апі в чергу і при першій змозі відправить на додаток отримувача. І взагалі з рабітом можна будувати багато інших додатків і відсилати на які хочеш адреси й вони ніяк не будуть залежить від першого додатку — провайдера де ви отримуєте данні. Максимальне розділення на відправника та отримувача — це напевно одне з головних що потрібно зробити коли працюєш з отриманням біржових даних у великій кількості. Заходить від провайдера всі зміни Level 1 та всі принти. Будую модель і відправляю на другий додаток кожну зміну. В секунду на 500 акції може буте 10к+ на відкритті NYSE. На цьому перший додаток закінчується.

Отримувач — додаток який отримує данні від першого додатку у вигляді масиву байтів.
Розпаковую та проганяю по всіх сервісах які мені потрібно. Зокрема просто вивожу в консоль просту кастому стрічку всіх принтів.

prntscr.com/qns3br

В цьому додатку хочу звернути увагу на роботу Quartz.net. Доволі зручна бібліотека для роботи з часом. Використовую її для запису в базу даних в певні інтервали часу та інших маніпуляціях. В цьому додатку така сама архітектура як і в першому. На верх дивляться тільки інтерфейси та робота через них. Я викликаю всі необхідні сервіси для аналізу інфи. Якщо хочу шукати формації то викликаю потрібний інтерфейс. Якщо хочу додати новий аналіз. Спочатку пишу код окремо. Потім відключаю другий додаток та вставляю в код і запускаю. Переживати за втрату даних не потрібно(стрім даних в першому додатку іде) бо рабіт все поміщає в чергу та при запуску отримувача я побачу всі прінти які чекали відправки. Кожний певний період записую все в базу. Використовую EF та MSSQL. Ну по суті на цьому другий додаток закінчується.
Вивід даних після аналізу — класичний додаток за шаблоном WebApi на Angular8 & Core 3.0. Про цю частина якщо чесно нема чого цікавого писати. Для зручності та швидкості реалізації інтерфейсу використовую PrimeNG. Безкоштовна та доволі велика бібліотека з багатьма корисними контролами.

Провайдери:

Зараз я використовую платну апі за 94$ від ActiveTick. Сервіс — дно. Сама послуга на 8 з 10. Дає дані на Level 1 та кожні зміни в котировках, як ви бачили на скріні принтів, будь-яка зміна з котируванням навіть просто кількість лотів одразу приходить мені в код. Також дає дані на принти, openbook, історію графіків та об’єми. Але зараз в них доступ тільки на акції та опціони. Ф’ючерси закриті.

Доволі легка документація та дуже зрозумілий приклад додатку з отриманням даних який ви отримуєте після оплати. Їхня ліба інсталюється до вас на комп і ви її можете найти в студії при підключені бібліотеки у ваш проєкт. Реалізувати для отримування даних в мене зайняло десь годину від оплати до вивода в консоль в тестовому додатку.
Хотів би від спільноти почути які ви використовуєте апі для даних. Зараз я додаткову хочу взяти ще одну апі від Intrinio. Доволі потужний ресурс з великим вибором різних апі з гарним сервісов та більш дешевший. Але на акціях в них не постачається котирування. Тільки принти. А мені котирування та левел 1 потрібен. Може хтось вже працював з ним та поділиться досвідом?

Наступне що цікавить це данні на ф’ючерси. Є з ними проблема що вони доволі дорогі. Наприклад, на отримання принтів + котирування на основні американські ф’ючерси коштує $1500 + в місяць. З затримкою на 15 хв буде в районі 1000. Ціну вони точну не дають, для кожного клієнта розраховують окремо в залежності від потреб.
Знов же хотілось почути від спільноти, хто і де бере данні на ф’ючерси з Чикаго з повним стрімом?

Ось тут є непоганий список біржових апішок rapidapi.com/...​4Pxk3bsgwEOAaArfwEALw_wcB

Наступну апішку яку хочу помістити у свою колекцію це апі yahoo-Finance. В них доволі приємний формат подачі бухгалтерської статистики про компанії. Відповідно апішку їхню хочу використовувати саме для аналізу бухгалтерської звітності.

До речи хотів би звернути увагу спільноти що в Україні прийняли закон (в 2018 році) про бух. облік та перехід на систему звітності IFRS всіх підриємтв до 2025 року(якщо не помиляюсь). Сподіваюсь «слуги» не звернуть курс євроінтеграції та ми успішно приєднаємось до єдиного бух обліку світу. В США та відповідно їх апі дають звітність за системою GAAP. Я до неї звик і вона як на мене краща для фінансів ніж IFRS. Але через те, що ми в Європі то переходимо як раз на IFRS, хоча GAAP краща підлаштована для звітності в контексті такої капіталістичної махіни як США. Різниця в них не є великою. Так що раджу вже вчити, брати данні з американських ресурсів або ЄС, щось своє писати 😊.
На даний момент можу підвести ---- та надати слово спільноті. До написаних раніше питань до наших ITшників додаю настпуні

• Ваші колекції апі. Особливо цікавлять ф’ючерси
• Які мови програмування?
• Як відправляєте ордера якщо торгуєте через бота?
• Чи допомагає вам кодінг в трейдінгу(якщо торгуєте).

Прошу фанатів криптовалют оминути цю тему. Мені шкода вас якщо ви прийшли в трейдинг під час моди кріпти. Ваш світогляд про торгівлю з самого початку зламано та доведеться довго чинити. Хотілось би почути трейдерів реальних ринків. Я не фанат блокчейнів. Я їх не пишу. Хоча визнаю цю технологію як факт чогось потрібного для цієї цивілізації.
Про мене. Загалом в трейдингу вже десь 10 років. З них роботи в професійному пропі 2,5 роки. Сам вже і вів навчальні курси та відкривав проп з інвестором на криптовалюти(така його вимога була). Закінчилось майже фатально. Зрозумів що на реальних біржах без кодінгу давно вже нема чого робити. То ж навчитись професійно писати код та працювати з даними просто зобов’язан. Саме тому пішов у сферу IT і зараз працюю в одній компанії на посаді Full Stack .NET Dev. Пишу власний продукт, але це вже інша історія.

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному2
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Есть спутниковый поставщик данных всех бирж мира реалтайм. Раньше назывался Tenfore. Сейчас сложно найти, кто продает этот сервис. Но данные в тарелки льются с 2003 по сей день. Там автоапдейт со спутника. Система защиты не менялась с тех самых пор. Были различные подписки с разной ценой. Возможно, что-то для себя найдете.

Я думаю навіть якщо не брати торгівлю ботів, а просто як система моніторінгу що б не пропустити необхідні речи, то впевнений результат набагато краще.

для HFT

Якщо чесно то для хвт потрібно мати дуже якісну апішку, на рівні блумберга, бо ловити скалпінг заради прибутку через плюсовій рибейт на простій апішці мені здається буде важко. Якщо просто інтрадей, то як не крути потрібно теж реал-тайм але можна обійтись простими провайдерами. Якщо вже свінг, то можна і з затримкую. Стосовно високочастотки, то United Traders(до війни я там працював) то вони фанати скальпінгу і все рівно все руками робили і те що намагались закодити буле як я знаю марно.

Ваші колекції апі. Особливо цікавлять ф’ючерси

Я работаю в хедж фонде что специлизируется на фючерсах, но для ритейл пользователя цена за данные это неподьемные затраты. Для себя использую питоновскую pandas c встроенными бесплатными фидами популярных ETF(eod)

Які мови програмування?

Сравнивая с Python, Java, Scala, определил, что оптимально использовать Python. Есть набор общеприменяемых развитых библиотек. И разрабатывать\прототипировать намного быстрее.

Як відправляєте ордера якщо торгуєте через бота?

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

Чи допомагає вам кодінг в трейдінгу(якщо торгуєте).

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

ETF(eod)

EOD ви маєте на увазі End-of-Day ... тобто в кінці дня отримуєте дату безкоштовно по тіках? Ніколи по EOD нічого не брав хоча чув пару разів

не forex та блокчейн

Про биржи не скажу, но на текущем месте поучаствовал в разработке и собственной Форекс-платформы, и в интеграции с МТ4, и в разработке собственного ERC-20 токена. Но с очень узкоспециализированной стороны — со стороны СУБД Oracle. Это все, я думаю, подпадает под категорию «Forex и Blockchain».

мало хто в цьому напрямку працює) по коментах це видно.

Работает достаточно, просто мало кто светится на форумах. Почему-то Форекс воспринимается многими как что-то неприличное.

выигрывают только те которые покупают место на бирже и имеют инсайд инфу

Статистика безжалостна — 95% новичкой что на Форексе, что в Крипте — терпят убытки. И не потому, что биржи или брокеры их обманывают (хотя бывают и такие, бросающие тень на всю индустрию в целом).

Чи допомагає вам кодінг в трейдінгу(якщо торгуєте).

Да, т.к. при разработке функционала хочешь-не-хочешь, но приходится понимать нюансы функционирования того или иного инструмента. При торговле детских ошибок уже не совершаешь, наподобие неучета комиссии за сделку на ПЛ.

Прошу фанатів криптовалют оминути цю тему.

К сожалению, не получится :-)
С точки зрения разработчика инструментов и для классического Форекса, и для Крипты, могу с уверенностью сказать, что будущее — как раз за криптой. Особенно после того, как ЕС и другие юрисдикции в большей или меньшей мере прикрутили гайки всей Форекс-индустрии, а по Крипте — четко видно желание зарегулировать этот сегмент, а не запрещать его...

могу с уверенностью сказать, что будущее — как раз за криптой

ну то спірне питання))) краще не будем починате)

В свое время занимался и писал для MT4(5).Потом на гепе репо был слит.В прошлом году общался с человеком который у буржуев на бирже в IT секторе работал.По его словам выигрывают только те которые покупают место на бирже и имеют инсайд инфу.Все остальное это детские поделки.Сам это дело забросил.И судя по комментам тут мало знающих людей.

Так, згоден, мало хто в цьому напрямку працює) по коментах це видно. Стосовно

место на бирже и имеют инсайд инфу

явне перебільшення але в цій сфері скільки людей стільки і думок

Была ветка про Jane Street на доу. В Киеве есть ( были ) atto trading LLC и algoTradeSoft, вряд ли с ними кто-то делился инсайд инфой)

Была ветка про Jane Street на доу

А где? Быстрый поиск не нашел. Я бы почитал :)

Ну искать надо, там про собес было насколько помню. У них офиса в Киеве нет, насколько знаю. Написал к тому, что профессиональные трейдинговые алгофирмы существуют

Фьючерсы есть у AMP futures ( FCM ) через платформу МТ5, но склейки нет, следующих тикеров ( например мартовская нефть ) тож нет. Зато бесплатно, можно скачать историю тиков ( соответствовать будут транзакциям ) и есть доступ к стакану. ЯП — mql5 ( с++ — - )

ну історію тіков це звісно норм але все ж таки стрім зручніше. Дякую за інфу

Ну когда котировки приходят — получаете их конечно. Также как и обновление стакана. Без задержек. Или не понял про стрим?

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

Підписатись на коментарі