Блог им. dmitry0xff

Эффективный трейдинг и автоматизация

    • 11 марта 2025, 17:06
    • |
    • Dmitry
  • Еще

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

[ Предыстория ]

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

Но, что хорошо тогда понял — это то, что трейдинг сложное занятие. Он сильно тебя выматывает. Эмоционально именно. Нужно прямо учиться переступать через себя и не суетиться, сохранять спокойствие. Это на самом деле очень сложно. И это только первая часть. Вторая, не менее трудоемкая — это масса работы, исследований, изучений, экспериментов. Нужно много вечеров и ночей посвятить разбору ошибок, графиков, инструментов и т.п. Все, кто этого не делает — им просто повезло. Просто есть некоторая вероятность. Кому-то должно повезти.

Через год трейдинга я понял, что совмещать программирование и эффективный трейдинг физически очень сложно. Уйти полностью в трейдинг — значит остаться без гарантированной и хорошей зарплаты. Нужного размера капитал я накопить еще не успел. А проседать в доходах тогда, конечно не хотелось.

И тогда же, я понял, что трейдинг можно автоматизировать. Но и так же я прекрасно осознавал всю сложность этой задачи, т.к. в деталях понимал, как работают компьютерные системы и что такое механика спекулятивного трейдинга. Что создать систему, которая управляет неструктурированными и вероятностными данными в условиях, где все может пойти не так как надо — это очень нетривиальная задача. И отодвинул проект на некоторое будущее.

С того момента я начал подготовку к созданию этого проекта. Изучал рынок, изучал и разбирал механики, собирал данные для исследований, делал схемы структур и компонентов.

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

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

Так же, я смотрел на рынок именно как трейдер и понимал его вероятностную природу. Что имея даже соотношение риск-профит 1/99, если не обрабатывать риск, то рано или поздно нарвешься на этот ничтожный процент, который сольет твой депозит. Это чистая теория вероятностей. Поэтому для меня единственная хорошая стратегия спекулятивного трейдинга — это сумма стратегий, которые эффективно работают сейчас и эффективно будут работать через 10 лет. Другими словами трейдер постоянно исследует и адаптируется под рынок. Под каждую торговую пару.

[ Разработка системы ]

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

Что лежит в основе любой эффективной стратегии трейдинга? То, что на рынке периодически возникают моменты с хорошим соотношением риск/профит. В эти моменты рынок становится значительно более прогнозируемым. Но эти моменты длятся очень недолго и быстро откупаются. Конечно же, нужно иметь адское терпение и дисциплину, чтобы дожидаться таких моментов. Я, как трейдер, прекрасно понимаю насколько это эмоционально сложно. Для трейдера это усугубляется еще и тем, что такие кейсы могут возникнуть на любой торговой паре в любой момент времени. Вручную отслеживать все ликвидные пары просто невозможно. А это вызывает стресс от упущенной возможности.

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

[ Первая задача ]

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

Но здесь обязательно нужно учитывать «эффект наблюдателя», поэтому разрабатываемые стратегии практически не должны влиять на рынок. Допускается небольшая доля процента сдвига цены, которая учитывается в алгоритме совершения сделок. Т.е. сделки должны быть распределены по рынку и по торговым парам так, чтобы создавать минимальное давление на ликвидность в одной точке.

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

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

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

[ Вторая задача ]

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

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

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

Результат. Перенести стратегии на программный уровень возможно, используя доступные мне ресурсы.

[ Третья задача ]

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

Важная часть — это скорость расчетов. Данные поступают непрерывно и данных много. Считать нужно так же много и очень быстро. Система не ориентируется на высокочастотный трейдинг (HFT), поэтому микросекунды здесь не нужны. Переходим на уровень, который измеряется в миллисекундах. Это тоже подразумевает очень быстрые расчеты.

Отдельный большой блок — это система обратного тестирования или бэктестинг. Здесь ключевые моменты: точность (было описано в первой задаче) и скорость. Чем больше стратегий за единицу времени можно протестировать, тем больше гипотез можно проверить.

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

Первое, брать готовые IT-решения — это всегда некоторый «кот в мешке». Всегда есть риск, что работать они будут не так, как надо. Будут написаны криво, что исходя из моего опыта, обычно и происходит. Это банальная экономия на качественных специалистах. Тем более, что потеря ваших денег это не проблема сторонней платформы — это ваша проблема. «Вы плохо прочитали нашу документацию и лицензионное соглашение.»

Второе, те продукты, которые я нашел были написаны на языке C# (си-шарп). Классный язык, но такой же ресурсоемкий, как и Java. Мне же нужен был язык, который позволяет эффективно создавать микросервисы и использовать меньше серверных ресурсов. Т.к. чем больше потоков и памяти используется по назначению, тем быстрее работает система. Тем больше данных можно обработать за единицу времени.

Респект языку Golang за его скорость и классную систему управления потоками. Можно было написать проект на чистом Си или на Rust. Но это было бы заметно дольше/дороже. Golang, по скорости исполнения + стоимость разработки, подходит намного лучше. Тем более, что наиболее нагруженные участки системы можно без проблем написать на Си.

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

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

Результат. Есть платформа для трейдинга и для быстрого создания стратегий. Есть платформа для бэктестов.

[ Четвертая задача ]

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

Первое, что приходит в голову — это машинное обучение. Но, как человек, который долго работает IT, я прекрасно понимаю, что провести качественное ИИ-обучение — это трудоемкая задача. Вариант взять некоторый ИИ-движок и скормить ему массу биржевых данных и получить хороший результат… тут кому как повезет. Для меня это, как хаотично ставить точки на листке бумаги и получить свой автопортрет. А на везение я не хочу опираться. Только на расчеты и вероятности.

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

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

Что мне было нужно:

1) Сделать множество расчетов по графикам торговой пары. Большинство параметров не видны невооруженным глазам. Их нужно рассчитать. Применить математику и статистику.

2) Подать результаты расчетов на вход в модуль анализатора и контроллера стратегий.

3) Принять торговое решение.

Важные моменты:

1) Учитываем, что поведение каждой торговой пары уникально.

2) Стратегия должна быть самоадаптируемой к меняющемуся рынку.

Это делается на основе ИИ. Но автоматическое переобучение опирается на кластеризацию. А это обучение без учителя. Значит, что нужны очень значимые машинные ресурсы. Плюс к этому добавляется все сложность работы с ИИ, о чем я упоминал ранее. Поэтому адаптация была переложена на «эволюционный алгоритм». Его можно сделать на классическом программном уровне, он требует умеренное количество машинных ресурсов и показывает хорошие результаты.

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

Результат. Запрограммированная стратегия (комплекс атомарных стратегий).

[ Пятая задача ]

Тестирование стратегии. Фактически, это наличие гипотезы, которая должна быть проверена на ее истинность или ложность.

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

Данных было много: 3.5 года посекундных OHLCV-свечей, для 20 самых ликвидных торговых пар (инструментов).

Важное условие — это наличие различных состояний рынка. Таких как растущий тренд, падающий тренд, боковик. Спокойные участки и участки с сильной волатильностью. Резкие и аномальные движения. Всевозможные виды ценовых манипуляций.

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

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

А как же обычно поступают? Очень просто: банальный перебор параметров и подгонка их под рынок. Намного же проще поменять какие-то коэффициенты, не вникая в причины, не думая. И получается здесь по классике: мусор на входе — мусор на выходе. И снова, кому как повезет.

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

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

Результат. Что получилось по итогу. Стратегия (комплекс атомарных стратегий) показала 155% годовую доходность при средней просадке в 8.5%. Плечо было взято 3х.

[ Тестирование на исторических данных ]

Используя прошлые наблюдения мы хотим спрогнозировать поведение некоторого объекта в будущем. Это чистый регрессионный анализ. Результаты которого не более, чем вероятность. Понимание этого очень важный момент.

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

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

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

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

Почему регрессия не работает для всех? Потому что, в меняющихся системах нужно менять и свою модель. А это трудоемко, это тяжело. И что проще для человека? Делать привычное действие, получить отрицательный результат и обвинить в этом не себя и свою лень, а методологию. И это нормально. Так уж мы устроены.

[ Гипотеза эффективного рынка ]

Гипотезу сформулировал американский экономист Юджин Фама в 1965 году. Пересказывать ее нет смысла. Я лишь хочу привести фразу из недавнего интервью Юджина Фама. Он говорит: «Есть моментум, который противоречит теории, я это отрицать не могу».

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

[ На каком этапе проект ]

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

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

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

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

Разработка и программирование торговых стратегий — это трудоемкий процесс. Его предстоит оптимизировать и ускорить. Чтобы от гипотезы до получения эффективной торговой модели проходило минимум времени.

[ Какие цели у проекта ]

Система, которая эффективно трейдит сейчас. И будет эффективно трейдить через 5 лет, и через 10, и через 20.

Основной ориентир — это высокая доходность при низкой просадке.

Какие рынки: криптовалюта, валютный рынок Форекс, фондовый рынок, товарный рынок.

Суммарный размер капитала для трейдинга будет ограничен. Планируется работать с некоторым фиксированным количеством участников. Главная задача — это прибыльный трейдинг.

[ Что точно не планируется ]

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

Продавать сигналы. Аналогично тиражированию стратегий. Итоговый результат будет такой же.

[ Кто дочитал до конца ]

Если вы: трейдер с опытом реальной торговли или у вас есть экспертиза в аналитике, или в финансовой сфере, или вы — программист с опытом разработки подобных систем, то пишите свои комментарии. Будет очень полезно услышать ваше мнение. Заранее спасибо!

35 комментариев
— Я 50 лет все обдумывал, просчитывал и наконец с уверенностью могу сказать: «Я созрел и готов вступить в половые отношения!»
avatar
myaucha, :)))
avatar
Система не ориентируется на высокочастотный трейдинг (HFT), поэтому микросекунды здесь не нужны. Переходим на уровень, который измеряется в миллисекундах.

Если среднее время в позиции не больше нескольких секунд, то почему это не HFT? А если это среднее время в позиции не меньше 5 минут, то зачем миллисекунды?
avatar
А. Г., среднее время в позиции — 1-3 дня. Быстрые расчеты нужны, чтобы меньше зависеть от устаревания данных и попадания на локальные коррекции. А HFT — это высокие технологии. Тут FPGA нужен и Direct Access. Это сразу очень дорого.
avatar
Не взлетит, имхо. Потому что в итоге нет главного — торговой системы. Уже готовые системы с трудом удается переложить на код.
avatar
Volahub, Торговая система то как раз и есть. Я перекладывал на код то, как сам трейдил вручную.
avatar
Не очень понятно чего вы хотите услышать, но если кратко, то сколько вы там лет программировали на php (современном Си) имеет очень мало корреляции с успехом в трейдинге, как и желание сделать мега систему для заработка денег. Желающих много, в том числе с умением программировать, достигших каких-то разумных результатов мало
avatar
Михаил, согласен с вами. В принципе, в любой сфере, достигших успехов мало. И это нормально. Я использую не только умение программировать, но и умение торговать. Что же я хочу услышать — в принципе, как раз то, что в коментах и пишут. Мнение со стороны.
avatar
Dmitry, я если честно не понимаю, какую пользу вы извлечете из услышанного. С одной стороны люди с очень разными подходами добиваются успеха, с другой стороны, другие люди ровного с такими же подходами не добиваются успеха. Поэтому рассуждение на пальцах мало пользы несет
avatar
Михаил, и это правда. Много зависит от случайности. Опыт и знания снижают ее влияние, но она все-равно влияет в той или иной степени. Понимаете, иногда одна фраза от опытного человека может очень сильно помочь в реализации намеченных целей.
avatar
Хороший пример тут есть у одного человека, который хорошо знает C# — давно понял, что легче впаривать разным лохам программку для автоматизации торговли, чем торговать самому. В итоге каждый день, а то и два мы видим в этом замечательном форуме посты про его мегапрограмму
avatar
Михаил, и это тоже, к сожалению повсеместная практика. Но это не только в трейдинге происходит. Почти везде пытаются что-то впарить. Прикрываясь бонусами, скидками, акциями и т.п. В расцвете всяких Остапов бОльшая вина лежит на людской жадности и глупости.
avatar
Или вот еще один — рисовал дизайн мега системы c DL и прочими плюшками, но как-то до результата не дошло. Но ролики были прикольные — всяко лучше мути про OsEngine
avatar
Михаил, архитектура, в целом, аккуратная. Тут вопрос про стоимость такой разработки. Есть деньги — можно сделать. Будет ли работать — неизвестно. Нужен финплан, расчеты.
avatar
Современным С назван язык c gc. Т.е. подразумевающий, что программист не в состоянии определить иерархию владения ресурсами. Куда катится этот мир...

Зачем вам какие-то фиксированные участники, совсем непонятно. Нет своих рабочих стратегий, хотите у кого-то увести?
Кирилл Гудков, про языки программирования дискутировать, думаю нет смысла. Форум не об этом.

По поводу фиксированных участников. Как я написал в статье, сейчас есть одна рабочая стратегия, которая пойдет в боевой запуск. Есть еще 20 с лишним стратегий, описанных в виде механик. Запрограммировать, отмоделировать, протестировать одну стратегию — трудоемкий процесс. Но это единственный вариант, не рискуя живыми деньгами получить внятную оценки своей торговой системы.

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

По поводу «хотите у кого-то увести», здесь могу сказать так. Допустим у трейдера есть проверенная и работающая стратегия. Это его тайна за семью печатями. Он стратегию никому раскрывает. Меняет торговые площадки, чтобы его стратегию не декомпозировали местные админы. Но у этого же трейдера с большой вероятностью есть масса гипотез и предположений, о том как еще можно торговать. Во всяком случае у меня именно так и было. И тут вариант, держать гипотезу при себе, которая так и останется гипотезой. Либо проверить ее и если она работает, то получить с этого результат. Это как продать долю от компании, получить финансирование и построить бизнес. Либо чахнуть со своей гениальной идеей и не получить ничего.

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

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

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

И важный момент, это собственно сама автоматизация. Но она должна быть качественной и четко выполнять свои задачи. Это упрощение трейдинга, это экономия времени, экономия ресурсов, избавление от рутинных и типовых задач. Даже банально, отложенный ордер — это уже автоматизация. А то почему бы самому не ждать того заветного момента, когда нужно открыть или закрыть позицию вручную.
avatar
ezomm, спасибо. Это, как раз и есть моделирование. И это трудоемкий процесс.
avatar

Не планировали разработанную «платформу» для создания и тесторования стратегий на истории, выложить в open source?
На Go не так много продуктов, для тестирования (видел BBGO, но он заточен на крипту).
Все в основном на питоне и c#.

avatar
Vadim S, Я думал об этом. Возможно и выложу. Надо только тогда документацию написать. Не автогеном, а нормальную внятную. Это дело небыстрое.

 (видел BBGO, но он заточен на крипту)
Как раз пример писателей софта. Понятие абстрактный слой им не знаком еще.

Все в основном на питоне и c#.
Питон — недостаточно быстрый. Хотя, если прогер опытный, он и на Паскале напишет быструю программу. C# — ресурсоемкий.
avatar
__rtx, спасибо за комментарий. Тут я имел ввиду нормальный HFT, когда нужно делать сделки «быстрее конкурентов», за микросекунды. Т.е. классическая высокочастотка, у которой вероятность прибыльной сделки, в принципе, 100%. Прибыль на 1-2 цента, но таких сделок миллион в день, например. Не путать со скальпингом. Это другое.
avatar
Dmitry,
… классическая высокочастотка...

))) Нет такого понятия. И как я и писал выше HFT это очень условное и широкое понятие. То как Вы его для себя интерпретируете это Ваше дело.

Вот смотрите если 10000 сделок в день и часть этих сделок происходит в рамках 1 микросекунды либо наносекунды это не хфт что ли?

Быстрей других и 100%(в основном) это называется — арбитраж а не «классическая высокочастотка».

Миллион сделок в день? Т.е. наш рынок получается не подходит под статус рынка где есть хфт? На Срочном рынке например в некоторые дни бывает меньше миллиона сделок на всём рынке. Не надо путать Ваши личные представления с тем что есть на самом деле.
avatar
__rtx, мы про разные вещи говорим. То, что я описал — это не арбитраж. Но на самом деле, это не суть. Пусть будет HFT таким, как вы его описали. Я не против :)
avatar
__rtx, очень хороший комент, спасибо.

Про бесплатный софт, который вы очень любите, скажу вот что. Когда я трейдил акциями, то брал много информации с сайта quote.ru Тогда еще не было всяких крутых сервисов, поэтому они были хорошим источником. И вот у них были разделы: прогнозы аналитиков, «предсказания» котировок, рекомендации по портфелю и т.п. И все это бесплатно. А вот раздел с отчетами РСБУ и МСФО, которые я использовал тоже, и которые в случае акций реально помогали принять хорошее решение, вот это все было платно. Выводы сами делайте.

Не бывает бесплатно. Если бесплатно, значит, кто-то заплатил за это.

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

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


У кого есть гипотезы и т.п. они и сами всё могут сделать, тем более софта для этого как говна в сарае. Можно написать самому(как сделали Вы). Проблемы в этом нет, проблема в наличии самой гипотезы(т.е. в наличии вменяемой).

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

То что софта много — это совершенно ничего не говорит о том выполняют они свою задачу или нет. Скорее всего нет. Для чего этот софт написан — читайте выше.

Почему? Потому что, никто вам бесплатно не будет тестировать ваши идеи так, чтобы получился корректный результат. Я для тестирования использовал очень мощную серверную инфраструктуру. Детали здесь описывать не буду. Но это очень недешевое удовольствие. И вам никто бесплатно не выдаст адекватные серверные ресурсы. Вам выдадут максимально сгаженный алгоритм тестирования. Быстрый, но сглаженный. Чтобы на ноутбуке запустить. А дальше — это уже ваша забота.

Написать самому — это сложно. Кто верит сказочникам про написание бота на питоне за 15 минут. Ну, можете купить БМВ за 10 тысяч рублей. Из картона. Можно пофоткаться :)

То что пытаетесь сделать Вы это схоже с брутфорсом. Вам накидают столько говна что не разгребёте 

Если накидыватель платит, то ради Бога, пусть накидывает.

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

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

Поиск алгоритма который работает это и есть крайне затратная по времени/нервам/и др. ресурсам задача а Вы её предлагаете Вам отдать.

Об этом у меня и написано в статье, что это сложная и трудоемкая часть. И есть четкое понимание, как этот процесс должен быть организован, чтобы не «перебирать все атомы во Вселенной».
А так вообще, здесь я говорю про торговые гипотезы.
А второе, я вроде внятно написал, что есть собственная стратегия. И есть механики, которые надо запрограммировать. Я пишу, что опыт со стороны был бы очень полезен.
Любую гениальную стратегию, ваша же любая биржа декомпозирует на составляющие и поймет ее алгоритм за некоторое непродолжительное время. Если, конечно, вы не сумасшедший и не меняете брокера каждую неделю. Автоматизация как раз и позволяет максимально долго все это скрывать.

разруливать ситуации «алгоритм перестал работать»? Он же не врубается в коде и будет думать что его обманули?

Скорее всего вы автоматизацией не пользовались. Нормальной, я имею ввиду, а не бесплатной. Во-первых, у нормально написанной системы есть такое понятие, как метрики, которые отслеживают эффективность алгоритма. Если он начинает отклоняться от нормальных значений, то система его отключает. На случай сбоя в системе управления предусмотрен автономный и независимый предохранитель. Бесплатные же, как вы любите, программы они просто сливают депозит. Ну, бесплатно же.
Во-вторых, врубаться в код нет ни малейшего смысла. Механика стратегии описывается на понятном языке. Который через кодо-генерацию уже транслируется в язык Го.

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

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

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

Для этого есть обсуждление, договоренности, личная оценка того с кем ты собираешься работать. Любая компания под правовой формой ООО тогда была бы невозможна. Как договориться о том у кого какой вклад и как делить?

Ну вот а я то думаю телеграмма нет, пишет что транслировать и продавать(стратегии, софт, сигналы, курсы, ютюбканалы, подписки и т.д.) не собирается, вроде честный человек. Оказывается вот в чём подвох. Собрать идей предложив «ничего». Я тоже бывало раньше задумывался о таком, но совесть говорила зачем тебе это, карма и всё такое...

Какие-то странные вещи вы пишите. Вы как видите себе взаимодействие по этому проекту? Через комментарии здесь же на форуме? Т.е. я жду, что кто-то мне в комментарии к статье скинет механику стратегии? :))) И я, анонимный злодей, тут же ее запрограммирую и буду продавать в ютубе :))) Забавно.
По поводу тиражирования, я написал в статье, что я об этом думаю. Вы пропустили мимо.
Это же не реклама или презентация. Я хотел услышать мнение. Если кому будет интересно пообщаться лично, то конечно контактами обменяемся.

Вот здесь уже прямо отчётливо пошла какая-то «рекламщина», «продажа полезности» или что-то подобное. Не хватает вопросов типа — зачем Вам это? Как это работат? Почему это выгодно для Вас? Торопитесь кол-во мест ограничено(хотя это есть в посте) и т.д.

Это мое видение проекта. Я им поделился. Это выгодно для меня? Потому что это сэкономит мое время и ресурсы. Почему выгодно другому — это сэкономит его время и ресурсы.
Про ограниченное количество мест. Это ваши домыслы. Я написал, что размер капитала будет ограничен. И только по одной причине. Потому что у стратегий есть максимальная пропускная способность. Т.е. протестировать не добавляя «эффекта наблюдателя» можно на ограниченном капитале. Далее уже будет сдвиг и тестирование работать не будет. Но бесплатный софт не знает об этом :)))

В чём ему выгода от того что он Вам отдал алгоритм?

Еще раз повторюсь вкратце:

1) Автоматизация. 
Экономия времени, ресурсов, нервов, сил и т.п. Чтобы можно было заняться другими делами. Или заняться разработкой следующего алгоритма.
Я как трейдер подхожу к этому процессу. Не как программист. Мне важен результат. Здесь нужно учесть массу нюансов. Только так можно переложить стратегию на машину.

2) Частичная автоматизация.
Система может включаться по триггеру. Например, естественный интеллект трейдера определил хорошую точку для входа, но есть множество условий. Отслеживание этих условий перекладывается на систему.
Такой комбинированный подход намного проще обучения ИИ, который бы полностью заменил трейдера.

3) Исправление ошибок.
Алгоритм может оказаться неустойчивым, если какой-то сценарий рынка для него не предусмотрен. Это можно выявить при тестировании. Либо ждать пока не прилетит хороший минус.
Я писал модуль тестирования для того, чтобы он показывал реальные результаты, а не красивые циферки. Неработающая стратегия должна показать плохие результаты. А не вводить в заблуждение.

4) Для гипотезы — это точное тестирование и моделирование. Гипотеза — это просто идея. Хорошая или нет — опять же, надо тестировать. И только потом автоматизация.

* Гениальный алгоритм уже украл ваш брокер/биржа. Об этом я написал выше.


Спасибо за развернутый отзыв на статью. Не принимайте близко к сердцу, если где мои слова вам показались излишне резкими :)
avatar
Dmitry, 
… В случае трейдинга, я больше чем уверен, что всю эту софтовую дичь спонсирует крупный капитал, чтобы как можно больше хомяков затянуть в рынок...

От «хомяков» крупному капиталу нет никакого положительного эффекта. Только один визг и 0.0000001% оборота. Рынок это экосистема где разные участники заинтересованы в разном. А эти шизофренические моменты и теории заговора это не имеет отношения к реальности. Есть крупные участники которым надо по рынку — они заходят, хфт кормятся за счёт них и создают для них условия для более дешёвого входа/выхода. А хомяки в это время визжат что рынок «пукнул» на 0.5% и их поравло на 1 акцию магнита. И Вы как Алексей Ван так уверены в своих поделках, они тоже пишут что у них всё хорошо но есть сильные сомнения в этом(судя по тому что они в роликах рассказывают/показывают), сомневаюсь что Ваши поделки лучше(чем та дичь(как Вы выразились) что спонсируется крупным капиталом для хомяков).

… Вы сами вообще пользовались таким софтом?...

Нет и не планирую.

… Если накидыватель платит, то ради Бога, пусть накидывает...


Так Вы ещё и деньги планируете брать что ли за то что Вам кто-то скинет(скинет это условно имеется ввиду(расскажет и т.п.)) алгоритм?)))

… Я для тестирования использовал очень мощную серверную инфраструктуру. Детали здесь описывать не буду. Но это очень недешевое удовольствие...


Ну то что Вы использовали и сколько за это платили это Ваше дело и это никак не говорит о том что у Вас написано всё правильно, откуда тому кто потенциально скинет алгоритм знать что у Вас софт всё корректно считает и т.п. Вы же это понимаете верно?

… Кто верит сказочникам про написание бота на питоне за 15 минут...


Ну те кто в такое веря вероятно это и есть Ваши «клиенты» но сомневаюсь что таких найдётся много т.к. не настолько же мир стал глупым. Хотя всякое может быть.

… Я как трейдер очень хорошо понимаю, что работающая стратегия строится на нюансах. Каждая деталь должна быть отлажена от и до...


Именно поэтому с 2009-2011 годов готовитесь торговать?

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


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

… Скорее всего вы автоматизацией не пользовались. Нормальной, я имею ввиду, а не бесплатной...


У меня больше 90% всего автоматизировано от контроля бота(и состояния ОС когда он торгует) до рутинных задач и всяких CI CD, скриптов для развёртывания на сервере, докеров и т.д. и т.п. Ничем ни платным ни бесплатным я не пользуюсь т.к. всё пишу сам и то что пишу с высокой долей вероятности раз в 50 лучше Ваших поделок. Для примера. У меня прямой доступ, CUDA/GPU и всё такое, коллокация(и не колокация для записи данных с отдельным логином(4500 в месяц + столько же за ВМ в облаке)), от разработки алгоритма до «продакшена» — изменить 1 строку кода(# define ...) и скомпилировать и ещё некоторые моменты которые не буду озвучивать(Вы скорее всего о них даже никогда не будете думать или если будете то лет через 50) чтобы не травмировать Вам психику(Вы и так не сильно торопливый раз 16 лет собираетесь а тут такие откровения). Поэтому свои предположения можете оставить при себе, они не верные(как Вы наверное уже догадались).

… Бесплатные же, как вы любите...


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

… Для этого есть обсуждление, договоренности, личная оценка того с кем ты собираешься работать...


Это называется «словоблудие». Т.к. это никак не оценить даже потому-что на начальном этапе может и не быть того что делить а потом все будут уверены что именно они «тащат проект». Но это Ваше дело и тех кто будет(если такие найдутся) с Вами колоборировать поэтому тут Ваши личные дела. Это просто сугубо моё личное мнение.

… По поводу тиражирования, я написал в статье, что я об этом думаю. Вы пропустили мимо...


По моему Вы путаетесь в показаниях нет? Вот цитата из Вашего поста:

...[ Что точно не планируется ]

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

Продавать сигналы. Аналогично тиражированию стратегий. Итоговый результат будет такой же...


Т.е. сначала пишете что не планируете тиражировать а теперь пишете:
... По поводу тиражирования, я написал в статье, что я об этом думаю. Вы пропустили мимо...

???????? ))) (а_а)

Выглядит не однозначно не так ли? ))) Судя по цитате «пропустили мимо» именно Вы к тому же своё собственное изречение. Поэтому начинает складываться впечатление что Вы немного пытаетесь обманывать «честнОй народ». Нет? ))) Ну наверное просто ошиблись, бывает.
avatar
Dmitry, 
… Какие-то странные вещи вы пишите. Вы как видите себе взаимодействие по этому проекту? Через комментарии здесь же на форуме? Т.е. я жду, что кто-то мне в комментарии к статье скинет механику стратегии? :))) И я, анонимный злодей, тут же ее запрограммирую и буду продавать в ютубе :))) Забавно...


Какой-то странный вывод Вы сделали из того что я написал:
… я то думаю телеграмма нет, пишет что транслировать и продавать(стратегии, софт, сигналы, курсы, ютюбканалы, подписки и т.д.) не собирается, вроде честный человек. Оказывается вот в чём подвох. Собрать идей предложив «ничего»...


Про ютюб и продажу стратегий я как раз и писал что Вы этого делать не собираетесь. А вот собрать стратегий/гипотез или как бы Вы это не называли(да ещё вроде про «пусть платит» что-то говорили выше поищите в комментарии своём) это ведь и есть цель. Правильно? Поэтому не понимаю что Вам показалось забавным. И как бы Вам алгоритм/механику и т.п. стратегии не скинули(здесь или не здесь) это ведь не влияет на то что Вы можете бедолагу обмануть. А у него может и не быть больше идей и что ему потом делать. Будет горевать из-за потери алгоритма.)))

PS:
Да и за комментарий пожалуйста, обращайтесь.)
avatar
__rtx Вы какой-то нервный :) У вас точно все хорошо?

Пусть ваше мнение остается таким, как вы его изложили. Я внятно и доходчиво изложил суть и цели своей работы. А кто, что нафантазировал. Ну, это их право.
avatar
Самое главное — это трекшен реальных сделок. За значимый период времени, чтобы сделать выводы. Это следующий этап моей работы.

Спасибо всем за комментарии. Успехов всем в трейдинге :)
avatar

теги блога Dmitry

....все тэги



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