Все-таки все люди супер разные, очередной раз убеждаюсь. Даже вот когда речь заходит о рисечах и бэктестах.
Сразу скажу, что это не полноценная исчерпывающая классификация, а всего лишь набор некоторых архетипов, не исчерпывающий набор и, возможно, не самые типичные архетипы даже.
И да, все персонажи вымышлены, все совпадения случайны))).
Архетипы алготрейдеров:
1. Просеиватель. Прочесывает все что можно в поисках простых, но ± законченных идей, берет, идею, тестит, выкидывает если не работает, ищет дальше, способен генерировать идеи и сам, работает с идеями в таком же ключе. Считает, что успех в том, чтобы просеять как можно больше простых идей, чтобы именно за счет этого найти большое число интересных идей.
2. Мега-мозг — перелопачивает тонны литературы, исследований, знает сто-пицот математических методов, теорем, вероятностных распределений. Среди знакомых ему формул, теорем и распределений, вероятно, даже встречаются те, где в названии не две фамилии, а 3, но это не точно. Считает, что успех в том, чтобы быть на острие научного прогресса, поглощать передовые исследования.
Немного порассуждаю про уровень абстракции в стратегиях и про ООП как инструмент для этого.
Да, чтобы войти на пересечении скользящих и выйти по трейлингу на основе параболика ООП нафиг не нужен. Но я мыслю более реальными, «физическими» категориям. В смысле более живыми. Импульс, консолидация, да тот же тренд. Да, теоретически я могу использовать стандартные индикаторы, но у меня всегда индикатор – всего лишь отражение какого-то физического процесса. Но об этом я частенько упоминал, сейчас не совсем об этом.
Когда ты дата-майнишь, рисечишь идеи для стратегий тебе позарез нужно конкурентное преимущество. Перебирать и комбинировать сигналы разных индикаторов – это давно не работает. Конкурентные преимущества бывают разные: преимущества могут быть у бога математики или физики, у бога статистики и аналогичных наук, преимущества могут быть у лютых технарей, которые могут покорить космические скорости вычислений и исполнения.
Сейчас попробую выделить ещё один вид преимущества, ну или вернее ниша, в которой, как мне кажется, пасется не так много народу. Я говорю про нишу высокоуровневых абстракций.
Что я имею в виду, зачем это надо, при чем здесь ООП.
Идея давно витает в голове. В принципе ничего нового: системный трейдинг должен быть системен во всем — не только инкапсулироваться в отдельных стратегиях (торговых системах) — системно входить, системно выходить, но и работа со стратегиями так же должна быть системной — как верифицировать стратегию — оценивать на доходность, робастность, «достойность» для включения в портфель; системны должны быть критерии выключения стратегий, алгоритм распределения денег и рисков между стратегиями и прочее и прочее. Это ладно — в целом необходимость покрытия системным подходом всех этих аспектов (думаю, многие ещё не упомянул) плавает на поверхности.
А вот если посмотреть на это именно как на систему (просто более высокого порядка), можно найти неожиданные и интересные моменты. Т.е. что получается, торговые системы мы всячески всесторонне тестируем, просеиваем песок с целью в большом количестве песка найти крупицы золота, а когда же речь заходит о системе высшего порядка — ну, у кого-то вообще все на глаз, у кого-то более системно, у кого-то очень системно, но наверно единицы примеривали разные варианты мета-системы, а не используют первую же? — Почему так? — Из-за неосознания того, что мета-система такая же система с теми же правами, полями, методами, событиями? :) — Из-за неосознания важности такой мета-системы и важности её качества? — А давайте прикинем влияние мета-системы на результаты.
Всем привет).
В процессе углубления знаний языка C# пришла такая мысль, хочется получить обратную связь на предмет незамеченных подводных камней и аналогичного — буду благодарен.
Собственно: богатый арсенал языков программирования, а в частности C# — в т.ч. наследование и прочее, позволяют реализовать торгующий модуль какой угодно архитектуры, структуры, с нужными названиями классов, полей и методов. Посему, предположительно, можно написать такой проторговщик, который будет принимать код стратегий из Wealth-Lab как родной, без необходимости его менять, подгонять, править, дебажить, искать ошибки переноса и прочее. Все что я написал после слов «без необходимости» — как бы известные плюсы использования одного кода для тестов и торговли (наверняка, не все плюсы даже перечислил). Т.е. тут один раз качественно убеждаемся, что код интерпретируется полностью аналогично и всё — дальше Ctrl + C, Ctrl + V.
Или если можешь написать такой проторговщик, то проще и Велс свой написать и не иметь мозг?))
Что думаете? :)
UPD.: как это часто бывает, комментарии достаточно волатильно отходят от непосредственно затрагиваемого вопроса)), но все равно есть интересные мысли.
Ненавижу дебажить код.
Код стратегий, код чего угодно. По типу задачи (задача найти баг или оценить код на предмет: есть ли баги) – задача моя – т.е. я такое люблю – найди то, не зная что, так не зная как. Но блин – итак много задач, эти задачи они как бы не входили в твои планы, это как бы внеплановые задачи. Задача найти баги – плановая – но каждый конкретный новый баг – это внеплановая фигня – поэтому она напрягает. Это не задача, двигающая вперед, а задача, решение которой тебя возвращает в текущую точку развития после откидывания назад. Когда возникнет такая возможность, в первую очередь делегирую QA.
Больше меня напрягает искать баги когда нет формальных свидетельств их наличия. Код компилируется, трейды совершаются, но ты, блин, очень не уверен, что в таком объёме кода нет ни одного бага)). Приходится планомерно проверять корректность. Пожалуй я начинаю переходить именно к такому подходу: планомерно всё проверять, а не на финальном этапе вдруг выяснить, что «похоже, что-то работает не так как надо». Думаю, с опытом процесс будет всё системней, а как следствие данную систему можно оптимизировать и она будет протекать всё легче, всё менее затратней, всё приятней в конце концов.
Ещё хочется верить, что опыт приводит к уменьшению кол-ва ошибок, ну и повторное использование кода (читай, библиотеки) тоже.
Легко оставаться оптимистом когда всё хорошо, сложнее — когда всё похуже). Хотя нет — конечно же от человека зависит — кого-то заставляют шевелиться неудачи, кого-то воодушевляют его победы.
Смогли догадаться по эпиграфу, какая будет эмоциональная окраска поста?))
Я не особо доволен своими результатами, хотел, конечно, большего. Но если посмотреть объективно, отодвинуть загораживающие обзор недостижения крупных целей или значимых результатов, то в принципе всё вполне позитивно. Местами будет достаточно абстрактно написано — сорри, это мой стиль)).
1. Результаты торговли за год (любой), аккурат в районе нуля. Ну ± 1%, ну скорее минус конечно)). А вообще я так и не знаю, как считать %% дохода в случае если ты периодически довносил/довыносил)) — по-моему в любом подходе к вычислению % в этом случае будет достаточно высокий процент условностей — если я не прав — напишите в комментариях).
Комментарии: как торговал — особо никак — одну бумажку мучил весь год, инвестиционно, пытаясь перезаходить частью пакета по лучшей цене. Идея долгосрочная, то что в нулях остался на таком небольшом горизонте — можно сказать, везение.
Одна из формул). Ну и этот грааль не окончателен, скорее размышления на тему.
Составляющие успеха следующие:
— Иметь набор зарабатывающих алгоритмов.
— Иметь систему, увязывающую эти алгоритмы в единое целое таким образом, чтобы эффективность связки была оптимальной для данного набора.
— Иметь понимание, когда и почему зарабатывают эти стратегии.
— Уметь понимать, когда и почему зарабатывают любые стратегии.
— Уметь генерировать работающие стратегии.
Это если говорить о долгосрочных горизонтах, с более короткими горизонтами можно без части этих компонентов оставаться на плаву, но обвалиться когда сменится фаза рынка, или перестанут работать работавшие раньше алгоритмы и т.д.
Не судите строго. Не, ну а чё, не каждый же раз гениальные посты выдавать)))
Вселенная откликается на мой зов) – плотнее врастаю в алгоритмическую торговлю и алгоритмическую среду общения, всего становится больше и в целом много), а учитывая, что я пока не оторвался от островка безопасности в виде не связанной с трейдингом наёмной работы, это может представлять некоторые сложности)). Один из секторов этого «много» — самописный тестер. Сейчас буду проводить тесты скорости, сравнивать в Велс-лабом. Что-то мне подсказывает, что на длинной дистанции (большое кол-во баров) Велс вообще сломается, не говоря о скорости)). А скорость, действительно, любопытно замерить. Если она будет не хуже – это для меня уже победа, если лучше – вообще супер. Хотя я знаком с выражением «архитектура приложения» поскольку-постольку, но тем не менее постарался архитектурно заложить большой потенциал)). Когда всё заработало (написанная удобным образом простенькая стратегия посчиталась и выдался результат прогона) – испытал неизведанное доселе и довольно приятное ощущение от того, что ты точно ЗНАЕШЬ, как работает твое приложение и ты можешь в рамках архитектуры править всё что хочешь, нет табу, нет нельзя, нет ограничений, есть только приоритеты, ну и конечно, как сказал выше – архитектура. Одна из целей написания своего тестера – желание реализовать свои идеи в процесс оптимизации, которые невозможны/не удобные в случае существующего на рынке софта. В общем, посмотрим.