Одна из формул). Ну и этот грааль не окончателен, скорее размышления на тему.
Составляющие успеха следующие:
— Иметь набор зарабатывающих алгоритмов.
— Иметь систему, увязывающую эти алгоритмы в единое целое таким образом, чтобы эффективность связки была оптимальной для данного набора.
— Иметь понимание, когда и почему зарабатывают эти стратегии.
— Уметь понимать, когда и почему зарабатывают любые стратегии.
— Уметь генерировать работающие стратегии.
Это если говорить о долгосрочных горизонтах, с более короткими горизонтами можно без части этих компонентов оставаться на плаву, но обвалиться когда сменится фаза рынка, или перестанут работать работавшие раньше алгоритмы и т.д.
Не судите строго. Не, ну а чё, не каждый же раз гениальные посты выдавать)))
Вселенная откликается на мой зов) – плотнее врастаю в алгоритмическую торговлю и алгоритмическую среду общения, всего становится больше и в целом много), а учитывая, что я пока не оторвался от островка безопасности в виде не связанной с трейдингом наёмной работы, это может представлять некоторые сложности)). Один из секторов этого «много» — самописный тестер. Сейчас буду проводить тесты скорости, сравнивать в Велс-лабом. Что-то мне подсказывает, что на длинной дистанции (большое кол-во баров) Велс вообще сломается, не говоря о скорости)). А скорость, действительно, любопытно замерить. Если она будет не хуже – это для меня уже победа, если лучше – вообще супер. Хотя я знаком с выражением «архитектура приложения» поскольку-постольку, но тем не менее постарался архитектурно заложить большой потенциал)). Когда всё заработало (написанная удобным образом простенькая стратегия посчиталась и выдался результат прогона) – испытал неизведанное доселе и довольно приятное ощущение от того, что ты точно ЗНАЕШЬ, как работает твое приложение и ты можешь в рамках архитектуры править всё что хочешь, нет табу, нет нельзя, нет ограничений, есть только приоритеты, ну и конечно, как сказал выше – архитектура. Одна из целей написания своего тестера – желание реализовать свои идеи в процесс оптимизации, которые невозможны/не удобные в случае существующего на рынке софта. В общем, посмотрим.
Только сегодня и только для вас!: дочитай пост до конца — и ты услышишь увлекательную историю о рисовании графика ликвидного фьючерса.
Но по порядку. Вообще-то те, процессы, которыми я занимался для создания первой работающей схемы, я не очень люблю. Я больше люблю неторопливо исследовать, чем это. А собственно, что «это»?
Я как человек, любящий долго запрягать, когда речь зашла об алготрейдинге — долго запрягал)). Долго выбирал стек-технологий, тыкался-мыкался и остановился на некоторой связке, а именно Wealth-Lab (тестирование стратегий и всяческий рисёч) + Transaq connector (получение маркет данных, отправка ордеров) + готовый коннектор (для того, чтобы связать два предыдущих товарища между собой). Как я сказал, я долго выбирал, и когда выбрал подумал: ну всё, понеслась, запускаю и погнали алготрейдить)). Нифигаа..
Как оказалось парень, которого я назвал «готовый коннектор» не так прост. У меня нет его исходного кода (хотя кого я обманываю, даже если бы был, мой C# пока не так хорош, чтобы ломаться при слове delegate или чем-то подобном, что скорее всего я в коде встречу). А работать с чем-то, что не работает идеально, или вообще не очень хорошо (или даже вообще не работает), не имея возможности посмотреть внутрь, ну очень не комфортно. Развитые аналитические способности, конечно, в некоторой степени позволяют заглянуть внутрь сквозь черноту черного ящика, но это совсем не то же самое что реально видеть, как оно работает. Ну короче, коннектор не отправлял корректно заявки — часть отправлял, а часть упорно игнорил — мне такое не подходит)). Общался с разрабом — не помогло. Сам исследовал — не помогло (строил гипотезы, проверял, строил новые — проверял, конкретизировал гипотезы — проверял, факторный анализ проводил, чего только не делал, успехи были, но остались области полностью черные когда ты тупо не видишь никакой закономерности в том, почему оно вот сейчас работает, а вот сейчас не работает). После этих заглядываний через черноту черного ящика я собственно и решил форсировать апгрейдинг своего C# — никто тебе не помешает заглянуть внутрь того, что ты сам написал и сам понимаешь)).
I’m back!
Было сложно? – было. Сделал ли я так, как хотел бы чтобы выглядело исполнение приказов, и получение маркет даты в идеале? – даже близко нет. Рад ли я, что оно хоть в каком-то виде, но заработало? – очень!
В общем первая связка — done. Здесь всё как я люблю (сарказм) – и тебе необходимость последовательного выполнения набора ручных действий чтобы стартануть механизм (нарушишь порядок или что-то пропустишь и твоя шарманка не заработает) и шаткость конструкции – чуть сильнее дунет ветер — и оно развалится. Но блин всё равно приятно. Это как в B2B секторе приходят бизнесмены-клиенты с копеечными оборотами – для компании они – больше убытки чем прибыль, но они сами очень горды собой и своими оборотами, я их понимаю, и всегда понимал.
Когда приступал к настройке-построению системы, думал: настрою, сконцентрируюсь на рисёче)). Ну да, наивный). Теперь скорректированный план такой:
Дисклеймер. Не читайте, если вы не хотите зарабатывать. ЭТО НЕ ДЛЯ ЛУДОМАНОВ.
В продолжении моей предыдущей статьи хотелось бы продолжить разговор о алготорговле. Безусловно, это уже современный инструмент биржевого мира. И подавляющее большинство, если не все зарубежные компании пользуются им. Используют новые алгоритмы, исследуют новые возможности рынка, стараются преодолеть новые неэффективности.
И конечно же у них есть соответствующие платформы для этого. Их просто огромное количество. И я так понял, что большая часть таких платформ выпускается и поддерживается небольшими коллективами разработчиков. Примеры таких компаний.
www.algotrader.com
Есть градация: системный трейдинг и несистемный. Системный – типа вход и выход по четким однозначным правилам (системный часто эволюционирует до алгоритмического). Должен ли системный подход на этом заканчиваться? – я думаю, нет. Если системный подход идёт от самой картины мира трейдера, как её концентрированное представление, то уверен, что в соответствии с этими представлениями системными должны быть и другие аспекты торговли. Сейчас поясню через предложение. Если же трейдер пошёл в алго тупо чтоб не сидеть перед монитором или только потому, что не справляется с психологией, то у такого трейдера скорее всего не будет тяги систематизировать вообще всё. О каком всём я говорю: это прежде всего процесс разработки стратегии, оптимизации, верификации. В случае с достаточной формализацией данных процессов, многое если не всё так же может быть автоматизировано. И второе – критерии включения стратегии в список торгуемых в бою и критерии выключения стратегии.
Углубляя проникновение (как звучит-то!) системного подхода в трейдинг, мы как минимум продолжаем снижать влияние эмоций и прочих нерациональностей на принятие решений – не так то просто эмоционально перестроиться на подход, когда при рисёче ты стараешься доказать, что стратегия не работает, а не наоборот. А если ты исходишь из «наоборот» — тебя ждут те же самые психологические ловушки, только немного другие. Та же фигня и при администрировании стратегий – какую добавить, какую убрать, какой дать больше денег. Привязанность к когда-то хорошо работавшей стратегии, желание дать слишком много денег хорошо работающей стратегии и т.д. – во всём этом по прежнему много места для эмоций.
Для одной из стратегий понадобилось рисовать прямые линии на графике. Вспомнил формулу прямой, а вот над тем, как по координатам двух точек эту формулу воссоздать – пришлось основательно повозиться. Сначала гуглил – но там как-то всё сложно – слишком много формул для простой задачи)), пришлось самому на листке в клетку рисовать и выводить формулу. Как вы поняли – я не на «ты» с математикой. После этой части текста какая-то часть алго-трейдеров подумает «чувак, даже не пытайся зарабатывать в алго-трейдинге, даже нам зубрам математики, статистики, теории вероятностей, машинного обучения это делать не легко» (интересно, какова доля алго-трейдеров, которые так подумали?).
На самом деле мне самому интересно, насколько далеко я смогу зайти по результатам с таким знания в математике. Есть мысли проапгрейдить знания, но это не приоритетная задача, тем более очень далеко в этой области я зайти не смогу. А пока пользуюсь универсальным аппаратом логического мышления. Как это ни странно, этого вполне хватает в той профессиональной области, в которой я на данном этапе работаю full-time и которая по уровню дохода для меня пока является основной, и которая так же связана в т.ч. с анализом данных и прочей аналитикой.
Занятно, озвученная в предыдущем моём посте мини-теория не нашла особого одобрения. Вообще ожидал, что большинство не согласится, но найдётся соглашающееся меньшинство (может они просто ещё не читали :))) ). Тут опять можно упомянуть соотношение Парето (ну крутое оно, много где работает, почему бы не упомянуть), тут даже важны не цифры – 20-80, 30-70, это поверхностное, но сама суть - меньшинство чего-то производит какие-то действия (влияет, формирует, зарабатывает) с большинством чего-то)). На рынке это соотношение работает в частности в виде: меньшая часть участников зарабатывает большую часть денег, меньшая часть участников имеет доступ к большему объёму информации и т.д. Считается, что на рынке толпа ошибается, толпа – большинство. Так что наверняка работает и закономерность: теория большинства ошибочна. Вот это то и даёт шанс на то, что то, что ты стоишь в оппозиции к общепринятой теории и даёт тебе шанс. Это как ниша, которая не сильно занята.
Я люблю мыслить вне общепринятых теорий, мне так нравится, свой путь, свои велосипеды, но иногда сложно отбиваться от мэйнстрим-оппонентов и аргументов. Вот, для самооправдания и самоподбадривания придумал вот такую вот оправдалочку)).
На самом деле в этой теме нужно много о чем сказать, не забыть бы всего). Начну с начала: много, очень много от кого слышу про то, что параметры – зло, много параметров – большое, нечеловеческое зло. Типа чем больше параметров, тем меньше шансов что в out of sample бою стратегия будет работать так же как и на is sample тесте. Здесь, наверное, надо сделать небольшое отступление: в трейдинге, как в кодинге, справедливо правило: если что-то работает, то и зашибись, не надо ничего менять. Простые стратегии работают (не все конечно) – это факт, и хорошо. Если вы не умеете работать со стратегиями с большим числом параметров – работайте с простыми стратегиями. Ещё в трейдинге есть правило: выбирай лучший вход – если у тебя есть достаточно выдержки, то ты будешь отсекать входы, где вроде и оно, но не совсем, я лучше подожду, чтоб был вход без «но» — и этот подход хорошо работает. Это я к чему такое отступление (применительно к теме поста) делал – к тому, что если у вас работают простые стратегии (здесь, далее и ранее, простые – с малым числом параметров или без них вообще) – торгуйте их, зарабатывайте и радуйтесь жизни. Но я всё-таки уверен, что много-параметрические стратегии работаю, нужно просто подойти с правильной стороны. Ниже об этом.