Все-таки все люди супер разные, очередной раз убеждаюсь. Даже вот когда речь заходит о рисечах и бэктестах.
Сразу скажу, что это не полноценная исчерпывающая классификация, а всего лишь набор некоторых архетипов, не исчерпывающий набор и, возможно, не самые типичные архетипы даже.
И да, все персонажи вымышлены, все совпадения случайны))).
Архетипы алготрейдеров:
1. Просеиватель. Прочесывает все что можно в поисках простых, но ± законченных идей, берет, идею, тестит, выкидывает если не работает, ищет дальше, способен генерировать идеи и сам, работает с идеями в таком же ключе. Считает, что успех в том, чтобы просеять как можно больше простых идей, чтобы именно за счет этого найти большое число интересных идей.
2. Мега-мозг — перелопачивает тонны литературы, исследований, знает сто-пицот математических методов, теорем, вероятностных распределений. Среди знакомых ему формул, теорем и распределений, вероятно, даже встречаются те, где в названии не две фамилии, а 3, но это не точно. Считает, что успех в том, чтобы быть на острие научного прогресса, поглощать передовые исследования.
Всем привет. С вами рубрика «Данные говорят». Да, это первый выпуск в этой рубрике). В этой рубрике мы будем разговаривать с данными. Нет, я не сошел с ума. Данные будут говорить, а я только слушать. А с вами данные тоже разговаривают?
Погнали. Под данными в данном случае имею в виду числа, графики числовых рядов, таблички и аналогичное. В данном конкретном случае речь про числа, графики, таблички по итогам бэктестов стратегии (её болванки, или другими словами корневой идеи).
Если уметь слушать данные, то можно многое услышать – например, например, можно находить баги в коде стратегии, интересные идеи, резервы и т.д. Затягиваешь параметром диапазон значений, а число трейдов растёт? – Ну значит где-то баг. Если вслушиваться в данные – иногда можно идентифицировать не только факт наличие бага, но и его локализацию и характер.
Теперь конкретней про «корреляция графиков зависимости лонга и шорта от значения параметра». Наверно, по формулировке не очень понятно, о чем речь. Тем более, предположу, что так глубоко и в эту сторону копают не только лишь все. Поэтому поясню: допустим, я хочу понять роль параметра А в стратегии, самый простой вариант – не шевеля параметры Б, В, Г и Д, перебирать А с некоторым шагом. Вот мы пошевелили А, не шевеля Б, В, Г, Д. А теперь для каждого прогона посчитали, допустим Profit Factor (возьмем его условно за некий показатель, характеризующий качество стратегии) отдельно для лонговых позиций и отдельно для шортовых. Ну и построили два графика – значение PF в зависимости от А для лонга и значение PF в зависимости от А для шорта. Так вот, иногда/часто эти графики будут прилично коррелировать.
1. Отэксплуатировать на бэктесте подмеченную ранее на одной неликвидной бумажке закономерность. Done.
2. Запостить для галочки результата бэктеста с растущей эквити. Done.
3. Собрать под постом комментарии вида: «почем робот?», «а ты результаты реальной торговли этого алгоритма покажи», «ну и чё, небось инвесторов зазываешь?», «фи, у меня вагон таких и даже получше». В работе.
4. ...
...
Ладно, если что пост полушуточный. Но закономерность реальная. Интересный кстати челлендж замутить экзекьюшн для неликвидной бумаги, чтоб потом не писали: а чей это робот свечу нарисовал на 25% выше рынка?
Кстати, кто-то торгует алгоритмически слабо-ликвидные активы — ну там с дырявыми стаканами и т.д.? Там же роботы точно есть, может это, конечно, маркетмейкеры просто, но может ведь и нет.
Всем привет).
В процессе углубления знаний языка C# пришла такая мысль, хочется получить обратную связь на предмет незамеченных подводных камней и аналогичного — буду благодарен.
Собственно: богатый арсенал языков программирования, а в частности C# — в т.ч. наследование и прочее, позволяют реализовать торгующий модуль какой угодно архитектуры, структуры, с нужными названиями классов, полей и методов. Посему, предположительно, можно написать такой проторговщик, который будет принимать код стратегий из Wealth-Lab как родной, без необходимости его менять, подгонять, править, дебажить, искать ошибки переноса и прочее. Все что я написал после слов «без необходимости» — как бы известные плюсы использования одного кода для тестов и торговли (наверняка, не все плюсы даже перечислил). Т.е. тут один раз качественно убеждаемся, что код интерпретируется полностью аналогично и всё — дальше Ctrl + C, Ctrl + V.
Или если можешь написать такой проторговщик, то проще и Велс свой написать и не иметь мозг?))
Что думаете? :)
UPD.: как это часто бывает, комментарии достаточно волатильно отходят от непосредственно затрагиваемого вопроса)), но все равно есть интересные мысли.
Одна из формул). Ну и этот грааль не окончателен, скорее размышления на тему.
Составляющие успеха следующие:
— Иметь набор зарабатывающих алгоритмов.
— Иметь систему, увязывающую эти алгоритмы в единое целое таким образом, чтобы эффективность связки была оптимальной для данного набора.
— Иметь понимание, когда и почему зарабатывают эти стратегии.
— Уметь понимать, когда и почему зарабатывают любые стратегии.
— Уметь генерировать работающие стратегии.
Это если говорить о долгосрочных горизонтах, с более короткими горизонтами можно без части этих компонентов оставаться на плаву, но обвалиться когда сменится фаза рынка, или перестанут работать работавшие раньше алгоритмы и т.д.
Не судите строго. Не, ну а чё, не каждый же раз гениальные посты выдавать)))
Быстро сказка сказывается, да не быстро дело делается)).
Напишу немного про прогресс. Отсутствие позитивной обратной связи на мои теоретизирования и обвинения в перегибе в сторону теории охладили моё желание изливать свои теоретические рассуждения и мысли), ну ничего, оно вернётся со временем — мысли то не пропали)). Это почему я не пишу. По поводу конкретного прогресса теперь. Я искал — я нашел — нашел компаньона — теперь работаем вдвоём. Пока всё пучком, надеюсь тандем выстрелит, в любом случае опыт интересный и полезный получится. А в целом по поводу тандема — сценарий обычный — первичная эйфория сменилась более объективным отношением. Определили схемы взаимодействия, набросали роудмап со сроками, двигаемся согласно установленного плана)).
Плюсы тандема (не любого, а именно этого):
— Я закрыл те области, которые у меня проседали, могу сконцентрироваться на том, что умею и люблю — рисёч. Кроме технических вопросов кстати скомпенсировал свой перекос в теорию и пространные рассуждения, в запрягание нежели езду и т.д.
Только сегодня и только для вас!: дочитай пост до конца — и ты услышишь увлекательную историю о рисовании графика ликвидного фьючерса.
Но по порядку. Вообще-то те, процессы, которыми я занимался для создания первой работающей схемы, я не очень люблю. Я больше люблю неторопливо исследовать, чем это. А собственно, что «это»?
Я как человек, любящий долго запрягать, когда речь зашла об алготрейдинге — долго запрягал)). Долго выбирал стек-технологий, тыкался-мыкался и остановился на некоторой связке, а именно Wealth-Lab (тестирование стратегий и всяческий рисёч) + Transaq connector (получение маркет данных, отправка ордеров) + готовый коннектор (для того, чтобы связать два предыдущих товарища между собой). Как я сказал, я долго выбирал, и когда выбрал подумал: ну всё, понеслась, запускаю и погнали алготрейдить)). Нифигаа..
Как оказалось парень, которого я назвал «готовый коннектор» не так прост. У меня нет его исходного кода (хотя кого я обманываю, даже если бы был, мой C# пока не так хорош, чтобы ломаться при слове delegate или чем-то подобном, что скорее всего я в коде встречу). А работать с чем-то, что не работает идеально, или вообще не очень хорошо (или даже вообще не работает), не имея возможности посмотреть внутрь, ну очень не комфортно. Развитые аналитические способности, конечно, в некоторой степени позволяют заглянуть внутрь сквозь черноту черного ящика, но это совсем не то же самое что реально видеть, как оно работает. Ну короче, коннектор не отправлял корректно заявки — часть отправлял, а часть упорно игнорил — мне такое не подходит)). Общался с разрабом — не помогло. Сам исследовал — не помогло (строил гипотезы, проверял, строил новые — проверял, конкретизировал гипотезы — проверял, факторный анализ проводил, чего только не делал, успехи были, но остались области полностью черные когда ты тупо не видишь никакой закономерности в том, почему оно вот сейчас работает, а вот сейчас не работает). После этих заглядываний через черноту черного ящика я собственно и решил форсировать апгрейдинг своего C# — никто тебе не помешает заглянуть внутрь того, что ты сам написал и сам понимаешь)).
I’m back!
Было сложно? – было. Сделал ли я так, как хотел бы чтобы выглядело исполнение приказов, и получение маркет даты в идеале? – даже близко нет. Рад ли я, что оно хоть в каком-то виде, но заработало? – очень!
В общем первая связка — done. Здесь всё как я люблю (сарказм) – и тебе необходимость последовательного выполнения набора ручных действий чтобы стартануть механизм (нарушишь порядок или что-то пропустишь и твоя шарманка не заработает) и шаткость конструкции – чуть сильнее дунет ветер — и оно развалится. Но блин всё равно приятно. Это как в B2B секторе приходят бизнесмены-клиенты с копеечными оборотами – для компании они – больше убытки чем прибыль, но они сами очень горды собой и своими оборотами, я их понимаю, и всегда понимал.
Когда приступал к настройке-построению системы, думал: настрою, сконцентрируюсь на рисёче)). Ну да, наивный). Теперь скорректированный план такой:
Многие алгоритмические трейдеры – одиночки – он и трейдер, он и кодер, и квант. И хотя во многом эти роли близки (например, если сказать: трейдер, художник, квант, кодер, уберите лишнее слово, то оставшиеся 3 видно, что достаточно близки), всё-таки при этом они и существенно отличаются между собой. В контексте данного поста важны те отличия, которые завязаны на предрасположенности. Я допускаю – и это так и есть – что человеку могут подходить часть этих ролей и не подходить другие, или подходить меньше. Меньше подходить, в данном случае означает, что отдача от выполнения соответствующей роли будет меньше. Да, ты приспособишься, адаптируешься, подтянешь нужные дисциплины, засунешь подальше свои предрасположенности и предпочтения и будешь делать весь спектр работ, но нетипичная роль, нелюбимая роль всегда будет в отстающих в твоём единоличном тандеме.
Какие блоки (процессы, этапы) имеются в алгоритмической торговле:
1. генерация идей.
2. формализация идей.