Блог им. AleksandrBaryshnikov

Функциональный релиз

    • 18 сентября 2023, 00:02
    • |
    • bascomo
  • Еще
Доброй ночи тебе, читатель!

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

Тут немного информации о модулях «Трейдер» и «Селектор», как я их называю.

В новом релизе добавилось функциональности, и вот она на скриншотах.

Функциональный релиз

Комментарии:
  • В заголовке окна отображается путь к исполняемому файлу программы. Это нужно для того, чтобы не запутаться, так как можно запускать сколько угодно экземпляров, торгующих на разных брокерских счетах с индивидуальными настройками и набором торговых систем.
  • Далее, вкладка Positions. На самом деле, это и позиции тоже, но и торговые системы. Каждая строка = торговая система и она же = позиция. Видно внутренний ID позиции, тикер, направление открытой сделки или Empty, если сделка сейчас не открыта. Время входа, цена входа, количество лотов нечего комментировать. Но вот поле NewQty нужно для того, чтобы оперативно, не перезапуская программу, менять число торгуемых лотов. Работает оно так: при изменении значения в этом столбце текущая открытая сделка закрывается с тем же количеством, с которым открылась. А в следующую уже войдёт с количеством лотов NewQty, при этом поле Qty обновится автоматически. Лоты тоже нечего комментировать. Текущая цена постоянно обновляется потоком цен от брокера в режиме реального времени, и так же пересчитывается столбец Нереализованная прибыль. Тут имеется ввиду чистая прибыль и в ней учтена комиссия и входа, и выхода. Поскольку для активных позиций цена выхода неизвестна, я делаю допущение, что цена выхода = цене входа. Далее следуют столбцы накопленной за всё время чистой прибыли (уменьшена на размер комиссии) и суммарное число сделок по этой торговой системе, и они обновляются при закрытии каждой сделки. Столбец активности включает или выключает обсчёт этой торговой системы в принципе, а столбец эмуляции позволяет переключать режим реальной отправки приказов на биржу или просто эмулировать сделки по он-лайн потоку цен от брокера.
  • Редактируемых столбцов всего три: NewQty, Active, Emulate.
  • Ниже следует вкладка Text Log. «Трейдер» пишет сюда всё, что он делает и всё, что происходит. Эти же сообщения отправляются в заданный в настройках бот мессенджера Telegram.
  • В строке состояния внизу указано максимальное возможное число позиций, и требуемый для их открытия размер капитала с учётом количества и размера лотов. Это та сумма, которая необходима, чтобы обеспечить торговлю по всем торговым системам со статусом «Активная». Количество активных позиций, их размер в деньгах и нереализованная по ним прибыль, комментариев не требуют.
  • Вкладка Equity отображает суммарный график по всему пулу торговых систем.
  • При выделении конкретной строки в таблице торговых систем становится доступна дополнительная информация на вкладках Equity for и Deals for. Начну с последней. Выше видно, что я выделил 80-ю строку, и вот её детализация:
Функциональный релиз
Это совершённые торговой системой сделки. Первый столбец — направление, Long или Short.
Время входа, цена, количество, время выхода и цена выхода понятны. Профит — это грязная прибыль. Просто разница между ценами с учётом направления сделки, количества лотов и лотности. Комиссия — размер комиссии со сделки. Ну и последний столбец — чистая прибыль.
Сортировка тут в хронологическом порядке по времени выхода, но если есть незакрытая позиция — она будет первой строкой. Так в текущей реализации. Думаю, мы перевернём хронологию, чтобы от настоящего в прошлое был список сделок посортирован.

Вкладка Equity for рисует график эквити для выбранной в таблице торговых систем строки:
Функциональный релиз
По оси X — номер сделки (под сделкой имеется ввиду фиксация прибыли, то есть вход+выход), по оси Y — прибыль. В конце линии рисуется цифра достигнутой доходности. При переходе через календарные даты на линии Equity ставится отметка день-месяц час-минута времени последней сделки, чтобы удобнее было отслеживать переходы через дни.

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

За скобками этого поста остался «Селектор» (Алготрейдинг. Сдаюсь. (smart-lab.ru))
Мы всё так же, как я писал ранее, используем его для выбора торговых систем, которые хотим добавить в «Трейдер».
Он очень гибок, но требует определённой квалификации, в частности, минимального знания языка запросов T-SQL, так как он выполняет запросы к базе данных, где хранятся сотни миллионов торговых систем, и все из них в себя он засосать, конечно, не сможет — не хватит оперативной памяти, и расчёты будут долгими. Он должен взять 1-2k систем по каждому инструменту, визуализировать их, чтобы участник галками смог отметить те, которые автоматом уйдёт в «Трейдер». Задача участника в редактировании базового запроса к выборке данных из базы торговых систем состоит в том, чтобы поиграть с фильтрами запросов таким образом, чтобы в результате выполнения запроса получить список наиболее перспективных торговых систем по каждому инструменту, как для лонговых, так и для шортовых систем, в озвученном количестве нескольких тысяч, а лучше сотен.

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

Планы, мне видится, у нас такие:
  1. Он-лайн автоматизированный обмен торговыми системами. Выглядит это как уведомление, которое приходит участникам, что появилась новая перспективная ТС. Они заглядывают в свои работающие «трейдеры», видят её, и кто её нашёл, принимают решение о включении в торговлю или наблюдении за ней в режиме эмуляции.
  2. Глобальный отчёт по портфелям / инструментам. «Трейдеры» всех участников приводят все результаты — реестры сделок по торговым системам — к общему знаменателю: превращают абсолютные значения доходностей по торговым системам и пакетам торговых систем в проценты. Таким образом, защищаем информацию о торгуемом капитале. Все смотрят на результаты друг друга по глобальному отчёту, организуем онлайн-брифинг, обсуждаем, делимся впечатлениями и идеями, принимаем общие решения о развитии продукта и каждый — персональные, что ему нужно сделать в своей торговле; какие ТС включать или выключать, какие переводить в/из режима эмуляции. Сюда же относятся и решения на замену, допустим, слишком часто совершающих сделки ТС на более медленные. Или увеличение доли систем с более высокими значениями отдельных метрик, допустим, RecoveryFactor.
  3. Распределённые вычисления. Для поиска ТС будем использовать все доступные хосты, в ночное время или круглосуточно, с ограничением по выделенным ресурсам — памяти, процессорным ресурсам, чтобы не мешать торговле, если хост один.
  4. В трейдер добавить графики просадок и графики реального использования капитала.
  5. Хотим сделать автоматическую капитализацию прибыли пропорционально объёмам текущих активных торговых систем — чтобы лоты увеличивались автоматически.
  6. Нужно портировать решение на Binance (криптовалютные фьючерсы) — там всё то же самое. Написать коннектор к любому API любой биржи для меня день работы.
  7. Через приятелей/родственников с иным гражданством запустить это на биржах Гонконга, Европы, Америки и куда дотянутся руки.
  8. Добавить в «трейдер» возможность закрывать позиции вручную. Факультативно. Нам проще снять галку активности и подождать, пока позиция по ТС закроется сама.
  9. Проработать архитектуру управления «трейдером» через чат-бота Telegram.
  10. Подкрасить редактируемые/нередактируемые столбцы в программе. Факультативно.
О производительности
«Трейдер» использует для реальной и эмуляционной торговли доли процента от загрузки процессора хоста, даже если это непроизводительный ноутбук, и 60мб оперативной памяти. И значит это то, что, арендуя сервера в VDS для торговли, мы хорошо сэкономим.

Промежуточные выводы
  • Пришёл я, короче, к тому, что есть крайне малое число длительно работающих и очень эффективных алгоритмов.
  • В этом нет ничего нового и не противоречит тому, что я делаю — я использую больше, писал ранее, не буду вдаваться в детали.
  • Как правило, они хорошо или отлично работают без модификаций на разных рынках и разных инструментах.
  • Мне ещё предстоит их выявить, и о них я рассказывать уже никому не буду.
  • Я пишу о том, что, мол, у меня 196 млн торговых систем.
  • Это так и есть, и это факт — на каком-то временном участке котировок какого-то инструмента какого-то типа на какой-то бирже они показывали отличный доход.
  • Но всё это, разумеется, пул кандидатов на собеседования. Из них на работу будет принято менее 0,01%.
  • Но даже в этом случае их будет слишком много, чтобы торговать на, к примеру, 100 млн Р. По факту, надо раз в 10 — 100 меньше. Для 100 млн. А у меня столько нет :)
  • Не смотря на то, что уже всё отлично, остаётся идея про адаптивный подстраивающийся торговый алгоритм.
  • Из того, что читал я на СмартЛабе, никто этой идеи не понял — про то, что алгоритм должен быть «живой». Все мои миллионы торговых систем вырублены, так или иначе, в граните. Это их главный недостаток. Нужно следить за ними, нужно включать перспективные, отключать издохшие. Но от своей фантасмагоричной фантазии — создавать системы, которые, в процессе торговли, подстраиваясь, сами будут адаптироваться под рынок, я не отказался. Может быть, зимой, в январе, на Мальдивах или Сейшелах, глядя на закат, я завершу эту идею. В том, что это возможно и, по прикидкам, должно быть куда лучше и круче, чем сутками генерировать миллионы стратегий на большом количестве хостов, я не сомневаюсь. Но покажет время, ибо если есть цель — иди к ней, а там будешь в финале расхлёбывать. С другой стороны, корректировать направление движения никто не мешает, сам решаешь.
Ремарка про «зачем я всё это тут для вас пишу»
Я хочу написать книгу про алготрейдинг. Пока что (и уже давно) работаю над оглавлением. По факту, оно уже в декабре было готово. А на СмартЛабе я тренируюсь писать различные главы или подглавы будущей книги, оценивая реакцию публики, но я подозреваю, что тут не очень репрезентативная выборка.
Моё желание написать книгу — это не про заработать около рынка. Это про структурирование на бумаге всего того, что есть в моей голове про трейдинг, алготрейдинг и околотрейдинг. Хотя я не сомневаюсь, что результат получится популярным и мы его переведём на разные языки и будем продавать в разных странах, для меня это, прежде всего, инструмент систематизации моих знаний и опыта, достигнутых результатов и верификации разных подходов. Роялти от книги небольшие, так что эта активность для меня, с финансовой точки зрения, скорее, благотворительность. На самом-то деле, так я надеюсь найти новые идеи и подходы, потому что сейчас любой читатель книги сможет дать автору обратную связь через сеть.
А все доходы от книжки я, пожалуй, направлю на конкретную цель — открою приют для бездомных кошек. Я люблю этих животных.
Это мои, мальчик
Функциональный релиз
и девочка
Функциональный релиз

О поездке
Утром вернулся из Петербурга.
Город порадовал прекрасной погодой.
Как обычно делаю, арендовал катер, прокатился по каналам и Неве.
У лодки было смешное название — Мажор :)
Лодка была красивая. Кэп даже что-то трещал про историю Спб, я не слушал.
Неплохие люди на СмартЛабе есть, в исчезающем количестве, но даже из-за них вряд ли я продолжу тут что-то писать, достигнув планки в $1M. Почему? С таким капиталом найдутся занятия куда интереснее. Я надеюсь, что это будет через год, но время покажет. Оно куда хитрее всех нас.

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

post scriptum
В последнее время, иногда, тут, на СмартЛабе, вижу посты людей, которые откровенно рассказывают о том, что они сделали. Свою большую и сложную работу по дороге к своей мечте. Не опасаясь, что «украдут». Понятно, что не полно, понятно, что тупо прочитав, не повторить. Но, мне хочется верить, что это отчасти из-за меня. Я стараюсь делать мир лучше и вот они теперь тоже. С некоторыми я лично знаком, и делали что-то вместе, с другими только общались сообщениями, а кого-то лично и не знаю. 
Спасибо вам, тем, кто это делает. Вы крутые, вы молодцы и я держу за вас кулачки и буду искренне рад вашим успехам, и нет у меня причин в них сомневаться. Дорогу осилит идущий, и эта простая истина про вас.

Спасибо @Replikant_mih за Как я алготрейдю. Инфраструктура. (smart-lab.ru)


pps Х
отелось бы закрыть все свои посты, как перевести свой блог в режим «только для друзей», подскажете в комментариях?
★1
10 комментариев

такой расклад по теме алго, с нуля и до продакшена, ты дал первый

у остальных или уровень не тот, или информации крохи

спасибо! белой завистью завидую и желаю успеха

avatar
vito333, спасибо. Если у тебя что-то не получается — пиши в личку, опиши свою ситуацию, помогу, чем смогу. Буду рад.
avatar
bascomo, да всё вроде получается, только медленно, ввиду недостатка компетенций в программировании
avatar
vito333, умница
avatar
bascomo, если что то не получается, можно не стесняться, писать и на СЛ в раздел АЛГО )
avatar
Если будешь закрывать блог, добавь меня в закрытый. Интересно наблюдать за развитием твоего проекта.
avatar
Для автоподстройки в режиме торговли прямой перебор — не вариант. Главным ограничением будет время этого расчета (=> глубина ретроспективы + число вариантов). Этот фактор существенно менее важен, если  есть четкая формализация стратегии, у меня реализовано. 
   Здорово что сумел объединить трейдеров вокруг себя. Ну и программный подход с распределением в интернете конечно впечатляет.  
В новом релизе добавилось функциональности, и вот она на скриншотах.

У меня похоже сделано, кстати, но в деталях не так.
поздравляю!!!
ЗЫ мне уже бежать за британской визой?
avatar
Пишите! С удовольствием читаю ваши посты. Книгу интересно будет прочесть.
avatar

теги блога bascomo

....все тэги



UPDONW
Новый дизайн