Хочу показать вам, как легко создавать своих торговых роботов для фондового рынка. Вы сможете протестировать ваши торговые стратегии на истории цен акций/фьючерсов, вам нужно только написать алгоритм принятия решений вашей стратегии на покупку или продажу актива — т.к. весь основной каркас робота уже написан. А добавив всего 4 строчки кода, ваша протестированная стратегия на истории сможет работать в live на реальном рынке, выставляя заявки на покупку и продажу в рынок.
DevOps
Bitcoin: Кризис уничтожит крипту?
После майского flash crash-а, обвалившего биткоин за сутки на 33%, а общий обвал котировки с ATH превысил 50%, цена консолидируется в диапазоне 30к$ - 41к$. Куда же будет выход после консолидации? Продолжится ли to the moon, или же это начало медвежьего рынка? Когда покупать, а когда продавать? Как именно фондовый рынок влияет на крипту? Что такое эра инстуционалов? Вниманию читателя предлагаю изучить данную статью, в которой есть ответы на все вышеуказанные вопросы.
Финтех на карантине: студенты и преподаватели Тинькофф Финтеха рассказывают о переходе в онлайн
С конца марта Тинькофф Образование из-за коронавируса перешло полностью на дистанционное обучение. До этого все курсы шли офлайн, в офисе Тинькофф, по три месяца, и переход произошел в самый разгар обучения. Мы спросили преподавателей и студентов, как они это пережили.
Алгоритмический сюрреализм: Руководство по высокочастотному трейдингу за 900 миллионов микросекунд. Часть 1
Примечание переводчика: В блоге ITinvest на Хабре мы много пишем о технологиях, связанными с трейдингом на современных биржах. Сегодня мы представляем вашему вниманию первую часть адаптированного перевода статьи лондонского финансиста и трейдера Бретта Скотта, в которой он подробно рассказывает о явлении высокочастотного трейдинга (HFT). Этот материал поможет лучше понять все плюсы и негативные моменты, возникающие вследствие деятельности таких высокочастотных торговцев.
Пока вы читаете это предложение, алгоритм для высокочастотного трейдинга (high-frequency trading, HFT), поддерживающий связь с фондовой биржей через трейдинговую инфраструктуру «с малыми задержками», возможно, смог бы провести 1000 сделок.
Я говорю «возможно», потому что это зависит от того, какую паузу вы делаете в местах, где расставлены запятые. Если при чтении вы предпочитаете останавливаться после каждой запятой, то вы даете алгоритму шанс выставить еще несколько сотен ордеров.
Попытаюсь прояснить ситуацию. Это значит, что расположенные в определенном месте компьютеры, которыми владеет (или которые арендует) компания, могут: 1) получить доступ к данным фондовой биржи; 2) обработать их с помощью закодированной системы последовательных операций (алгоритма) и принять решение о том, стоит ли торговать или нет; 3) отправить обратно на биржу сообщение с ордером на покупку/продажу акций компании – например, компании по производству детских игрушек; 4) подождать, пока ордер будет исполнен, и получить подтверждение; 5) повторять все эти шаги, скажем, 250 раз в секунду.
Честно говоря, это тоже не совсем точные цифры. Лишь немногие знают, насколько быстро на самом деле алгоритмические движки осуществляют торговые операции. Но даже если они совершают 50 или даже 10 сделок в секунду, это все-таки невероятно быстро.
Любить всех человеков — лучшие доклады с TeamLeadConf за 5 минут
Обычно после конференций мы делимся впечатлениями с теми, кто на конференцию не пошел. Самый популярный формат — список топовых докладов с краткими заметками, который рассылается в Слаке и по почте.
В этот раз я написала такой обзор для коллег и подумала: а почему бы не опубликовать эти заметки для всех? Так текст на Вики переродился в эту статью.
Принцип подстановки Лисков
Всем привет, меня зовут Константин. Я занимаюсь разработкой на Java в Tinkoff.ru и люблю SOLID. В этой статье мы сформулируем принцип подстановки Лисков, покажем его связь с принципом Открытости-Закрытости, узнаем, как правильно формировать иерархию наследования и ответим на философский вопрос о том, является ли квадрат прямоугольником.
Сказ о том, как я автоматизировал квартиру с помощью Node-RED. Часть II
Как мигрировать большой процесс с IBM BPM на Camunda и не останавливать разработку фич
Привет, меня зовут Денис, я работаю в Тинькофф и занимаюсь BPM-системами. В этой статье я расскажу, как мигрировать с легаси систем а-ля IBM BPM на опенсорс движок процессов Camunda на примере большого процесса. А в конце приглашу вас на четвертый митап по Camunda, который пройдет 27 февраля в Тинькофф, в Москве (м. Водный Стадион) вечером.
Разработка более быстрых приложений на Vue.js
Vue.js — это прогрессивный фреймворк, предназначенный для создания пользовательских интерфейсов. Его базовая библиотека направлена, в основном, на создание видимой части интерфейсов. В проект, основанный на Vue, при необходимости легко интегрировать и другие библиотеки. Кроме того, с помощью Vue.js и с привлечением современных инструментов и вспомогательных библиотек, можно создавать сложные одностраничные приложения.
В этом материале будет описан процесс создания простого Vue.js-приложения, предназначенного для работы с заметками о неких задачах. Вот репозиторий фронтенда проекта. Вот — репозиторий его бэкенда. Мы, по ходу дела, разберём некоторые мощные возможности Vue.js и вспомогательных инструментов.
Дружим ORDER BY с индексами
Привет, Хабр!
Я потихоньку перевожу статьи Маркуса Винанда из блога use the index luke.
Первой статьей в цикле был манифест Маркуса о важности использования безофсетной пагинации на ключах. Мы рассмотрели всего один пример, как этот подход работает на практике. В этой и следующих статьях я буду обосновывать такой подход — с графиками и примерами, как все любят.
Повторная обработка событий, полученных из Kafka
Привет, Хабр.
Недавно я поделился опытом о том, какие параметры мы в команде чаще всего используем для Kafka Producer и Consumer, чтобы приблизиться к гарантированной доставке. В этой статье хочу рассказать, как мы организовали повторную обработку события, полученного из Kafka, в результате временной недоступности внешней системы.
Современные приложения работают в очень сложной среде. Бизнес-логика, обернутая в современный технологический стек, работающая в Docker-образе, который управляется оркестратором вроде Kubernetes или OpenShift, и коммуницирующая с другими приложениями или enterprise-решениями через цепочку физических и виртуальных маршрутизаторов. В таком окружении всегда что-то может сломаться, поэтому повторная обработка событий в случае недоступности одной из внешних систем — важная часть наших бизнес-процессов.
Расширения в Kotlin. Опасный атавизм или полезный инструмент?
Kotlin — еще молодой язык, но уже стремительно ворвался в нашу жизнь. Из-за этого не всегда понятно, каким образом правильно реализовать тот или иной функционал и какие best practice применять.
Особенно тяжело обстоит дело с возможностями языка, которых нет в Java. Одним из таких камней преткновения оказались расширения.
Это удобный инструмент, который делает код более читаемым, практически ничего не требуя взамен. Но в то же время знаю как минимум одного человека, который если и не считает расширения злом, то точно относится к ним скептически. Ниже я хотел бы обсудить особенности этого механизма, которые могут вызвать споры и недопонимание.
Почему нужна инструментальная поддержка пагинации на ключах
Всем привет! Я бэкэнд-разработчик, пишу микросервисы на Java + Spring. Работаю в одной из команд разработки внутренних продуктов в компании Тинькофф.
У нас в команде часто встает вопрос оптимизации запросов в СУБД. Всегда хочется еще чуть-чуть быстрее, но не всегда можно обойтись продуманно выстроенными индексами — приходится искать какие-то обходные пути. Во время одного из таких скитаний по сети в поисках разумных оптимизаций при работе с БД я нашел бесконечно полезный блог Маркуса Винанда, автора книги SQL Performance Explained. Это тот самый редкий вид блогов, в котором можно читать все статьи подряд.
Хочу перевести для вас небольшую статью Маркуса. Ее можно назвать в какой-то степени манифестом, который стремится привлечь внимание к старой, но до сих пор актуальной проблеме производительности операции offset по стандарту SQL.
Пишем свою стратегию для виртуального скролла из Angular CDK
Привет!
В Angular CDK в седьмой версии появился виртуальный скролл.
Он отлично работает, когда размер каждого элемента одинаков, — причем прямо «из коробки». Мы просто задаем размер в пикселях и указываем, к какому элементу нужно прокрутить контейнер, сделать ли это плавно, а также можем подписаться на индекс текущего элемента. Однако что делать, если размер элементов меняется? Для этого в CDK предусмотрен интерфейс VirtualScrollStrategy
, реализовав который мы научим скролл работать с нашим списком.
В моем случае требовалось сделать календарь для мобильного представления, который можно прокручивать непрерывно, а количество недель в месяце всегда разное. Попробуем разобраться, что представляет собой стратегия виртуального скролла и напишем свою.
Делаем HTTP-запросы, изящно деградируем (и ни единого разрыва)
Сегодня мало кто помнит, что веб-приложения могут работать без единого XHR-запроса. AJAX (Asynchronous Javascript and XML) дает классную возможность — подгружать данные без перезагрузки страницы. Эта концепция лежит в основе большинства современных SPA.
Но ничто не дается просто так, за все нужно платить. Концепция AJAX кажется предельно простой, но даже на уровне запроса данных с сервера можно встретить кучу проблем.
Как организовать эффективную работу распределенной команды верстки
Всем привет! Меня зовут Роман, и сегодня я поделюсь своим опытом работы в распределенной команде верстки. Расскажу о процессах, которые мы построили, и как команда из четырех человек покрывает потребности в верстке целого подразделения, состоящего из 30+ продуктов и 20+ продуктовых команд.
Еще расскажу о том, как:
- Контролировать работу распределенной команды;
- Добиваться консистентности кода в разных проектах;
- Справедливо распределять задачи;
- Поддерживать высокое качество работы;
- Не накапливать незавершенные задачи;
- Проводить профилактику выгорания и развивать сотрудников.
Как Kafka стала былью
Привет, Хабр!
Я работаю в команде Tinkoff, которая занимается разработкой собственного центра нотификаций. По большей части я разрабатываю на Java с использованием Spring boot и решаю разные технические проблемы, возникающие в проекте.
Большинство наших микросервисов асинхронно взаимодействуют друг с другом через брокер сообщений. Ранее в качестве брокера мы использовали IBM MQ, который перестал справляться с нагрузкой, но при этом обладал высокими гарантиями доставки.
В качестве замены нам предложили Apache Kafka, которая обладает высоким потенциалом масштабирования, но, к сожалению, требует практически индивидуального подхода к конфигурированию для разных сценариев. Кроме того, механизм at least once delivery, работающий в Kafka по умолчанию, не позволял поддерживать необходимый уровень консистентности из коробки. Далее я поделюсь нашим опытом конфигурации Kafka, в частности расскажу, как настроить и жить с exactly once delivery.
Как прошёл п̶е̶р̶в̶ы̶й̶ второй митап по Android от Tinkoff
Я — Александр Гузенко, ведущий разработчик в компании Тинькофф. И так сложилось, что я постоянно топлю за какую-то движуху по шарингу знаний, курирую финтех школу по андроиду и люблю ходить на конференции и митапы.
Примерно полтора месяца назад я загорелся идеей провести митап. У нас внутри каждую неделю проходят регулярные встречи, где андроид-разработчики рассказывают о новых подходах, интересных задачах и сложных проблемах, которые им приходилось решать.
Мне показалось, что эти темы могут быть интересны сообществу и вне компании, поэтому я начал организацию митапа.
Прокачиваем ваши релизы
Генри Форд однажды сказал: «Лучшая машина — новая машина». Так и мы в группе компаний Тинькофф думаем про релизы софта. Инертность в процессе доставки фич и срочных фиксов рано или поздно приводит к большой технической задолженности перед заказчиком и чаще всего заканчивается стагнацией проекта в целом.
Гарантировать высокий показатель time to market, сохранив качество, — непростая задача. C моей точки зрения, нельзя сразу построить рельсы, по которым можно будет быстро и удобно доставлять изменения и спустя много месяцев после старта. Рост проекта обычно сопровождается ростом числа людей, работающих над ним, а значит, создает потенциальный источник хаоса внутри ваших релизов.
Наш опыт вряд ли стоит расценивать как инструкцию для достижения успеха, однако ряд идей показался мне достаточно интересным, чтобы поделиться с вами. Начнем.
Рукописи не горят: секрет долговечности свитков Мертвого моря, датируемых 250 годом до н.э
В современных музеях и архивах древние тексты, рукописи и книги хранятся в определенных условиях, что позволяет сохранить их первозданный вид для будущих поколений. Самым ярким представителем нетленных рукописей считаются свитки Мертвого моря (Кумранские рукописи), впервые найденные еще в 1947 году и датируемые 408 годом до н. э. Некоторые из свитков сохранились лишь фрагментарно, но есть и практически не тронутые временем. И тут возникает очевидный вопрос — как же людям более 2000 лет тому назад удалось создать манускрипты, дожившие до наших дней? Именно это и решили выяснить в Массачусетском технологическом институте. Что нашли ученые в древних свитках и какие технологии использовались для их создания? Об этом мы узнаем из доклада исследователей. Поехали.
Информация
- В рейтинге
- Не участвует
- Откуда
- Нижний Новгород, Нижегородская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность