Блог им. Ermac
Добрый день, SmartLab!
Этот пост пишу скорее для себя, чем для кого-то, чтобы зафиксировать свои намерения в виде конкретных действий и плана и идти к ним. Фиксирование этих целей письменно — само по себе полезное занятия, но заодно и публичное заявление вешает на меня чувство ответственности за собственные слова. Я говорю чувство, так как по факту, конечно, никто никому ничего не должен.
Сначала немного вводной и лирики.
Меня зовут Павел. У меня хорошее математическое образование (МГУ ВМК). Есть достаточно большой опыт в ETL, последние несколько лет активно развиваюсь и работаю в области Data Science, той самой, вокруг которой много хайпа сейчас.
Не так давно, а именно около 3-4 месяцев назад начал интересоваться инвестициями. Почему не раньше? Потому что финансовая грамотность у нас страдает, я не стал исключением.
Толчком ко всему стало прочтение небезызвестной книги «Богатый папа, бедный папа». После — недельные курсы по трейдингу и инвестированию, которые дали самые основы и базовое представление о том, как вообще работает рынок, как организованы торги, шорты-лонги-маржа и прочее и прочее. Переварив немного происходящее, я понял, что надо что-то делать дальше, иначе все как было, так и останется на месте. Как мне кажется, биржа — отличное место приложения существующих знаний. Полная самостоятельность в принятии решений и полная независимость от окружающих.
Мне интересны оба аспекта работы с биржей — как инвестирование, так и трейдинг.
1) Инвестирование. Игра с положительной суммой. Изучаю фундаментальные показатели компаний, какие игроки есть на рынке, их взаимосвязь с внешним миром и с нашим государством в частности. Смотрю на отчетность, смотрю выступления с конференций смартлаба, черпаю какую-то информацию с форумов. Начал что-то делать руками. Пока мне кажется, важным начать делать какие-то сделки и инвестиции, основанные на своих выводах, и далее сверять правильность выводов по финансовым показателям. Инвестирование вижу себе важной составляющей присутствия на бирже, в том числе как место приумножения денег, заработанных с помощью трейдинга.
2) Трейдинг. Игра с отрицательной суммой. На текущий момент прочитана книга «Подлые рынки и мозг ящера», в процессе — «Механические торговые системы» и «Технический анализ» Швагера. Все очень интересно. В спекулятивной торговле всегда есть выигравший, проигравший и брокер. Причем соотношение выигравших и проигравших равное в объеме. При большой нерациональности рынка, % брокера достаточно маленький. Кроме того, есть утверждение о том, что проигрывают 90% игроков на рынке. Что ж. Надо быть в этих 10%, у которых, к слову, должна быть та самая половина выигрыша. Чем неэффективней рынок, тем больше возможностей.
Я много работал с данными, я знаю Python. На текущий момент планы написания собственных алгоритмов предсказания и движков для трейдинга. Из существующего и достойного внимания нашел zipline.io, однако прям сходу захотелось большего функционала по обработке данных, подготовке фич и построению моделей. Проще писать с нуля. Мне не интересно использование готовых инструментов типа MQL, я не хочу ограничивать себя существующим функционалом и готовыми индикаторами. Я прекрасно понимаю, что не стохастиком единым. Все, что он показывает — это положение текущей цены относительно предыдущих минимумов и максимумов. Да, конечно, интересный признак и он обязательно будет у меня использоваться. На десятке различных окон с десятком различных сглаживаний. А так же скорость его изменения и скорость изменения скорости)
Готовые решения, как я описал выше, использовать не хочу. Отчасти по причине необходимости изучения нового языка (хотя это не большая проблема), но скорее по причине ограниченного функционала. Да, возможно, будет иметь смысл использовать тот же тслаб для сбора статистики, но я ее и сам могу собрать и построить необходимые графики. Я люблю исходные данные. Логи, сделки, котировки. А уж какие аггрегаты и статистику смотреть — я и сам могу решить.
HFT и арбитраж меня не интересует, С-подобные языки применять не собираюсь, однако возможностей Python вполне хватит, чтобы принимать решения в течение секунд.
Брокером пока для себя выбрал финам, потому что у них есть transaq connector и внятное API. Не надо будет ваять непонятные обертки вокруг QUIK или MT. Если (а еще лучше-когда) все полетит — буду использовать платные прямые коннекты к бирже.
В завершении хочется сказать, что предсказать цену невозможно, но заработать на рынке можно. Это утверждение, которое я пока для себя сформулировал и его придерживаюсь. Статистика + риск менеджмент должны сделать свое дело.
Дальше планирую описывать свои действия на этом поле и расскажу об их успешности. Если у кого будут дельные мысли, предложения и советы — с удовольствием выслушаю и приму во внимание.
Теперь продержись на рынке хотя бы три года и будешь местным старожилом.
В плане скорости все скриптовые языки будут проигрывать в производительности компилируемым. Поэтому если не хочешь считать те или иные гипотезы часами или днями бэктестить, то ботай C++/C#. Ну, если не на 3-м или 1-м потоке учился, бро.))) Вообще, в алготрейдинге без хорошего знания программирования (особенно если платформу свою городить хочешь, а не брать готовое, н-р, в том же R) никуда.
Далее — копай в сторону стохастического анализа и фин.мата. Ну, если на втором потоке учился и фамилия «Смирнов» тебе что-то говорит, то это так, самое начало пути, как говорится. А в остальном — ю ар велкам, бро!)
Далее, в R можно использовать C++, Java, скоро можно и C# будет — есть соответствующий проект на githab'е. R встраивается в SQL сервер, RRO была куплена Microsoft. Наверное, им делать было нечего. ;-)
А так — дело Ваше, конечно.
P.S. Ах, да, забыл сказать, что сейчас вроде ~8к разных пакетов под R написано. ;-)
Важно не закопаться в нейронках, адабустах, вейвлетах и прочих многопараметрических методах оверфитинга. Надо быть проще.
Желаю удачи.
Вы определитесь, кем себя видите. Если квантом, то R+MatLab+Python+Excel. Если алготрейдером, то Си и апи.
Excel? Тем, что есть готовые функции прикольные? Или тем, что MatLab платный? Сообщество везде огромное, различия в функционале номинальные.
Про Excel — тут уж совсем удивили. В нем разве что таблички красивее получаются и графички прикольные можно делать. Про функционал точно говорить не приходится, все, что можно сделать в excel — можно в любом другом месте.
HFT — да, Си, но еще раз — я пока смотрю на интрадей на минутах/тиках. Python должно хватить. И да, буду использовтаь API существующих терминалов или прямое подключение к бирже. На надо думать, что Python не может быть быстрым. Принятия решения в течение нескольких секунд должно хватать, я не собираюсь скальпингом заниматься.
nashol.com/2014110180366/analiz-rezultatov-nabludenii-razvedochnii-analiz-tuki-dj-1981.html
Не слейте всё сразу :-)
Сам использую R для изучения рынка, пока это изучение бесполезно. Пишу на MQL, он хорош. Хотя Финамовскую опцию не пробовал. Excel удобен для ведения журнала и анализа собственных сделок по стратегиям и т.д. Первые программы для рынка тоже писал на питоне. Но потом полюбил R за его дата ориентированность.
Чем тратить время на трейдинг, возможно, лучше потратить его на саморазвитие по специальности, это может принести больше денег. Так было в моем случае.
Zweroboi, не, я бы на долгосрок взял, не хочу участвовать в первых слитых депозитах))
на счёт лучше — это врядли. Если хочешь подискутировать предметно — вэлкам!, если не хочешь или не предметно — тогда нах.
Я в свое время в идеале знал delphi, а когда принял решение войти в индустрию, пришлось квалифицироваться на шарп. В итоге через некоторый промежуток времени ни то ни то, как первичный инструмент, не понадобилось. Только как прикладное для обслуживания второстепенных задач.
Смотрю на коллег по цеху, в принципе все так же.
Так что думаю вы, пока найдете свой путь, пройдете не мало. А пока дерзайте с того что есть, с базы.
По поводу медленных вычеслений, так вроде как можно юзать панды и нумпи с другими матиматическими библиотеками, с тем же мкл от интела и скорость увеличится :)(это вроде и для р справедливо)
По личному опыту знаю, лучше уж сперва работать в том что хорошо знаете, а как надо будет… можно будет и другой язык изучить и тд :)
Возможно, когда доберусь до непосредственно внедрения в продакшн модели, я либо форкнусь от них, либо буду подсматривать, используя best practice. Я просто хочу сказать, что бегло посмотрев на zipline, я не увидел в нем ровно то, что мне необходимо. Я ни в коем случае не хочу сказать, что то, что они сделали — плохо. Труд такого количества людей ценен.
Кроме того, необходимо будет писать прокладку между transaq и логикой zipline. Пока мне кажется, как это ни странно, писать свое и заново. Начинать с велосипеда с самоката, зато с полным пониманием того, как все работает.
На текущий момет передо мной стоит вопрос правильной постановки задачи, выбор правильных целевых функций, подбор признаков, их обработка, тестирование моделей. Это так и так будет делаться руками и ничего подобного в открытом доступе нет.
Да, если Вы про Jupyter ноутбуки — не они придумали их, и да, я тоже пользуюсь этим инструментом. У меня пока своя небольшая вируталочка, на которой я сам себе админ. У меня установлен python3 и все необходимые пакеты. Я не пользуюсь anaconda, все необходимое ставлю сам.
Ну и в конце замечу, что кода там не так много и про десятки лет — это очень преувеличено (еще раз — я про zipline)
P.s. А что в data science мало платят? в северной америке берут нарасхват