Блог им. Replikant_mih |Кастомные индексы

Делаю библиотеку (назовём это так) для построения кастомных индексов. Ну типа есть n акций — собираем из них индекс. Никаких излишних заморачиваний, никаких переусложнений — скорее всего задаёшь набор тикеров, на выходе таймсерия индекса как median от изменений компонентов, что-то такое. Без взвешиваний. Медиана защитит от выбросов. Целевое применение — американские акции. По каким критериям буду собирать индексы — самое простое — отрасль сектор, дальше можно по уровню капитализации, опять таки не хочу заморачиваться — цена * volume как мера капитализации. Можно начать с этого можно на пересечениях признаков собирать индексы механизм будет такой, что вот тикеры, вот признаки тикеров, собираешь по каким хочешь критериям набор тикеров, подаешь на вход и либа строит индекс. Единственное ограничение — размер выборки тикеров после фильтрации по критериям. Ну типа из 3-х инструментов индекс, вероятно так себе, а может и полезен — надо смотреть.

Следующий уровень «абстракции» — что делать с индексами. Смотреть как на самостоятельные штуки, смотреть как на «факторы», на которые распадается конкретный тикер. Спреды, корреляции.



( Читать дальше )

Блог им. Replikant_mih |Архетипы алготрейдеров.

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

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

И да, все персонажи вымышлены, все совпадения случайны))).

Архетипы алготрейдеров:

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

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



( Читать дальше )

Блог им. Replikant_mih |Инъекция ООП в стратегию. Повышаем уровень абстракции в стратегиях.

Немного порассуждаю про уровень абстракции в стратегиях и про ООП как инструмент для этого.

 

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

 

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

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

Что я имею в виду, зачем это надо, при чем здесь ООП.



( Читать дальше )

Блог им. Replikant_mih |Алго-извращения.

С недавних пор в моем софте появился класс, отражающий такую сущность как «гипотеза». А как ООП (или без ООП) алго-извращаешься ты?)

Блог им. Replikant_mih |Мета-системный трейдинг.

Идея давно витает в голове. В принципе ничего нового: системный трейдинг должен быть системен во всем — не только инкапсулироваться в отдельных стратегиях (торговых системах) — системно входить, системно выходить, но и работа со стратегиями так же должна быть системной — как верифицировать стратегию — оценивать на доходность, робастность, «достойность» для включения в портфель; системны должны быть критерии выключения стратегий, алгоритм распределения денег и рисков между стратегиями и прочее и прочее. Это ладно — в целом необходимость покрытия системным подходом всех этих аспектов (думаю, многие ещё не упомянул) плавает на поверхности.


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



( Читать дальше )

Блог им. Replikant_mih |Делаю рисовалку графиков.

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

находясь на графике некоторого интервала, выделяешь участок графика в пределах отображаемой области, выделенный участок перерисовывается в новом таймфрейме на ширину всей отображаемой области, таймфрейм выбирается автоматически исходя из относительного размера выбранной области. Другими словами проваливаешься на нужный уровень детализации. Видишь, например, свечной паттерн на дневках, херакс — выделил его и провалился в 15-минутки и видишь, как оно внутри выглядит. Конечно же это все можно стандартными инструментами делать, но только представьте какое количество телодвижений и «приятных» минут нужно затратить чтобы сделать это стандартными средствами и как приятно это будет когда ты четко выбираешь точку начала и конца удобными средствами, а таймфрейм подбирается автоматически. Сказка же.  

Блог им. Replikant_mih |Единый код стратегии для бэктестинга и торговли, конкретный вариант реализации. Подвох?

Всем привет).

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

Собственно: богатый арсенал языков программирования, а в частности C# — в т.ч. наследование и прочее, позволяют реализовать торгующий модуль какой угодно архитектуры, структуры, с нужными названиями классов, полей и методов. Посему, предположительно, можно написать такой проторговщик, который будет принимать код стратегий из Wealth-Lab как родной, без необходимости его менять, подгонять, править, дебажить, искать ошибки переноса и прочее. Все что я написал после слов «без необходимости» — как бы известные плюсы использования одного кода для тестов и торговли (наверняка, не все плюсы даже перечислил). Т.е. тут один раз качественно убеждаемся, что код интерпретируется полностью аналогично и всё — дальше Ctrl + C, Ctrl + V.

Или если можешь написать такой проторговщик, то проще и Велс свой написать и не иметь мозг?))

Что думаете? :)

UPD.: как это часто бывает, комментарии достаточно волатильно отходят от непосредственно затрагиваемого вопроса)), но все равно есть интересные мысли.

 


Блог им. Replikant_mih |Ненавижу дебажить код.

Ненавижу дебажить код.

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

Больше меня напрягает искать баги когда нет формальных свидетельств их наличия. Код компилируется, трейды совершаются, но ты, блин, очень не уверен, что в таком объёме кода нет ни одного бага)). Приходится планомерно проверять корректность. Пожалуй я начинаю переходить именно к такому подходу: планомерно всё проверять, а не на финальном этапе вдруг выяснить, что «похоже, что-то работает не так как надо». Думаю, с опытом процесс будет всё системней, а как следствие данную систему можно оптимизировать и она будет протекать всё легче, всё менее затратней, всё приятней в конце концов. 

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


Блог им. Replikant_mih |Итоги 2017 года.

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

Смогли догадаться по эпиграфу, какая будет эмоциональная окраска поста?))

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

 1. Результаты торговли за год (любой), аккурат в районе нуля. Ну ± 1%, ну скорее минус конечно)). А вообще я так и не знаю, как считать %% дохода в случае если ты периодически довносил/довыносил)) — по-моему в любом подходе к вычислению % в этом случае будет достаточно высокий процент условностей — если я не прав — напишите в комментариях).

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



( Читать дальше )

Блог им. Replikant_mih |Формула успеха в алгоритмической торговле.

Одна из формул). Ну и этот грааль не окончателен, скорее размышления на тему.

 

Составляющие успеха следующие:

— Иметь набор зарабатывающих алгоритмов.

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

— Иметь понимание, когда и почему зарабатывают эти стратегии.

— Уметь понимать, когда и почему зарабатывают любые стратегии.

— Уметь генерировать работающие стратегии.

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

Не судите строго. Не, ну а чё, не каждый же раз гениальные посты выдавать)))


....все тэги
UPDONW
Новый дизайн