Интервью: Как C# И C++ Помогают Зарабатывать На Фондовом Рынке



Интервью: как C# и C++ помогают зарабатывать на фондовом рынке

Одной из самых популярных тем в нашем блоге стала история Джесси Сполдинга, парня, который заработал 500 тысяч долларов на фондовом рынке, используя свои знания программирования и понимание основ фондового рынка (
часть 1 , часть 2 ).

В комментариях к этим текстам некоторые пользователи хабра выразили сомнение в возможности реализации такого сценария в нашей стране.

Мы также слышали фразы типа «ну он раньше работал в этой сфере».

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

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

Примечание: Андрей Горковенко ранее работал программистом в ITinvest. В частности, он работал над проектом торговый терминал СмартХ (история его создания описана в отдельном хабратопике).

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

Эта разработка приносит ему основной доход, превышающий среднюю зарплату девелопера в Москве.

Андрей, здравствуйте! Расскажите, как вы пришли на фондовый рынок? В 2007 году я закончил четвертый курс Воронежского военного института радиоэлектроники и начал искать работу.

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

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

И какие у вас там были обязанности? Моей основной задачей была разработка торговых приложений для трейдеров компании.

Например, я делал различные системы и приводы для скальперы .

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

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

Еще одной разработкой того периода стал арбитражный робот, который мог совершать арбитражные операции на разных рынках (фьючерсном и спотовом).

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

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

Из этой компании я уже перешел на работу в ITinvest, где занялся разработкой нового торгового терминала SmartX ( история этого проекта опубликована Здесь — ок.

редактировать ).

Как вообще получилось выйти на рынок самостоятельно? Спустя некоторое время после смены работы и переезда в Москву я по желанию в свободное время написал нового робота, который мог торговать чем угодно.

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

В него можно было быстро загрузить торговую стратегию, и это сработало.

Что-то вроде Wealth Lab или российских StockSharp и TSlab. Платформа была полностью написана на C# и все стратегии, которые можно было в нее «заложить», также были написаны на этом языке.

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

Эта платформа до сих пор жива, это основной источник моего дохода.

Конечно, от 2011 года мало что сохранилось, но основные конструкции и философия остались неизменными.



Интервью: как C# и C++ помогают зарабатывать на фондовом рынке

Этот момент интересен; ты сам не трейдер, а программист. Вы сами писали торговые стратегии или вам кто-то помогал? Как заработать на такой системе, если не разбираешься в трейдинге? Это произошло в обе стороны.

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

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

Это дало понимание основных рыночных механизмов, а также знание основных стратегий работы на рынке.

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

? даки Джефф Дин от трейдинга (смеется).

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

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

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

Из таких встреч часто можно узнать много нового и интересного.

Некоторые стратегии я придумал сам, наблюдая за рынком.

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

В общем, чтобы сделать робота, нужна либо идея — своя, либо чужая, — которую можно адаптировать под свою платформу и протестировать.

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

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

Поэтому основные торговые идеи были мне знакомы, и воплотить их в торговую стратегию не составило труда.

В общем, это довольно увлекательный процесс – отделение зерен от плевел.

90% идей после тестирования оказываются шлаком, а история в лучшем случае показывает ноль.

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

Ясно.

Какова конечная прибыль от этого проекта? Как вы думаете, насколько он успешен? Чем вы можете похвастаться как успешный трейдер? Меня не заморачивают никакие внешние проявления успеха вроде дорогих машин и крутых гаджетов (я даже пользуюсь стареньким iPhone 4, которого достаточно, хотя купить можно что угодно).

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

Но я не экономлю на поездках.

Только за 2013 год я посетил 6 стран (зимой – Чехию, Германию и Австрию, летом – Финляндию, осенью – Испанию и Францию).

Что касается жизни, то, конечно, благодаря трейдингу я смог избавиться от всех скучных дел вроде поездок на работу и встреч, которые отнимают чертовски много времени (особенно в Москве).

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

Стал ли я работать меньше? Наверное, нет, но я волен строить свой график исходя из своих потребностей и настроения.

Единственное время – с 10:00 до 19:00, когда идет основная торговая сессия на бирже, нужно следить за роботом, чтобы он не упал.

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

Хотя сделать это можно откуда угодно — система уже стала достаточно умной и может контролировать себя и отправлять СМС-сообщения и электронные письма о своем состоянии.

Его можно забрать хоть из кафе, хоть с Бали.



Интервью: как C# и C++ помогают зарабатывать на фондовом рынке

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

Сейчас система полностью переписывается на C++.

Необходимости в привлечении наемной рабочей силы пока нет. Давайте поговорим о технологии.

Чем вызван первоначальный выбор C# и нынешний переход к «плюсам»? Изначально я писал проект на C#, потому что мне было проще и быстрее создать готовый продукт. Функциональность, доступная на платформе .

NET, достаточно богата (работа с контейнерами, потоками, файлами, XML, графическим интерфейсом), что делает ее хорошим выбором.

Причина перехода на C++ тривиальна — не хватает производительности.

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

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

Мне уже тогда пришлось переписать некоторые модули, а потом я начал работать над ядром.

Если взять текущего торгового робота, то вся математика и адаптеры к системам биржи и брокеров написаны на C++.

Все остальное остается на C#.

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

Такое сочетание языков — C# и C++ — чрезвычайно жизнеспособно.

Мне требуется час или два, чтобы написать новую торговую стратегию или изменить старую.

В случае сложной математики – полтора дня.

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

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



Интервью: как C# и C++ помогают зарабатывать на фондовом рынке

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

NET и Java. Последний очень популярен на западных фондовых рынках; у нас пока меньше, но есть хорошие перспективы для более широкого распространения этого языка.

Это значит, что Java-программисты будут востребованы в финансовых компаниях, фондах и брокерах.

Тем не менее, .

NET — достаточно закрытая платформа, которая также имеет ряд ограничений.

Он не очень подходит для торговли с низкой задержкой и HFT-торговли.

Но и в .

NET, и в Java можно довольно быстро создавать полноценные программные продукты.

Главный недостаток — они не самые быстрые (если считать микросекунды).

Вы сказали, что приобрели серверы для работы системы.

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

Деньги за все оборудование были сняты с брокерского счета.

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



Интервью: как C# и C++ помогают зарабатывать на фондовом рынке

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

Деньги буквально раздавались направо и налево.

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

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

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

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

, но потеря стартового капитала была бы крайне негативным событием для проекта).

Как и все, что связано с неопределенностью и риском, торговля имеет свои взлеты и падения.

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

Подведя черту под почти тремя годами трейдинга «самостоятельно», я задался вопросом, отказался ли бы я от своей зарплаты (по тем временам очень и очень приличной для 25-летнего программиста) в пользу трейдинга, если бы я известно, что я выживу в течение этих 3 лет? Определенно да.

Ссылки и посты по теме:

Теги: #разработка #фондовый рынок #программирование #торговые роботы #разработка веб-сайтов
Вместе с данным постом часто просматривают: