Блог им. Replikant_mih

Роли в алгоритмической команде.

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

Какие блоки (процессы, этапы) имеются в алгоритмической торговле:

1. генерация идей.

2. формализация идей.

3. тестирование идей.

4. аналитика результатов тестирования.

5. техническая реализации торговых роботов, и всей инфраструктуры для всех процессов в целом.

Для целей поста классификация прокатит.

Из предложенного списка я хорош в 1, неплох в 3, 4 и довольно слаб в 2, 5.

Генерить идеи – это прям моё!) Я в целом по жизни предпочитаю абстрактный уровень мышления конкретному – это даёт тебе в плане генерации идей огромное преимущество. Какие идеи хороши? – не стандартные, ну, вернее, не стандартные идеи повышают твои шансы наткнуться на что-то действительно стоящее, интересное, не избитое на рынке, где ещё нет толпы высокообъёмистых алго-конкурентов. Когда ты любишь и умеешь мыслить на абстрактном уровне, твоё конкурентное преимущество основано на том, что мысля так ты не цепляешься за землю – за конкретный уровень, ты как бы мыслишь свободно, да, ты платишь за это цену в виде того, что некоторые идеи могут быть абсурдными, бессмысленными и т.д., но для фильтрации таких идей есть последующие этапы, наличие таких идей не проблема, а вот отсутствие нестандартных идей – вот настоящая проблема.

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

Формализация идей, тут речь собственно о формализации), конкретизации идей, но главное, что я в данный блок смыслово вкладываю – это то, что в данном случае залог успеха часто – наличие хорошего математического бэкграунда и общая техническая подкованность. По своей основной на данный момент работе у меня получаются отличнейшие тандемы с людьми с хорошим техническим бэкграундом – моей общей технической эрудиции вполне достаточно чтобы находить общий язык с такими людьми и направлять их качественные технические знания в нужное русло, получаются классные результаты. Аналогично и с технической реализации всей инфраструктуры, кода – ну тут нужно быть хорошим программистом – т.е. опыт и знания, ну и предрасположенность. В целом мне нравится кодить, но это не то что прям «моё», поэтому даже если я подтяну серьёзно знания, наберусь опыта, «моим» это всё равно не станет и этот блок всегда будет в отстающих.

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

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

★3
56 комментариев
Ну не скажи, вот я успешно совмещаю в себе все эти роли! Я являюсь очень крутым математиком, поэтому отлично справляюсь с работой кванта. Раньше я своим выдающиеся математические способности прикладывал в программирование, много лет проработав профессиональным программистом( это очень родственные области, для программистов тоже важно логическое мышление и математические способности), так что с програмной составляющей у меня тоже все впорядке.
 Ну а трейдинг это вообще элементарная составляющая, посадить следить за роботами можно даже неквалифицированную обезьяну, но я сейчас занимаюсь этим сам. На втором мониторе открыты квики и мониторилка роботов и я иногда краем глаза туда поглядываю как у них идут дела, спокойно на основном моне занимаясь первыми двумя ролями.
sore, Ну, в идеальном варианте — когда ты хорош во всём) — да, тебе наверно не сильно кто-то нужен, вернее не жизненно необходим. Ну и кроме того, вполне успешно можно совмещать даже если у тебя что-то проседает, главное чтоб слишком сильно не проседало))
avatar
sore, где служил диссертацию где защищал и по какой теме?
avatar
Enfernuz, я не настолько глуп чтоб тратить свое время впустую на написание диссеров ;)
sore, толсто
avatar
Что хуже всего при работе с друзьями/партнерами/командой? То, что тебя рано или кинут/обманут. Проверено жизнью и не один раз. Друзей после совместного бизнеса не остается.
Антон Иванов, Да, помимо того что надо чтобы сложился паззл по навыкам, умениям, предрасположенностям — есть ещё много нюансов — человеческие качества, мотивация и прочее и прочее, поэтому часто, действительно, работать в одного предпочтительней)
avatar
Можно промониторить все имеющиеся вакансии в стране и сложится довольно правильное мнение о ролях в команде на практике.
avatar
Андрей К, Можно). Я больше отразил своё видение данной темы, возможно я в чем-то заблуждаюсь, ошибаюсь, возможно, заблуждаются все алгоритмические команды, размещающие вакансии)). Кстати вакансий не так много.
avatar
Replikant_mih, у вакансий есть сезонность. Сейчас не сезон. Чуть позже.
avatar

Андрей К, А когда примерно сезон?) — как и в других отраслях — осень-зима?

 

avatar
Replikant_mih, ага, сразу после НГ в середине января начало. Пару месяцев. И примерно в конце сентября и тоже на пару месяцев.
avatar
Андрей К, Такая чёткая у вас локализация во времени), любопытно. надеюсь, в свое время мне эта информация пригодится).
avatar
Kolyan, аксельрод так и делал, держал в штате врача-психолога))
Сейчас вакансии идут под стартапы. Собрать блестящую команду, которая предназначена для эксперимента, очень несложно. В ней не будет никаких проблем и никаких разногласий, все просто получают ЗП не зависимо от результата. Собрать команду для совместного извлечения прибыли, а не для просерания бюджета — не реально.
Cristopher Robin, Почему нереально? В чем сложности? Есть же такие команды, я думаю.
avatar
Replikant_mih, я вот не уверен, что есть такие команды.
Kolyan, для меня идеи — это относительно не сложно, но тем не менее, я понимаю, что для многих именно в идеях затык. Другими словами, я понимаю ценность идей, не готов разбрасываться ими)
avatar
   Я думаю что для многих идеальный вариант придумывать идеи ака пиздеть, а что бы работали за них другие, а чо удобно — ответственность перекладываешь на других, а бабки себе забираешь )
avatar

StockChart.ru, не согласен. В том смысле, что если у кого-то что-то получается легко и непринужденно и при этом качественно, и одновременно это редкая способность — ценность такого умения и такого вклада будет высокой — важен вклад, а не то, какими усилиями ты его сделал. 

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

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

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

sortarray sortarray, Да, согласен! Просто для целей систематизации в посте мне пришлось пойти на упрощение — в частности упрощенная классификация.

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

avatar
Replikant_mih, для того чтобы делегировать часть работы, скажем, избавить себя от скучного число*бства и перекладывания байтиков, нужно обладать даром декомпозиции и модульности, разделения ответственности модулей приложения, нужно уметь четко отделять компоненты, и не смешивать все в одну кучу, это основной момент, и это, пожалуй то, чего основной массе разрабов катастрофически не хватает. Я бы выделил два краеугольных камня в разработке: умение сформулировать, выразить и построить архитектуру в терминах решаемой задачи, или предметной области, что практически сводится к построению DSL в том или ином виде, и второе — построить «правильные» взаимосвязи между компонентами приложения
sortarray sortarray, Да, я отдаю себе отчёт, что организация в команду влечет доп. издержки разного рода, в т.ч. организационные, поэтому я туда пока не стремлюсь особо, пока не почувствую что потенциальный профит от такой смены организационной парадигмы с запасом компенсирует эти доп. издержки и доп. риски. Издержки и профиты — в данном случае — не только и не столько деньги.
avatar
на самом деле все просто… берешь 2 скользящие средние… пишешь бота… пускаешь в торговлю… видишь недостатки — улучшаешь бота… опять пускаешь в торговлю… снова видишь недостатки — исправляешь… и тд и тп по кругу т.е. тот кто реально не торгует роботов писать не может
avatar

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

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

avatar
Replikant_mih, 
1 проскальзывание и реальное исполнение приказов по бэк тесту не поймешь
2 многое решают психологические аспекты… и кботу тупо надо привыкать
3 кроме того есть комфортные боты и некомфортные… т.е. одни боты более удобны в торговле чем другие… ну например мне нравится когда бот торгует только часть дня… мне нравится когда у меня постоянный хедж и мне не страшен внезапный гэп на -30-50%… мне нравится когда бот сам по себе отбивает затраты на торговлю… мне нравится что когда отваливается брокер у меня не теряются заявки… мне нравится когда у меня частично захеджен валютный риск и тд и тп
avatar

ves2010, 1. это да, но в принципе ты это понимаешь после какого-то боевого опыта торговли, дальше просто экстраполируешь этот опыт на новые стратегии.

 

avatar
ves2010, с (3) согласен! Всё здраво! Единственно не уловил связь с обсуждаемой темой или комментами))
avatar
Replikant_mih, идея в том что генератор идей должен чувствовать баланс… между сложностью и практичностью…  и чувствовать торговлю… и придется заниматься всем подряд
avatar
ves2010, Аа, теперь понял, да, согласен! Ну и генерация идей может касаться и исполнения и других чисто практических аспектов, так что «связь с реальностью» по-любому не надо терять). У меня есть проблемы с перекосом в сторону теории, вроде выправляю этот перекос.
avatar
Replikant_mih, написать грамотный бектестер это довольно нетривиальная задача. Среди публично доступных тесторов качественных решений я не встречал.
sore, Согласен, а я где-то утверждал обратное?)
Среди публично доступных есть качественные, как по мне. Другое дело, что потребности у каждого специфичны, сложно подобрать такой бэктестер, чтобы всем потребностям конкретного товарища удовлетворял, тут, действительно, только самому писать.
avatar
Replikant_mih, а можно пример такого качественного среди доступных? 
 ПС. под качеством я подразумеваю отличие в результатах торговли в реальности с тем, что тестер выдает при тестировании на том же интервали времени. Хороший тестер это тот, у которого не мение 99% сделок будет совпадать с тем что получилось при реальной торговле.
sore, Под мои критерии «качественного бэктестера» подпадает Wealth-Lab, я, собственно, на нём выбор остановил на данном этапе).
У меня несколько другие критерии оценки. В чем проблемы делать реалистичное тестирование? — тут вроде космических возможностей тестера не надо, делаешь реалистичное проскальзывание, подходящий тип заявки и т.д. Или речь о чем-то другом?
avatar
Replikant_mih, проблем сделать реалистичное тестирование много, и мало кто из тестиров справляется с их решением. Проверь Wealth-Lab протестировав свой алгоритм на интервале, на котором до этого торговал в реале, результат будет заметно отличаться.
   Для качественного бектеста как минимум требуется фулордерлог в качестве исходных данных и грамотно написанный алгоритм экзекьюшена ордеров. В то время как все публично доступные бектестеры(которые мне доводилось встречать) не заморачиваются и делают примитивный нериалистичный экзекьюшен и используют сильно упрощенные исходные данные вплоть до свечек. И чем меньшие движения ловит алгоритм, тем сильней различается результат теста от реальности. Вплоть до того, что тестер выдает хорошую прибыль в то время как в реальности алгоритм торговал в убыток.
sore, фулордерлог в качестве исходных данных — это конечно круто, но на некоторых TF, скоростях торговли и типах стратегий его актуальность не высока. Исполнение можно упрощенно моделировать имеющимся инструментарием, а если что — можно дописать какую-нить библиотечку для более техничного моделирования. В конечном счёте, ну кроме случаев высоких скоростей и коротких тайм-фреймов, моделирования, дающего в среднем тот схожий результат, достаточно. Если в среднем оно даёт нужный уровень реалистичного — этого достаточно, зачем точнее, если робастности стратегии не хватает чтобы дать одинаково хорошие результаты и на суперреалистичном тесте и на условном моделировании — ну значит в стратегии не все в порядке). Ну а про скальпинг — уже сказал выше.
avatar
Replikant_mih, как я уже писал, точность симулятора меряется процентом расхождения с реальностью. Для твоих стратегий делал замеры на Wealth-Lab? В 1% укладывается расхождение между реальным ПнЛ и тестом?
sore, У меня пока нет боевых алго-транзакций))

avatar
генерация идей без ее формализации — называется просто пиз*ж. и сейчас да, навалом таких вот «креаклов» которые «придумывают» что-то совершенно не понимая  что ЭТО никогда не взлетит
avatar
Petr S, не мало и тех, кто не придумывает, а делает банальные не работающие вещи. Речь не идёт о предельных случаях. 

Генерация идеи/формализация идеи — условная градация, сложно провести четкую границу, во-первых. Во вторых, я не говорю, что генерация идей — самодостаточный этап, естественно без остальных блоков как и во всем другом цена идеи — ноль, потому что мера оценки — результат, а его без других блоков не будет. Но недооценивать процесс генерации идей тоже не следует, я немного слушаю, читаю и т.д. трейдеров, наиболее распространенная ситуация когда за идеи выдаются разные комбинации индикаторов и разные способы генерации сигнала одним индикатором. Причём в банальнейшем виде. Это очень далеко от того, что я называю генерацией идей. Такие идеи, действительно, не сильно ценны, такие идеи может генерить каждый, а не такие — тут нужен талант))
avatar
нужен кодер, который кодит
нужны идеи и предварительная формализация
ну и конечно нужен балабол чтоб притягивать денег
иначе смысл торговать на свои?
avatar

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

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

avatar
Replikant_mih, еще такой момент.
вот есть команда 3 человека.
есть капитал суммарный пусть Х рублей и доходность с него 50 годовых.
вопрос
сколько должен быть капитал, чтоб три человека с него прокормились год если поделят эти 50 годовых?
а если с 50 годовых они получат всего лишь бонус 20% что составит 10% от капитала в итоге
тут и кроется ответ почему все по-одиночке сидят в норах (мудилы) и ничего друг другу не рассказывают
avatar
Думаю, ни кто не сможет лучше и быстрее формализовать идеи, нежели чем сам автор идей, если он в компетенции их формализовывать, конечно. 

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

SuperMegaTrader, Мож. я не совсем точно понятие употребил. На самом деле если я вот так взаимодействую по схеме: я-генерирую идею, кто-то формализует, то по факту, и формализую во многом тоже я. Например, одна из подзадач в рамках разработки стратегии свелась к тому, что мне нужно проверить корреляцию двух инструментов, тут я обращаюсь к математически подкованному человеку на предмет того, какие бывают способы это сделать — он мне, допустим, выкатил 3, я спрошу в чем их суть, если не вкурю суть, да даже если и вкурю — спрошу про плюсы и минусы, обмозгую, взвешу их, выберу способ. Дальше при дальнейшей формализации в рамках выбранного одного из 3-х способов, условный математик проинформирует о ряде нюансов в рамках этого способа, я опять-таки попытаюсь понять их суть и значение в рамках моего видения ну и т.д. в таком духе, а не то, что я сказал: идея: «пробой волатильности на восходящем тренде после коррекции», а вы дальше е**тесь как хотите).

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

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

avatar
Replikant_mih, ясно. Чтобы добиться синергии, так сказать. 
Но все упрется в условия сотрудничества (с тем же математиком) — если только не нанять за з/п, если есть серьезный объем работы, которым можно его загрузить.
 Проще будет на форумах синергии добиваться, имхо.

avatar
SuperMegaTrader, на сверхпрофитность забей сразу… все это сказка и фантазия
avatar
ves2010,  если  две Машки мучить — то, конечно.
avatar
SuperMegaTrader, )
avatar
Идея идее рознь — вот в чем проблема. Торговать только по утрам — идея. Торговать только по sma — идея. Торговать каждую большую свечу в контртренд — опять идея. Не торговать по средам — снова идея. И т.д.
avatar
Sergey Pavlov, ну эт понятно, что идея разного качества, речь же об этом? Приведенный список с точки зрения формулировок я бы оценил так: торговать по утрам — я бы переформулировал в «какие-то характеристики рынка, с которыми коррелирует результативность торговли носят циклический характер, период цикла — день», дальше я бы задумался, а можно ли не статистически такие циклы и периоды вычислять, а в сравнении фаз понять, что именно делает именно утро благоприятным для торговли и научиться находить утро не только утром, или например видеть, что сегодняшнее утро и не утро вовсе. Про среды то же. Sma — не люблю индикаторы, без комментариев. Про большую свечу — идея мне не понятна, не могу прокомментировать — у меня тоже бывают пусты идеи без внутренней структуры, вида «а посмотрю как я как будет если...», но в развитии идеи ты все равно начинаешь ее наполнять смыслом или окружать смыслом, развивать.
avatar
Sergey Pavlov, у меня в списке идей идея это редко готовая основа для системы, часто идея относится например к принципу переноса стопа и может быть транслирована на все или большинство торговых систем. Или более концептуальная идея, правящая представление о рынке, такая идея врядли достаточна для построения системы, но способна породить новый класс систем или изменить подход к их построению.
avatar
Так сложилось по жизни, что мне пришлось реализовывать все 5 пунктов)
avatar
SenSoR, Так это, большинству так приходится)). Мне тоже. В чем-то я лучше, в чем-то хуже, что-то больше нравится, что-то меньше, но всё-таки минимальный уровень «нравится» он даже для самых проседающих пунктов он достаточен чтобы получать удовольствие от процесса), ну а за удовольствием результаты всегда подтягиваются обычно)
avatar

теги блога Replikant_mih

....все тэги



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