Replikant_mih
Replikant_mih личный блог
17 сентября 2023, 11:29

Как я алготрейдю. Инфраструктура.

Инфраструктурно меня конкретно штормило раньше). Видимо, строить инфраструктуру (где-то в глубинах внутренних предпочтений) мне ничуть не менее интересно, чем рисёчить стратегии. Поштормило-поштормило, да подотпустило. Зато теперь у меня внутри нет никакой недосказанности вида «а что если своё попробовать написать», «а что если готовую вот эту специализированную взять» и прочих. Лучше жалеть о то, что сделал… и я делал)).

 

 

Сейчас самописная инфрастуктура. Не разраб, не кодер, не архитектор, но кой какие-то принципы усвоил – какие-то из своего опыта вынес, какие-то из курсов или ещё откуда. Соблюдение банальной IT гигиены на порядки облегчает жизнь. Пример: раньше мог запилить коннектор какой-нибудь, который корнями врастал в остальную часть инфраструктуры и чтобы заменить его на другой коннектор, если понадобится, приходится выкорчёвывать, а это долго, сложно и отличный повод запустить прокрастинационный цикл. А надо-то, банально, написать базовый класс и, много не надо, буквально несколькими с указанием сигнатур, дальше от этого класса наследоваться – всё. Пример: щас сделать Yahoo Finance адаптер для получения исторических данных конечно совсем не рокет саенс, но когда ты всё делаешь по красоте щас можно сделать ещё проще (так): уважаемый ChatGPT-4, вот базовый класс, отнаследуйся от него, сделай пож. класс для получения исторических данных по US Stocks с Yahoo Finance. Обязательно писать «Уважаемый», иначе ничего не получится). Ну и собственно почти всё, дальше небольшие корректировки и новый поставщик исторических данных готов, а главное готов для работы с имеющейся инфраструктурой.


Ну и в целом, пилить инфраструктуру с нуля – все этим вспомогательные библиотеки, классы – не тривиальная задача, много челленджей по ходу возникает. Но когда все готово и работает, дальше очень удобно переиспользовать. В этом аспекте мне нравилась S# — у тебя есть доступ к лоулевелу, у тебя есть готовые собранные из лоулевела детальки, у тебя есть целые отдельные «постройки» собранные из деталек, но если надо ты можешь всегда вернуться на лоулевел и поколдовать на этом уровне если требуется. У меня что-то похожее.

 

Взаимодействие с инфраструктурой условно-хардкорное. В сторону инфраструктуры (а, я наверно, не раскрыл что в это понятие вкладываю – ну сами библиотеки, бэктестеры, торговалки, коннекторы и прочее) это конфиги, код подшаманить и перезапустить, ну Jupyter. Со стороны инфраструктуру в мою сторону это логи, консоль, алерты в телегу и… снова Jupyter. А, ещё в сторону инфраструктуры – есть API простенький.

 

Как это работает (в общих чертах).

 

Начинается процесс с торговой идеи, понятно. Наследуюсь от базового класса стратегии, пишу стратегию. Когда эту часть разрабатывал один из основных приоритетов был чтобы при создании стратегии не надо было лишний код писать: вот мы что-то инициируем, вот ещё что-то, а вот без этой строчки ничего не запустится и т.д., такое тоже видел в других системах. Да, человечество изобрело такие штуки как шаблоны, но всё равно не то и как минимум ухудшает наглядность.
Сейчас чтобы разрабатывать стратегию на первом этапе у меня есть Jupyter Notebook под это. Не громоздкий, с понятной структурой, удобный. Не громоздкий потому что код не в нём, код в библиотеке, а Jupyter просто создаёт объекты, инициирует переменные и подобный stuff.

Набросал стратегию, прогнал на паре тикеров, тут же в отдельной ячейке можно отрисовать свечи, вход, выход и что вокруг проиходит. На этом этапе я убеждаюсь, что стратегия находит то, что я ожидаю. На этих этапах часто рождаются инсайты относительно того, а то ли я ищу, относительно очертаний того, что я ищу и т.д. На этом же этапе делаю прикидки по разным параметрам и фильтрам. Jupyter в этом месте, конечно, супер удобен: notebook (Jupyter) для разработки стратегий он предполагает некий пайплайн (план, считай), но в любой момент можно отойти от него и сделать что-то ответвляющееся – трейды покрутить, графики какие-то доп. построить или что-то такое.


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

 

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

 

Дальше отдельным приложением торговалка конкретной стартегией (на наборе тикеров). Запустили – погнали. Она генерит сигналы, сигналы идут на Execution API — оно берет сигналы и роутит их по соответствующим коннекторам. В будущем это API будет делать, конечно, много всего интересного, пока не много и не особо интересного. Всё. Создал новую стратегию – делаю под неё приложение запускаю, ничего перезапускать не надо.

 

Ещё есть некоторые блоки инфраструктуры, отражающие логику общего алго флоу, но их оставим за скобками.

 

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

Ну и микро кусок Jupyter тетради, где разрабатываю стратегии)).

Как я алготрейдю. Инфраструктура.

96 Комментариев
  • Sergey Pavlov
    17 сентября 2023, 11:45
    Завидую белой завистью)
  • Biopsyhose trader
    17 сентября 2023, 12:43
    Точно также делаем 
  • ves2010
    17 сентября 2023, 12:48
    т.е реально не торгуешь... 

    на счет яши… и дневок… проблема дневок в том, что надо разбираться дневки за тоговую сессию с 9:30 по 16:00 или за 24 часа (в 4 утра прошла рендомная сделка на 1 штуку и появился клос)... 

    мораль в том, что дневки надо лепить из 15ти минуток... 
      • ves2010
        17 сентября 2023, 12:58
        Replikant_mih, а цену исполнения сделок откуда берешь?
          • ves2010
            17 сентября 2023, 13:09
            Replikant_mih, начнешь торговать реально сам все увидишь… особенно когда обьем нужно будет налить

            я кстати принципиально не торгую бумаги ниже 1 мио шт оборота в день… т.к проблемы с исполнением лимиток
              • ves2010
                17 сентября 2023, 22:19
                Replikant_mih, но не на америке

                полюбому успехов тебе и профитов )
  • Schurik
    17 сентября 2023, 13:50
    А chatgpt-4 (платная версия, как я понимаю) кодит лучше, чем бесплатный chatgpt-3.5?
      • Schurik
        17 сентября 2023, 13:55
        Replikant_mih, лады, надо будет попробовать).
  • Synthetic
    17 сентября 2023, 14:25
    Не увидел в Вашем изложении инфраструктуры.  ИМХО Вы попутали терминологию.
      • Synthetic
        17 сентября 2023, 14:58
        Replikant_mih, 

        Так может быть Вы поясните Вашу же терминологию. Что подразумевается под термином «инфраструктура»?  И почему он так отличается от общепринятого?
          • Synthetic
            17 сентября 2023, 15:39
            Replikant_mih, 

            Вы же еще используете термин «архитектура». Причем  то, что Вы называете инфраструктурой
            (В сторону инфраструктуры (а, я наверно, не раскрыл что в это понятие вкладываю – ну сами библиотеки, бэктестеры, торговалки, коннекторы и прочее)
            скорее ближе к архитектуре.
            PS. Мой интерес к этой теме вызван тем, что, на первый взгляд, «крутые программисты» делающие алгопродукты на продажу тоже путаются в этих терминах.
  • bohemian rhapsody
    17 сентября 2023, 14:37
    какая доходность ваших алго? можно декларацию за 2022?
      • bohemian rhapsody
        17 сентября 2023, 14:40
        Replikant_mih, то есть просто гимнастика для ума?
        • Waldemar
          17 сентября 2023, 20:40
          bohemian rhapsody, товарищ уважаемый, додумайте мозгом своим наконец… если автор пишет об успехах в алготрейдинге, то с 99% вероятностью он зарабатывает бабки. Не? Ну например, вы шарите в алго и прочем, но не зарабатываете на этом или хуже того, сливаете. У вас будет стимул писать посты на смартлабе или еще где?

  • Честный Трейдер
    17 сентября 2023, 15:13
    Тестировщики зарабатывают даже — но в айти
  • T-800
    17 сентября 2023, 17:22
    Круто!
    У меня по другому сделано.
    Есть Тестер и Бот, которые не содержат внутри никакой зашитой стратегии. Стратегия задается в виде текста (по аналогии с Метастоком), например, OPEN LONG: «С>ma(20) and T>141000» и т.д.
    Все, что понравилось в Тестере можно добавить в Бота, который может одновременно оперировать до сотни таких систем и писать исторические котировки в БД.
    Кроме этого есть Загрузчик исторических котировок, Анализатор сделок, Исполнитель сделок (если к Квику нужно подключить несколько ботов или делать заявки лимитками) и т.д.
    Т.е. для разработки системы и запуска бота ничего компилировать не приходится.
    • monomah
      18 сентября 2023, 02:44
      T-800, Зачем писать историю в БД, если квик и так ее подгружает в метасток, после того, как вы подключили его к квику? 
      • T-800
        18 сентября 2023, 05:46
        monomah, у меня нет метастока.
        У меня есть свое хранилище всей истории по всем тикерам секций фортс, фондовой (кроме 3-го эшелона), валютной. Там у меня хранятся минутки, из которых я могу сделать любой ТФ, даже нестандартный без квика и метастока. 
  • monomah
    17 сентября 2023, 21:24
    Какова цель данного повестования?
      • monomah
        18 сентября 2023, 03:03
        Replikant_mih, просто я не понял зачем было потрачено время на написание поста. Инфраструктура ваша пригодиться только вам.   
        Странно что на создание стратегии вы тратите меньше всего времени чем на игры с инфраструктурой. Стратегия дается потом и кровью в течении многих лет, а не походя...

        Набросал стратегию

        В любом случае удачи!
          • monomah
            18 сентября 2023, 11:41
            Replikant_mih,  Что делается по другому?.. Вы на полном серьезе уверяете, что алгоритм придумать легче чем  инфраструктуру создать под него? Если это так то мне понятно качество и уровень ваших алгоритмов ;)
            • T-800
              18 сентября 2023, 13:32
              monomah, качественную инфраструктуру сделать на порядок сложнее, чем прибыльную систему с помощью этой инфраструктуры.
              • monomah
                18 сентября 2023, 18:29
                T-800,  У вас какое-то противоречие или вы не поняли что написали. Тогда зачем вам шикарная инфраструктура если вы с помощью нее не можете создать хорошую стратегию? Ради чего корпели над этой инфраструктурой? Создали инфраструктуру, а тс сливающая?
                Хорошая стратегия всё а инфраструктура это дополнение к стратегии а не иначе.
                • Андрей К
                  18 сентября 2023, 18:16
                  monomah, бывают страты, типа арбитража, где все только на инфраструктуре и держится
                  • monomah
                    18 сентября 2023, 18:22
                    Андрей К,  Насколько известно т-800 торгует иное и поэтому это и вызвало удивление. Не использую арбитраж, но думается там тоже без стратегии делать нечего
                    • Андрей К
                      18 сентября 2023, 18:24
                      monomah, без стратегии естесно на рынке делать нечего, но там все страты состоят из 3-5 строчек кода ) все остальное инфраструктура 
                      • monomah
                        18 сентября 2023, 18:28
                        Андрей К,  Неважно количество строчек кода, важна суть стратегии. Спорить об арбитраже не буду. Разговор шел о другом с т-800
      • T-800
        18 сентября 2023, 05:55
        Поддержу автора за то что сделал свою инфраструктуру, это гораздо удобней и качественней, чем пользоваться чужой, написанной для кого-то другого. Своя инфраструктура это изысканное блюдо, приготовленное лично для себя, а готовые решения это похлебка, приготовленная для стада — жрите, что дают. Но в трейдинге как раз массовые решения тиражированные на стадо работают хуже, т.к. все не могут одновременно зарабатывать, в то время как прибыль обычно у отдельных частных трейдеров, эксплуатирующих свои частные «граали». Только в частной инфраструктуре ты можешь тестить и торговать такие идеи, которые технически недоступны в массовых продуктах.
  • bascomo
    17 сентября 2023, 21:33
    Молодец. Маленький шаг для человека, большой шаг к концу бирж))
  • Михаил К.
    17 сентября 2023, 22:21
    Давно заметил, что алготрейдеры 90% времени и внимания посвящают программированию, инфраструктуре, софту. И от силы 10% — собственно трейдингу. Возможно, потому что им само программирование нравится больше трейдинга. Возможно, потому что написать какой-нибудь коннектор гораздо проще, чем прибыльный алгоритм.
      • bascomo
        18 сентября 2023, 00:04
        Replikant_mih, в себя это инвестиции, Миша :)
        А это бесценно
      • Михаил К.
        18 сентября 2023, 03:52
        Replikant_mih,
        За программистов не скажу — может и так. Мне стратегию, если есть подходящая инфраструктура, работающую стратегию написать легче.

        А как вы определите, что ваш алгоритм прибыльный? Путем тестирования? А что, если это будет лишь подгонкой под историю (и, скорее всего, так и будет!)? Тому доказательства — какое-то n-ное количество систем в портфеле и постоянная оптимизация параметров. А ведь«ручные трейдеры» часто обходятся одной системой, которая у них работает на всех рынках и всех фазах рынка! А причина превосходства ручного трейдинга над алгоритмическим проста — рынок это не математика, а взаимодействие толпы народа с целью отобрать друг у друга деньги. И никакими формулами это взаимодействие не описать. А вот понаблюдать со стороны и составить совершенно субъективное мнение вполне возможно. Например, как вы определите алгоритмически момент пробоя зоны сопротивления? Это сложно. Потому что каждый пробой не похож на предыдущий, входных параметров может быть много…
        • Михаил К.
          18 сентября 2023, 03:56
          Михаил К.,
          … А большое количество параметров повлияет отрицательно на универсальность системы. В то же время, подготовленный трейдер справится с этой задачей гораздо легче. Ведь он подойдёт к решению куда гибче, и обратит внимание лишь на то, что в данной конкретной ситуации важно, а что не важно — отбросит. А вот алгоритм такой гибкостью не обладает.
        • T-800
          18 сентября 2023, 06:06
          Михаил К., у алготрейдинга есть ряд существенных преимуществ перед ручным:
          1. При правильной инфраструктуре можно неделями не подходить к компу, в то время как ручной трейдер ежедневно теряет нервы, зрение и зарабатывает кучу болячек от сидячего образа жизни.
          2. Алготрейдинг это часто точный системный трейдинг, исключающий эмоции, тильт, лудоманию, чего как правило не скажешь о ручном. 
          3. И т.д. и т.п.
          Чтобы не углупляться в бесполезный спор, показываю результаты, они меня вполне устраивают:



          • Михаил К.
            18 сентября 2023, 09:28
            T-800, ну так ведь и рынок непрерывно рос весь этот год. И тоже на 50%. А если он начнёт падать, как будут чувствовать себя ваши системы?

            Опять же, я не утверждаю, что прибыльный алготрейдинг невозможен. Я лишь говорю, что этот подход не оптимален.
            • T-800
              18 сентября 2023, 10:45
              Михаил К., так в прошлом году, когда рынок падал у меня тоже +50%
              • Илья Нечаев
                18 сентября 2023, 11:46
                T-800, сколько в среднем % прибыли на трейд берете?
                • T-800
                  18 сентября 2023, 13:29
                  Илья Нечаев, вот так навскидку трудно сказать. Более 100 роботов на разных инструментах. В среднем в рублях пишет, что 275 руб. на сделку по всем ботам. Но на всех тикерах размер лот разный. Пролистал все системы в среднем по факту получается большая часть 0.1-0.3%, но есть и отрицательные, есть и 0.7%, 0.9% и 1.7%
                  • Илья Нечаев
                    18 сентября 2023, 14:01
                    T-800, на комиссию работаете) вот тоже сейчас большое исследование делаю про % приращения. Я так понял у вас ансамбль систем.
                    • T-800
                      18 сентября 2023, 18:27
                      Илья Нечаев, нет, у меня сделки лимитками. Комисс=0
                      • Илья Нечаев
                        18 сентября 2023, 18:29
                        T-800, это только на фьючах или акции тоже? уже неоднократно про 0 комисс слышал про лимитки но у брокеров с которыми работал (Сбер Тинькофф Финам) не встречал. Или все-таки это срочный рынок?
                        • T-800
                          18 сентября 2023, 18:45
                          Илья Нечаев, бОльшая часть фьючи, но и акции тоже есть. На фьчах тоже иногда комисс появляется, когда ставлю лимитку по лучшему бид/аску, но попадаю по рынку. Но такое нечасто.
                          • Илья Нечаев
                            18 сентября 2023, 18:49
                            T-800, а брокер какой?
                            • T-800
                              18 сентября 2023, 19:33
                              Илья Нечаев, Открытие и Финам. Но теперь видимо ВТБ и Финам будет
    • Synthetic
      18 сентября 2023, 00:20
      Михаил К., 
      Давно заметил, что алготрейдеры 90% времени и внимания посвящают программированию, инфраструктуре, софту. И от силы 10% — собственно трейдингу. Возможно, потому что им само программирование нравится больше трейдинга.
      Качество софта, предназначенного для алгоритмического (роботизированного) трейдинга просто никакое. Это основная причина. Существуют десятки программ для ручного трейдинга. Единицы позволяют какую-никакую автоматизацию. Но при этом все равно остаются по сути терминалами с окошками и кнопочками. (вроде Метатрейдера). Потому что другое не продается. (Сама программа может быть бесплатной, тогда продаются всяческие примочки, готовые алгоритмы, курсы и т.п.). Успешных алготрейдеров ( успешных в смысле способностей написать прибыльный алгоритм) очень мало. Поэтому для профессиональных софтописателей они не интересны. Поэтому только самим.

      • Михаил К.
        18 сентября 2023, 03:58
        Synthetic, даже если так, это двойная работа (даже тройная) — написать софт, научиться (прибыльно!) торговать, и умудриться перенести умение торговать в алгоритмический код.
        • T-800
          18 сентября 2023, 06:08
          Михаил К., это того стоит. Ленивые на бирже долго не задерживаются)
        • Synthetic
          18 сентября 2023, 11:57
          Михаил К., 
          Synthetic, даже если так, это двойная работа (даже тройная) — написать софт, научиться (прибыльно!) торговать, и умудриться перенести умение торговать в алгоритмический код.
           Проблема не в том, что это двойная — тройная работа. Проблема в том, что эти компетенции — умение писать софт, умение прибыльно торговать, умение перенести торговлю в алгоритм -  как правило не пересекаются в пределах одного индивидуума. Поэтому такой подход скорее для команд.
  • Тимофей Мартынов
    18 сентября 2023, 11:14
    А почему от WL8 отказались? 
      • Тимофей Мартынов
        18 сентября 2023, 13:41
        Replikant_mih, 

        Сыроват-с)

        Это точно. За что ни возьмись, какой-нибудь баг вылезет. Я до сих пор, в основном, старой шестой версией пользуюсь. Но чтобы ею пользоваться приходится платить за новую :)
          • Кирилл Гудков
            20 сентября 2023, 20:34
            Replikant_mih, 
            не переиспользовать его кодовую багу
            :)
        • Bearminator
          30 сентября 2023, 10:02

          JC-trader ☮, а не было мыслей перейти на TSLab? тот же C#

          Причем TSLab удобнее и меньше ограничений, чем в WLD

          PS

          Несколько лет торговал через WLD4, потом перевел на WLD6. В итоге пару лет назад благодаря Дмитрию Власову перевел все на TSLab и сейчас очень доволен

          • Тимофей Мартынов
            30 сентября 2023, 10:59
            Bearminator, конечно же пробовал TSLab, но остановился уже на первом этапе получения данных. :)
            В общем, для моих целей он не годится. Если бы торговал внутри дня Si и Ri, то может это и был бы идеальный вариант, но у меня в основном количественный анализ на американском рынке.
    • Андрей К
      18 сентября 2023, 18:18
      JC-trader ☮, Михаил попал в чат, где программисты обсуждали все что угодно, но только не WL. Там он попал под влияние MT5 ) так уверенно рассказываю, потому что было на моих глазах
  • Bearminator
    30 сентября 2023, 09:51

    Вот именно из-за таких постов я иногда захожу на смартлаб!

    Михаил, спасибо!

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

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