В продолжении
Привет Смартлаб. Сегодня рынок запустили на полную, формально, выходные закончены, так что можно подвести итоги.
Как я уже писал, выпал шанс в высвободившееся время заняться проблемами, до которых не доходили руки, да и просто закрыть пробелы в знаниях. Опять же, как я уже писал, в тяжелое время, предпочитаю с головой уйти в работу, это хоть как то спасает и вытесняет дурные мысли и новости из головы.
1. Сперва наперво я кинулся вычислять многолетние баги, которые не дают покоя раз в месяц. Другого шанса у меня не будет, как в неработающий рынок. Вычислил и устранил процентов 40, сильно подтянул знания, надеюсь теперь будет еще стабильнее.
2. Устранил пробел в накапливании истории. Грезил этим много месяцев. Ну наконец то. Для этого:
- Минимально освоил clickhouse. Разрабы под себя конечно навертели кучу фитчей, до которых мне еще идти и идти. Как олд скульному разрабу еще со времен firebird, я сейчас как на Запад приехал в период СССР
- Под это дело прикрутить c++. Это был одно из главных условий, чтобы БД была готова принимать очень много и легко прикручивался c++
Немного статистики:
- За 4 недели ордерлог накопил 145млн записей и таблица занимает 3Гб. Ну это в разы лучше, чем у меня было на коленке
- За 4 недели level1 всей валютки накопил 45млн записей и занимает 750Мб
3. Ну и наконец самое главное. Это python ). Я писал, что наверное руки до него не дойдут, но ситуация распорядилась по другому. Решил я его пощупать и устранить пробелы в знаниях, а на деле вышло, что мне пришлось максимально быстро его вводить в арсенал и запускать торговлю.
python конечно хорош ) Но это я говорю с позиции разраба, который больше уделяет внимание ассемблеру и еще ниже. Питонисты, в прямом смысле слова, могут сидеть плевать в потолок и за них все само будет делаться.
Я помню, одно из первых тестовых заданий в испытательный срок было визуализировать зависимости аски и бидов валютки и фьюча. Ох я тогда намучался (в те то годы). Питон это делает на раз. Делал кучу подобных (бид/аск) графиков за секунды.
Python я прикрутил к той же clickhouse. Кстати достаточно интересный момент. В период малой ликвидности, перед какой то движухой, спред стакана сужается на какое то непродолжительное время. Вряд ли это когда то пригодится далее, но так и запишу «исследовать когда нить спред и около спред на наличие крупных участников».
4. Так вот, почему приоритеты резко сменились и python вышел на первое место. Рыночек сильно откатил. Не только в ценах. Но и стратах. Сейчас возвращаются страты десятых годов, рынок «дикий Запад». Такая вот нехорошая штука вышла: все, во что вкладывались миллионы в последние годы, пришлось заморозить и законсервировать, либо надо уводить как то на другие рынки. Достались с пыльной полки старые страты. Теперь страты десятилетней давности запускаются на технологиях пятилетней давности. Такая вот штука вышла. Совершенно очевидно, получилось, что пришлось спуститься на 2-3 уровня вниз и начать «щемить» тех, кто там, причем с солидным запасом прочности. А что делать? Как то надо выживать. Но это случилось не у всех, у кого было в равной доле развиты мат аппарат и технологии, никуда не опускались и не подымались, продолжили так же собирать свою денюжку.
Так вот python теперь помогает хоть как то расширять мат аппарат. Увлекся я быстро и глубоко. Начал там строить всякие спреды и зависимости. Данные тупо потягиваю c iss moex. И даже пришлось задействовать qlua, чтобы видеть все это не с 15-ти минутной задержкой.
На днях пришлось запустить веб сервер, чтобы глядеть свои художества из далека и даже в выходные, пока выгуливаю детей. Выглядит в браузере это примерно вот так:
Ну вот как то так я пережил свои выходные, уверен вышел из них еще сильнее, мобильнее, осталось дело за рынком, чтобы продолжил и дальше подкидывать крошки хлебушка. Всем удачи в новых реалиях. Работаем.
А что за «cython», его модификация? Применяете на практике?
для hft питон точно не пойдет наверное ). Просто пример. Подгрузить данные свечей за 2 недели с api moex и обработать их (что нибудь подсчитать двумя вложенными циклами) уходит секунд 30-40. На компилируемых языках это наверное 1-2 секунды.