Pavel
Pavel личный блог
30 мая 2017, 17:38

Первые шаги в алготрейдинге.

Добрый день, SmartLab!

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

Сначала немного вводной и лирики.
Меня зовут Павел. У меня хорошее математическое образование (МГУ ВМК). Есть достаточно большой опыт в ETL, последние несколько лет активно развиваюсь и работаю в области Data Science, той самой, вокруг которой много хайпа сейчас.

Не так давно, а именно около 3-4 месяцев назад начал интересоваться инвестициями. Почему не раньше? Потому что финансовая грамотность у нас страдает, я не стал исключением.
Толчком ко всему стало прочтение небезызвестной книги «Богатый папа, бедный папа». После — недельные курсы по трейдингу и инвестированию, которые дали самые основы и базовое представление о том, как вообще работает рынок, как организованы торги, шорты-лонги-маржа и прочее и прочее. Переварив немного происходящее, я понял, что надо что-то делать дальше, иначе все как было, так и останется на месте. Как мне кажется, биржа — отличное место приложения существующих знаний. Полная самостоятельность в принятии решений и полная независимость от окружающих.


Мне интересны оба аспекта работы с биржей — как инвестирование, так и трейдинг.
1) Инвестирование. Игра с положительной суммой. Изучаю фундаментальные показатели компаний, какие игроки есть на рынке, их взаимосвязь с внешним миром и с нашим государством в частности. Смотрю на отчетность, смотрю выступления с конференций смартлаба, черпаю какую-то информацию с форумов. Начал что-то делать руками. Пока мне кажется, важным начать делать какие-то сделки и инвестиции, основанные на своих выводах, и далее сверять правильность выводов по финансовым показателям. Инвестирование вижу себе важной составляющей присутствия на бирже, в том числе как место приумножения денег, заработанных с помощью трейдинга.

2) Трейдинг. Игра с отрицательной суммой. На текущий момент прочитана книга «Подлые рынки и мозг ящера», в процессе — «Механические торговые системы» и «Технический анализ» Швагера. Все очень интересно. В спекулятивной торговле всегда есть выигравший, проигравший и брокер. Причем соотношение выигравших и проигравших равное в объеме. При большой нерациональности рынка, % брокера достаточно маленький. Кроме того, есть утверждение о том, что проигрывают 90% игроков на рынке. Что ж. Надо быть в этих 10%, у которых, к слову, должна быть та самая половина выигрыша. Чем неэффективней рынок, тем больше возможностей.


Я много работал с данными, я знаю Python. На текущий момент планы написания собственных алгоритмов предсказания и движков для трейдинга. Из существующего и достойного внимания нашел zipline.io, однако прям сходу захотелось большего функционала по обработке данных, подготовке фич и построению моделей. Проще писать с нуля. Мне не интересно использование готовых инструментов типа MQL, я не хочу ограничивать себя существующим функционалом и готовыми индикаторами. Я прекрасно понимаю, что не стохастиком единым. Все, что он показывает — это положение текущей цены относительно предыдущих минимумов и максимумов. Да, конечно, интересный признак и он обязательно будет у меня использоваться. На десятке различных окон с десятком различных сглаживаний. А так же скорость его изменения и скорость изменения скорости)

Готовые решения, как я описал выше, использовать не хочу. Отчасти по причине необходимости изучения нового языка (хотя это не большая проблема), но скорее по причине ограниченного функционала. Да, возможно, будет иметь смысл использовать тот же тслаб для сбора статистики, но я ее и сам могу собрать и построить необходимые графики. Я люблю исходные данные. Логи, сделки, котировки. А уж какие аггрегаты и статистику смотреть — я и сам могу решить.

HFT и арбитраж меня не интересует, С-подобные языки применять не собираюсь, однако возможностей Python вполне хватит, чтобы принимать решения в течение секунд.
Брокером пока для себя выбрал финам, потому что у них есть transaq connector и внятное API. Не надо будет ваять непонятные обертки вокруг QUIK или MT. Если (а еще лучше-когда) все полетит — буду использовать платные прямые коннекты к бирже.

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

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

66 Комментариев
  • Kapeks
    30 мая 2017, 17:43
    Ладно, штампов ты набрался. Зачёт.
    Теперь продержись на рынке хотя бы три года и будешь местным старожилом.
  • Ну, лучше уж тогда R, что ли. Всяко поудобнее будет питона, хотя он тож неплох.
    В плане скорости все скриптовые языки будут проигрывать в производительности компилируемым. Поэтому если не хочешь считать те или иные гипотезы часами или днями бэктестить, то ботай C++/C#. Ну, если не на 3-м или 1-м потоке учился, бро.))) Вообще, в алготрейдинге без хорошего знания программирования (особенно если платформу свою городить хочешь, а не брать готовое, н-р, в том же R) никуда. 
    Далее — копай в сторону стохастического анализа и фин.мата. Ну, если на втором потоке учился и фамилия «Смирнов» тебе что-то говорит, то это так, самое начало пути, как говорится. А в остальном — ю ар велкам, бро!)
      • Pavel, ну, вы это разработчикам quantstrat скажите, что тяжело будет. )))
        Далее, в R можно использовать C++, Java, скоро можно и C# будет — есть соответствующий проект на githab'е. R встраивается в SQL сервер, RRO была куплена Microsoft. Наверное, им делать было нечего. ;-)
        А так — дело Ваше, конечно.

        P.S. Ах, да, забыл сказать, что сейчас вроде ~8к разных пакетов под R написано. ;-)
          • Pavel, ну, моё дело порекомендовать. ;-)
          • SergeyJu
            30 мая 2017, 18:09
            Pavel, на самом деле, выбор язык дело не принципиальное, можно и на фортране писать, тем более, что там научных библиотек — как грязи. 
            Важно не закопаться в нейронках, адабустах, вейвлетах и прочих многопараметрических методах оверфитинга. Надо быть проще. 
            Желаю удачи. 
  • Kapeks
    30 мая 2017, 17:46
    А там и до хуру рукой подать. Будешь учить других как торховать от уровня по алгоритму. На жизнь хватит.
  • Kapeks
    30 мая 2017, 17:51
     стрелочки не забудь рисовать от уровня, и хлавное по фурье раскладывай, тыж математик. вейвлет анализ добавь. и нейронку. и тохда рынок раскроет перед тобой усе свои секреты.
    • Kapeks, ну, смех смехом, а для фитинга параметрических моделей и анализа нестационарности рынка мне и фурье-, и вейвлет-анализ мне помогают. ;-)
      • Kapeks
        30 мая 2017, 18:00
        Бобровский Дмитрий, во-во молодца! параметрические модели и фиттинг с пирсингом это то шо нужно. видно шо ты человек серьёзный. это усё явно заявка на вход в зал славы российского трейдинха.
        • Kapeks, мы с Вами потом кривой капитала померимся. ;-) За хорошим английским стаутом.)
  • Replikant_mih
    30 мая 2017, 17:53
    Чувствуется внутренний стержень, самостоятельность мышления, развитое логическое мышление — всё как у меня прям))) — хороший бэкграунд для будущих результатов, а ещё и мат. подготовка — ммм., взрывоопасная смесь)
    • Пафос Респектыч
      30 мая 2017, 18:44
      Replikant_mih, тебе до него как до Камчатки пешком ) это если объективно, а если субъективно, то как до Марса ))
      • Replikant_mih
        30 мая 2017, 18:48
        Zweroboi, возможно), например, если считать, что я с той стороны вектора где стрелочка))
        • Пафос Респектыч
          30 мая 2017, 19:05
          Replikant_mih, имей в виду, что стрелочка может оказаться в совершенно неожиданном месте ))
          • Replikant_mih
            30 мая 2017, 19:12
            Zweroboi, конечно-конечно, это же биржа, я предельно осторожен)), чтобы не допустить стрелочек в неожиданных местах)
            • Boris Litvinov
              30 мая 2017, 19:50
              Replikant_mih, 
              • Replikant_mih
                30 мая 2017, 19:54
                Борис Литвинов, А в трейдинге так можно?) — вроде тебе ещё идти и идти до цели, а потом бах, перевернул стрелочку и ту уже у цели, оказывается.
                • Boris Litvinov
                  30 мая 2017, 20:01
                  Replikant_mih, правильная мысль. Далеко пойдете, вот как сможете так в трейдинге вот тогда. Играя в шашки, только в конце игры Вовочка узнал что играет в поддавки.
                  • Replikant_mih
                    30 мая 2017, 20:04
                    Борис Литвинов, Мне ещё с листом бумаги и ручкой из Интерстеллара нравится)
  • Kapeks
    30 мая 2017, 17:55
     а да, чуть не забыл, обязательно следи за новостями с блумберха, а то вдруг пропустишь ставку фрс и данные с еврозоны. и про опек не забывай, лови каждое слово. и побольше читай смартлаб. тут народ тёртый, матёрый. усе как один волки с уоллстрит. профитные до отрыжки.
      • Kapeks
        30 мая 2017, 18:09
        Pavel, это ты уж сам решай. фаза она такая, если 380 то нужно 3-й допуск получать по электробезопасности, а луну не каждый день видно, но в телескоп можешь смотреть.

    • SergeyJu
      30 мая 2017, 18:04
      Kapeks, вейвлет, минет и марафет. :)
  • Евгений
    30 мая 2017, 18:07
    Я вас огорчу. Питон — это только лишь 5-7% от инструментария. Сам им пользуюсь для парсинга репортов.

    Вы определитесь, кем себя видите. Если квантом, то R+MatLab+Python+Excel. Если алготрейдером, то Си и апи.
    • Kapeks
      30 мая 2017, 18:12
      Евгений, ёпрст, до чего нород докатился, кванты отдельно, алготрейдеры отдельно, потом выяснится шо надо определяться хто ты: трейдер, трейдун али трейдовик. посоны я хочу проснуться. хде тут выход?
      • Replikant_mih
        30 мая 2017, 18:19
        Pavel, Ну, справедливости ради, несколько секунд это многовато не только для тиков, но и для минуток на мой взгляд).
        • SergeyJu
          30 мая 2017, 18:33
          Replikant_mih, если не разводить турусы на колесах, секунды не будет, от 0,1 до 0,3 с должен в любом случае укладываться. Тем более, что таймфрейм минута не означает необходимости по сто раз на дню переворачиваться. Если среднее время удержания позиции порядка дня и больше, все будет в порядке.
          • Replikant_mih
            30 мая 2017, 18:37
            SergeyJu, вот я тоже подумал, что Питон не настолько медленный и что надо что-то серьёзное наворотить, чтоб несколько секунд было)
      • Replikant_mih
        30 мая 2017, 18:23
        Pavel, Excel хорош когда надо наглядно на данные посмотреть — в табличном виде, ну и какие-то вещи в экселе быстрее можно сделать — но их мало, чисто для таких вещей его держать не стоит). Только чтоб в табличке покопаться — фильтровать, сортировать)), ну может сводная и график — но эксель — точно не must have для алго))
        • SergeyJu
          30 мая 2017, 18:37
          Replikant_mih, иногда полезно поковыряться в данных ручками. И посмотреть, что получается, глазками. Лучше экселя трудно что-то придумать для этой цели. Тьюки вообще любил карандашом  на бумажке поковыряться в данных. Хорошая забытая книга.
          nashol.com/2014110180366/analiz-rezultatov-nabludenii-razvedochnii-analiz-tuki-dj-1981.html
          • Replikant_mih
            30 мая 2017, 18:39
            SergeyJu, Ну да, я тоже люблю это делать, для этого он и нужен, хотя когда-то давно я через формулы и кучи вспомогательных столбцов делал бэктестинг)) — но это извращение, а именно с табличкой поработать — это да.
      • Евгений
        30 мая 2017, 18:24
        Pavel, всё с вами понятно.

        Не слейте всё сразу :-)
      • SciFi
        31 мая 2017, 01:43
        Порекомендовал бы в первый год не брать плечи. Так как вы еще мало знаете себя и на что способен рынок. Но я знаю, что вы меня не послушаете и будете брать максимальные плечи )

        Сам использую R для изучения рынка, пока это изучение бесполезно. Пишу на MQL, он хорош. Хотя Финамовскую опцию не пробовал. Excel удобен для ведения журнала и анализа собственных сделок по стратегиям и т.д. Первые программы для рынка тоже писал на питоне. Но потом полюбил R за его дата ориентированность.

        Чем тратить время на трейдинг, возможно, лучше потратить его на саморазвитие по специальности, это может принести больше денег. Так было в моем случае.
  • Андрей К
    30 мая 2017, 18:10
    Удачи.
  • Пафос Респектыч
    30 мая 2017, 18:39
    Оооо, парень, исходя из того, что ты написал, ты тут уже в первом топовом проценте ) отправил тебе добавить в друзья и добавил в читаемое ) не слушай никого делай как сам написал
    • Replikant_mih
      30 мая 2017, 18:41
      Zweroboi, тоже в друзья добавил)), было бы IPO — ещё б и акций немного прикупил))
      • Пафос Респектыч
        30 мая 2017, 18:47
        Replikant_mih, просто отправь парню денег без IPO, точно лучше чем себе на депозит занесёшь )

        • Replikant_mih
          30 мая 2017, 18:50

          Zweroboi, не, я бы на долгосрок взял, не хочу участвовать в первых слитых депозитах))

          на счёт лучше — это врядли. Если хочешь подискутировать предметно — вэлкам!, если не хочешь или не предметно — тогда нах.

  • злой человек
    30 мая 2017, 18:58
    не взлетит
    • Boris Litvinov
      30 мая 2017, 19:56
      sore, да кто его, хотелось бы увидеть когда подгорать начнет у него. Трейдер + программист это смесь успеха
  • Гуру Хренов
    30 мая 2017, 19:29
    ну, в добрый путь!
  • Андрей К
    30 мая 2017, 20:15
    Я бы начал с того, что хорошо знаю. А там куда лет через пять кривая выведет, не известно. На пути к целям, подходы в трейдинге могут не раз поменяться. Сейчас начнете квантом на питоне, а душа потянет в другое.
    Я в свое время в идеале знал delphi, а когда принял решение войти в индустрию, пришлось квалифицироваться на шарп. В итоге через некоторый промежуток времени ни то ни то, как первичный инструмент, не понадобилось. Только как прикладное для обслуживания второстепенных задач.
    Смотрю на коллег по цеху, в принципе все так же.
    Так что думаю вы, пока найдете свой путь, пройдете не мало. А пока дерзайте с того что есть, с базы.
  • Вато Геворгардзе
    30 мая 2017, 21:29
    Visual basic наше все. А hft можно и на ассемблере писать. Он точно всех сишников порвет
  • Вато Геворгардзе
    30 мая 2017, 21:31
    Блин, как смайлы ставить в комментариях?
  • CloseToAlgoTrading
    30 мая 2017, 22:38
    Странно что люди советуют R вместо питона. Если подумать то питон даже удобнее в подготовке данных, да и в основном функционал такой же, а то может и больше для исследований данных. 
    По поводу медленных вычеслений, так вроде как можно юзать панды и нумпи с другими матиматическими библиотеками, с тем же мкл от интела и скорость увеличится :)(это вроде и для р справедливо)
    По личному опыту знаю, лучше уж сперва работать в том что хорошо знаете, а как надо будет… можно будет и другой язык изучить и тд :)
  • Egor Prosto
    30 мая 2017, 23:20
    Quantopian не устроил, поэтому решил писать все сам. Немного не понял ваш ход мыслей. Может оптимизатора там и нет, но в остальном на уровне quantopian инструментов нет, и писать их можно десятками лет.
  • nbvehrfr
    31 мая 2017, 01:27
    Начать с собственного велосипеда прекрасная идея для молодого выпускника :) времени ж дофига
    P.s. А что в data science мало платят? в северной америке берут нарасхват
  • Sergey Pavlov
    01 июня 2017, 06:50
    Самое ценное было бы самым простым по реализации, но самым продуктивным по набиранию реального опыта. Делаете двух роботов. Первый на двух скользящих средних. Второй на линейной регрессии. Настраиваете их так, чтобы они совершали не больше двух сделок в день и не меньше двух сделок в неделю (в среднем). И запускаете в реальные торги (с первым плечом) на акциях сбера, фРТС и сишке. Стараетесь продержаться в такой торговле хотя бы полгода (лучше год) и особо ничего не менять, а лишь оттачивать технику. Для этого эксперимента достаточно тысяч 200 денег рублевых.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн