Как стать автором
Обновить
5
0
Степан М. @Symsym

DevOps

Отправить сообщение

Пишем торгового бота для акций

Уровень сложностиПростой
Время на прочтение19 мин
Количество просмотров29K

Хочу показать вам, как легко создавать своих торговых роботов для фондового рынка. Вы сможете протестировать ваши торговые стратегии на истории цен акций/фьючерсов, вам нужно только написать алгоритм принятия решений вашей стратегии на покупку или продажу актива — т.к. весь основной каркас робота уже написан. А добавив всего 4 строчки кода, ваша протестированная стратегия на истории сможет работать в live на реальном рынке, выставляя заявки на покупку и продажу в рынок.

Читать далее
Всего голосов 13: ↑7 и ↓6+1
Комментарии26

Bitcoin: Кризис уничтожит крипту?

Время на прочтение19 мин
Количество просмотров26K

После майского flash crash-а, обвалившего биткоин за сутки на 33%, а общий обвал котировки с ATH превысил 50%, цена консолидируется в диапазоне 30к$ - 41к$. Куда же будет выход после консолидации? Продолжится ли to the moon, или же это начало медвежьего рынка? Когда покупать, а когда продавать? Как именно фондовый рынок влияет на крипту? Что такое эра инстуционалов? Вниманию читателя предлагаю изучить данную статью, в которой есть ответы на все вышеуказанные вопросы.

Читать далее
Всего голосов 26: ↑10 и ↓16-6
Комментарии61

Финтех на карантине: студенты и преподаватели Тинькофф Финтеха рассказывают о переходе в онлайн

Время на прочтение10 мин
Количество просмотров10K
В Тинькофф есть собственные образовательные проекты, один из которых — Тинькофф Финтех. У нас учатся аналитике, разработке и тестированию молодые специалисты из разных городов России, где есть Тинькофф Центры разработки.



С конца марта Тинькофф Образование из-за коронавируса перешло полностью на дистанционное обучение. До этого все курсы шли офлайн, в офисе Тинькофф, по три месяца, и переход произошел в самый разгар обучения. Мы спросили преподавателей и студентов, как они это пережили.
Читать дальше →
Всего голосов 34: ↑34 и ↓0+34
Комментарии4

Алгоритмический сюрреализм: Руководство по высокочастотному трейдингу за 900 миллионов микросекунд. Часть 1

Время на прочтение15 мин
Количество просмотров11K


Примечание переводчика: В блоге ITinvest на Хабре мы много пишем о технологиях, связанными с трейдингом на современных биржах. Сегодня мы представляем вашему вниманию первую часть адаптированного перевода статьи лондонского финансиста и трейдера Бретта Скотта, в которой он подробно рассказывает о явлении высокочастотного трейдинга (HFT). Этот материал поможет лучше понять все плюсы и негативные моменты, возникающие вследствие деятельности таких высокочастотных торговцев.

Пока вы читаете это предложение, алгоритм для высокочастотного трейдинга (high-frequency trading, HFT), поддерживающий связь с фондовой биржей через трейдинговую инфраструктуру «с малыми задержками», возможно, смог бы провести 1000 сделок.

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

Попытаюсь прояснить ситуацию. Это значит, что расположенные в определенном месте компьютеры, которыми владеет (или которые арендует) компания, могут: 1) получить доступ к данным фондовой биржи; 2) обработать их с помощью закодированной системы последовательных операций (алгоритма) и принять решение о том, стоит ли торговать или нет; 3) отправить обратно на биржу сообщение с ордером на покупку/продажу акций компании – например, компании по производству детских игрушек; 4) подождать, пока ордер будет исполнен, и получить подтверждение; 5) повторять все эти шаги, скажем, 250 раз в секунду.

Честно говоря, это тоже не совсем точные цифры. Лишь немногие знают, насколько быстро на самом деле алгоритмические движки осуществляют торговые операции. Но даже если они совершают 50 или даже 10 сделок в секунду, это все-таки невероятно быстро.
Читать дальше →
Всего голосов 18: ↑12 и ↓6+6
Комментарии0

Любить всех человеков — лучшие доклады с TeamLeadConf за 5 минут

Время на прочтение12 мин
Количество просмотров11K
Недавно мы с коллегами были на TeamLeadConf — это конференция об управлении, мотивации, найме, процессах и других штуках, полезных тимлидам.

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

В этот раз я написала такой обзор для коллег и подумала: а почему бы не опубликовать эти заметки для всех? Так текст на Вики переродился в эту статью.


Читать дальше →
Всего голосов 43: ↑42 и ↓1+41
Комментарии2

Принцип подстановки Лисков

Время на прочтение6 мин
Количество просмотров49K

Всем привет, меня зовут Константин. Я занимаюсь разработкой на Java в Tinkoff.ru и люблю SOLID. В этой статье мы сформулируем принцип подстановки Лисков, покажем его связь с принципом Открытости-Закрытости, узнаем, как правильно формировать иерархию наследования и ответим на философский вопрос о том, является ли квадрат прямоугольником.


Читать дальше →
Всего голосов 50: ↑40 и ↓10+30
Комментарии74

Сказ о том, как я автоматизировал квартиру с помощью Node-RED. Часть II

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


Всего голосов 63: ↑60 и ↓3+57
Комментарии23

Как мигрировать большой процесс с IBM BPM на Camunda и не останавливать разработку фич

Время на прочтение5 мин
Количество просмотров8.5K
image

Привет, меня зовут Денис, я работаю в Тинькофф и занимаюсь BPM-системами. В этой статье я расскажу, как мигрировать с легаси систем а-ля IBM BPM на опенсорс движок процессов Camunda на примере большого процесса. А в конце приглашу вас на четвертый митап по Camunda, который пройдет 27 февраля в Тинькофф, в Москве (м. Водный Стадион) вечером.
Читать дальше →
Всего голосов 30: ↑29 и ↓1+28
Комментарии13

Разработка более быстрых приложений на Vue.js

Время на прочтение14 мин
Количество просмотров24K
JavaScript — это душа современных веб-приложений. Это — главный ингредиент фронтенд-разработки. Существуют различные JavaScript-фреймворки для создания интерфейсов веб-проектов. Vue.js — это один из таких фреймворков, который можно отнести к довольно популярным решениям.

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



В этом материале будет описан процесс создания простого Vue.js-приложения, предназначенного для работы с заметками о неких задачах. Вот репозиторий фронтенда проекта. Вот — репозиторий его бэкенда. Мы, по ходу дела, разберём некоторые мощные возможности Vue.js и вспомогательных инструментов.
Читать дальше →
Всего голосов 41: ↑32 и ↓9+23
Комментарии11

Дружим ORDER BY с индексами

Время на прочтение8 мин
Количество просмотров19K


Привет, Хабр!


Я потихоньку перевожу статьи Маркуса Винанда из блога use the index luke.


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

Читать дальше →
Всего голосов 27: ↑26 и ↓1+25
Комментарии1

Повторная обработка событий, полученных из Kafka

Время на прочтение7 мин
Количество просмотров24K


Привет, Хабр.


Недавно я поделился опытом о том, какие параметры мы в команде чаще всего используем для Kafka Producer и Consumer, чтобы приблизиться к гарантированной доставке. В этой статье хочу рассказать, как мы организовали повторную обработку события, полученного из Kafka, в результате временной недоступности внешней системы.


Современные приложения работают в очень сложной среде. Бизнес-логика, обернутая в современный технологический стек, работающая в Docker-образе, который управляется оркестратором вроде Kubernetes или OpenShift, и коммуницирующая с другими приложениями или enterprise-решениями через цепочку физических и виртуальных маршрутизаторов. В таком окружении всегда что-то может сломаться, поэтому повторная обработка событий в случае недоступности одной из внешних систем — важная часть наших бизнес-процессов.

Читать дальше →
Всего голосов 21: ↑20 и ↓1+19
Комментарии5

Расширения в Kotlin. Опасный атавизм или полезный инструмент?

Время на прочтение8 мин
Количество просмотров12K


Kotlin — еще молодой язык, но уже стремительно ворвался в нашу жизнь. Из-за этого не всегда понятно, каким образом правильно реализовать тот или иной функционал и какие best practice применять.

Особенно тяжело обстоит дело с возможностями языка, которых нет в Java. Одним из таких камней преткновения оказались расширения.

Это удобный инструмент, который делает код более читаемым, практически ничего не требуя взамен. Но в то же время знаю как минимум одного человека, который если и не считает расширения злом, то точно относится к ним скептически. Ниже я хотел бы обсудить особенности этого механизма, которые могут вызвать споры и недопонимание.
Читать дальше →
Всего голосов 37: ↑34 и ↓3+31
Комментарии17

Почему нужна инструментальная поддержка пагинации на ключах

Время на прочтение5 мин
Количество просмотров19K

Всем привет! Я бэкэнд-разработчик, пишу микросервисы на Java + Spring. Работаю в одной из команд разработки внутренних продуктов в компании Тинькофф.



У нас в команде часто встает вопрос оптимизации запросов в СУБД. Всегда хочется еще чуть-чуть быстрее, но не всегда можно обойтись продуманно выстроенными индексами — приходится искать какие-то обходные пути. Во время одного из таких скитаний по сети в поисках разумных оптимизаций при работе с БД я нашел бесконечно полезный блог Маркуса Винанда, автора книги SQL Performance Explained. Это тот самый редкий вид блогов, в котором можно читать все статьи подряд.


Хочу перевести для вас небольшую статью Маркуса. Ее можно назвать в какой-то степени манифестом, который стремится привлечь внимание к старой, но до сих пор актуальной проблеме производительности операции offset по стандарту SQL.

Читать дальше →
Всего голосов 58: ↑57 и ↓1+56
Комментарии87

Пишем свою стратегию для виртуального скролла из Angular CDK

Время на прочтение8 мин
Количество просмотров12K

Привет!


В Angular CDK в седьмой версии появился виртуальный скролл.


Он отлично работает, когда размер каждого элемента одинаков, — причем прямо «из коробки». Мы просто задаем размер в пикселях и указываем, к какому элементу нужно прокрутить контейнер, сделать ли это плавно, а также можем подписаться на индекс текущего элемента. Однако что делать, если размер элементов меняется? Для этого в CDK предусмотрен интерфейс VirtualScrollStrategy, реализовав который мы научим скролл работать с нашим списком.


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


image

Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии2

Делаем HTTP-запросы, изящно деградируем (и ни единого разрыва)

Время на прочтение5 мин
Количество просмотров19K
image

Сегодня мало кто помнит, что веб-приложения могут работать без единого XHR-запроса. AJAX (Asynchronous Javascript and XML) дает классную возможность — подгружать данные без перезагрузки страницы. Эта концепция лежит в основе большинства современных SPA.

Но ничто не дается просто так, за все нужно платить. Концепция AJAX кажется предельно простой, но даже на уровне запроса данных с сервера можно встретить кучу проблем.
Читать дальше →
Всего голосов 32: ↑30 и ↓2+28
Комментарии7

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

Время на прочтение10 мин
Количество просмотров7.5K

Всем привет! Меня зовут Роман, и сегодня я поделюсь своим опытом работы в распределенной команде верстки. Расскажу о процессах, которые мы построили, и как команда из четырех человек покрывает потребности в верстке целого подразделения, состоящего из 30+ продуктов и 20+ продуктовых команд.


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

Еще расскажу о том, как:


  • Контролировать работу распределенной команды;
  • Добиваться консистентности кода в разных проектах;
  • Справедливо распределять задачи;
  • Поддерживать высокое качество работы;
  • Не накапливать незавершенные задачи;
  • Проводить профилактику выгорания и развивать сотрудников.
Читать дальше →
Всего голосов 31: ↑30 и ↓1+29
Комментарии10

Как Kafka стала былью

Время на прочтение5 мин
Количество просмотров31K


Привет, Хабр!


Я работаю в команде Tinkoff, которая занимается разработкой собственного центра нотификаций. По большей части я разрабатываю на Java с использованием Spring boot и решаю разные технические проблемы, возникающие в проекте.


Большинство наших микросервисов асинхронно взаимодействуют друг с другом через брокер сообщений. Ранее в качестве брокера мы использовали IBM MQ, который перестал справляться с нагрузкой, но при этом обладал высокими гарантиями доставки.


В качестве замены нам предложили Apache Kafka, которая обладает высоким потенциалом масштабирования, но, к сожалению, требует практически индивидуального подхода к конфигурированию для разных сценариев. Кроме того, механизм at least once delivery, работающий в Kafka по умолчанию, не позволял поддерживать необходимый уровень консистентности из коробки. Далее я поделюсь нашим опытом конфигурации Kafka, в частности расскажу, как настроить и жить с exactly once delivery.

Читать дальше →
Всего голосов 44: ↑42 и ↓2+40
Комментарии14

Как прошёл п̶е̶р̶в̶ы̶й̶ второй митап по Android от Tinkoff

Время на прочтение3 мин
Количество просмотров5K
Всем привет!

Я — Александр Гузенко, ведущий разработчик в компании Тинькофф. И так сложилось, что я постоянно топлю за какую-то движуху по шарингу знаний, курирую финтех школу по андроиду и люблю ходить на конференции и митапы.

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


Всего голосов 20: ↑19 и ↓1+18
Комментарии2

Прокачиваем ваши релизы

Время на прочтение6 мин
Количество просмотров4.3K


Генри Форд однажды сказал: «Лучшая машина — новая машина». Так и мы в группе компаний Тинькофф думаем про релизы софта. Инертность в процессе доставки фич и срочных фиксов рано или поздно приводит к большой технической задолженности перед заказчиком и чаще всего заканчивается стагнацией проекта в целом.


Гарантировать высокий показатель time to market, сохранив качество, — непростая задача. C моей точки зрения, нельзя сразу построить рельсы, по которым можно будет быстро и удобно доставлять изменения и спустя много месяцев после старта. Рост проекта обычно сопровождается ростом числа людей, работающих над ним, а значит, создает потенциальный источник хаоса внутри ваших релизов.


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

Читать дальше →
Всего голосов 31: ↑30 и ↓1+29
Комментарии3

Рукописи не горят: секрет долговечности свитков Мертвого моря, датируемых 250 годом до н.э

Время на прочтение12 мин
Количество просмотров20K


В современных музеях и архивах древние тексты, рукописи и книги хранятся в определенных условиях, что позволяет сохранить их первозданный вид для будущих поколений. Самым ярким представителем нетленных рукописей считаются свитки Мертвого моря (Кумранские рукописи), впервые найденные еще в 1947 году и датируемые 408 годом до н. э. Некоторые из свитков сохранились лишь фрагментарно, но есть и практически не тронутые временем. И тут возникает очевидный вопрос — как же людям более 2000 лет тому назад удалось создать манускрипты, дожившие до наших дней? Именно это и решили выяснить в Массачусетском технологическом институте. Что нашли ученые в древних свитках и какие технологии использовались для их создания? Об этом мы узнаем из доклада исследователей. Поехали.
Всего голосов 54: ↑52 и ↓2+50
Комментарии7

Информация

В рейтинге
Не участвует
Откуда
Нижний Новгород, Нижегородская обл., Россия
Дата рождения
Зарегистрирован
Активность