Иван присоединился к Quantiacs в 2021 году и выиграл Конкурс фьючерсов Q15. Его система выделила 1 миллион долларов США. Здесь вы можете узнать больше об Иване и его мыслях о Quantiacs.

Здравствуйте, Иван, не могли бы вы рассказать нам больше о себе и своем прошлом?

Привет, меня зовут Иван, мне за тридцать. Я получил степень магистра в области финансовой математики и в настоящее время являюсь начальником отдела в международной корпорации. В своей должности я руковожу группой программистов и IT-специалистов. Я пишу в основном на .NET ежедневно.

В свободное время люблю путешествовать, читать книги по философии, играть в компьютерные игры и настольный теннис и смотреть видео с YouTube-канала Galkovskyland. На данный момент я посетил 30 разных стран, и я хочу посетить еще много!

Почему вы занялись количественной торговлей?

Я рассматривал три варианта обучения в магистратуре в России.

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

Вторым вариантом была математика. Меня интересовала теория вероятностей. Я также нашел привлекательной абстрактную математику. Наверное, я бы выбрал абстрактную алгебру.

Третьим вариантом была финансовая математика. Я выбрал его, поскольку он сочетал в себе программирование и математику. Мне нравилось работать с данными, и у меня была возможность работать с замечательными преподавателями, такими как мой научный руководитель Виктор Конев. Он был номинирован на звание профессора года в России и проводил свои исследования в Стэнфордском университете. В то же время я начал писать свои первые торговые стратегии.

Потом, после окончания института, я работал программистом. Параллельно я изучал книги Халла и Уилмотта и несколько месяцев работал в ведущем инвестиционном банке в Лондоне.

Какова была ваша роль в инвестиционном банке?

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

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

Связана ли ваша текущая работа программиста с финансами?

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

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

Одна вещь, которую я заметил, проработав в разных командах более 10 лет, заключается в том, что в области разработки программного обеспечения существует серьезная неэффективность.

О какой неэффективности вы говорите?

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

Я считаю, что с современной фронтенд-разработкой что-то не так. По моему опыту, часто некоторые этапы фреймворка вроде Scrum трансформируются в Cargo Cult и их эффективность толком не оценивается.

Какие методы вы используете в своей команде?

Мы пробовали работать с разными фреймворками и в итоге остановились на своем, который назвали «Reactive Scrum». Это в основном формат, который наиболее удобен для меня и моей команды. Это сводится к использованию Scrum и выполнению минимального количества итераций для получения конечного результата.

Обычная задача для программистов — переписать код, строго следуя обычным принципам SOLID, DRY, KISS и YAGNI при изменении некоторых требований. Это, на мой взгляд, не всегда необходимо и зависит от граничных условий. Будет ли это последнее изменение? Является ли это приоритетом?

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

Я считаю, что нельзя слепо следовать правилам. Иногда приходится ломать их, чтобы повысить эффективность.

Вы считаете себя больше программистом или трейдером?

Я в первую очередь геймер, который играет в программирование, трейдинг и другие игры. Я думаю о своей работе программистом как об игре в программирование.

Я также люблю работать удаленно из разных мест. Сегодня я в Белграде, завтракаю в отеле, завтра в Амстердаме, через три дня в Париже, через неделю в Будапеште.

Ваша выигрышная стратегия называется "Duckling PentaKill". Вы играете в видеоигры?

Да. Например, я дошел до 85 уровня в Lineage 2 на рейте х1. Мне понадобилось 1,5 года. Сейчас, конечно, у меня уже не так много времени на игры.

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

Я начал программировать на C++ для компании, в которой работал. Алгоритмы, которые были реализованы, напоминали алгоритмы из «Финансового моделирования с использованием C++» Чандана Сенгупты. Моей первой крупной платформой была Quantiacs, и я был удивлен тем, насколько легко и удобно писать алгоритмы по сравнению с другими проектами на C++/C#.

Почему вы присоединились к Quantiacs?

С тех пор, как я пошел в школу, мне нравилось участвовать в различных научно-технических конкурсах. Я занял первые места в своей области по математике, информатике, химии, географии, физике, истории и литературе.

Будучи магистрантом, я выиграл Потанинскую стипендию. Я попал в число 300 победителей, отобранных из 8 000 студентов лучших вузов России. Победители встретились в Москве, и мы сформировали 50 команд. Моя команда вошла в семерку победителей.

Год назад я участвовал в конкурсе «Лучший частный инвестор — 2020» на Московской бирже и занял 67-е место (33-е, если рассматривать только фондовый рынок) из более чем 15 000 участников.

В конце декабря 2020 года я искал информацию о количественном трейдинге на YouTube и нашел видео, рассказывающее о Quantiacs. Я прочитал о проекте и очень заинтересовался им, поэтому я подписался.

Каково ваше впечатление о платформе?

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

С Quantiacs легче развиваться как Quant для тех, кто стремится к этому. Кроме того, на платформе можно зарабатывать деньги. Как пишет Дмитрий Галковский, «человек будущего — это геймер», и пользователи платформы — это тоже геймеры, которые могут зарабатывать на игре.

Какие методы вы используете для разработки?

Я стараюсь использовать все доступные методы, черпая вдохновение из математики, разработки программного обеспечения и трейдинга. Например, я написал внутреннюю библиотеку на С++ для создания оптимальных решений с помощью специального Software Development Kit для in-memory БД. Я планировал использовать и CUDA SDK для вычислений видеочипсетов, но это оказалось не очень актуально. Всю свою жизнь я использовал Fortran, F#, Mathcad и MATLAB.

Я считаю, что тип актива (фьючерсы, акции и т. д.), волатильность, политическая обстановка, фазы рынка и латентность алгоритма являются ключевыми параметрами для выбора оптимальной стратегии. У меня нет определенного любимого метода. Лучший способ - рассмотреть различные методы.

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

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

Данные также можно использовать по-разному: вы можете начать с необработанных данных, обработанных данных (например, с помощью фильтра Калмана) и так далее.

Какие инструменты мы должны добавить в Quantiacs, чтобы помочь вам в разработке системы?

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

Какие наборы данных вы хотели бы иметь в своем распоряжении?

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

Также были бы интересны данные с других фондовых бирж (Лондона, Nikkei, Гонконга, Euro Stoxx) с эквивалентом казначейских облигаций и нот соответствующих стран.

Какой совет вы можете дать начинающим количественным исследователям?

Я могу ответить на этот вопрос с разных точек зрения.

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

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

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

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

Но, пожалуйста:

1. Никому не доверяй.

2. Помните: «Барзини попытается нанести удар первым, вам попытаются назначить встречу через кого-то, кому вы доверяете, он будет гарантировать вашу безопасность, но на этой встрече вас убьют… Кто предложит встретиться с Барзини, тот предатель. ».

Оставайтесь в безопасности.

Спасибо, Иван, и удачи в новых конкурсах Quantiacs!