Блог им. tashik

Есть ли ранняя возможность определить, что стратегия перестает работать?

Доброго дня всем добрым людям!

Имею алгоритм, который у меня приличное время был основным торговым, который я в первый год своей торговли написала и развивала, меняла, совершенствовала. В 2017 г мы пробуксовали почти на месте, в 2018 году результат был очень хорошим, начало 2019 тоже довольно неплохим было — и снова начался некоторый «затуп».

Эквити до 1 сентября (белая — это эквити, синяя — эквити длинных позиций, желтая — эквити коротких позиций)

Есть ли ранняя возможность определить, что стратегия перестает работать?

Просадка (сверху в рублях, снизу — в процентах от депозита)

Есть ли ранняя возможность определить, что стратегия перестает работать?

Вопрос: есть ли какая-то возможность определить, что стратегия перестает работать пораньше, чем будет к примеру превышена текущая максимальная просадка в процентах? По каким критериям вы решаете исключать стратегию из портфеля как отжившую свое? Параметры оптимизируются регулярно, раз в квартал. Уже как-то не помогает, из графика наверное заметно.
★8
Когда выкидывать страту, решает разраб. Либо превышение заданной просадки, либо не обновление максимума эквити заданное время (например 3 месяца).
avatar

Karim

Karim, спасибо! Про обновление максимума за заданный период — хороший критерий
avatar

tashik

1. Только по факту плохого поведения.
2. Желательно иметь портфель разных систем на разных активах, тогда выход одной системы даже в большой минус не страшен. 
3. Регулярная оптимизация, имхо, опасный подход. Я беру в работу системы, которые ПРИЕМЛЕМЫ на большом интервале и УСТОЙЧИВЫ к изменению параметров.
avatar

SergeyJu

SergeyJu, спасибо! Да, у нее с устойчивостью более-менее неплохо, но если диапазон параметров за квартал сильно сдвигается — я вношу изменения. Разные системы есть, это просто самая старенькая, вот пытаюсь решить, отжила или пусть попрыгает. Дам, наверное, еще времени на перехай эквити до конца года. Если нет — попрощаюсь.
avatar

tashik

tashik, сдвиг диапазона параметров — это и есть неустойчивость. Хорошо, когда любая система с параметрами из некоторой немалой области будет «позитивной». Не супер-пупер, но более-менее пригодной в торговле на портфеле. 
avatar

SergeyJu

SergeyJu, ну она в минус не уходит, просто максимальный профит перемещается с текущих используемых по диапазону
avatar

tashik

tashik, а Вы пробовали проверить, насколько предсказуем этот максимум, то есть вчерашний максимум будет ли лучшим прогнозом завтрашнего (интервал прогноза  день — месяц квартал-год, неважно). Я думаю, Вы удивитесь. 
avatar

SergeyJu

SergeyJu, не пробовала, с прогнозированием вообще есть сложности. В рамках стратегии анализируется смена краткосрочной тенденции в рамках временного ряда, внезапная обратная смена — разворачивает позицию, слом волнового развития тендеции по формальным признакам — тупо Чарльз Доу — тейк.
avatar

tashik

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

kachanov

Универсального способа нет :)

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

Из исторической серии дневных доходностей можно сгенерировать синтетические ряды (режем реальный ряд на блоки размера K; выбираем с замещением блоки, чтобы образовать ряд нужной длины) из которых можно будет прикинуть распределение просадок на нужный вам горизонт (длина бэктеста + длина реальной торговли) и периодов времени, на которых стратегия должна показывать положительную доходность с достаточно большой вероятностью.

Выбор размера блока — сложный вопрос :) Обычно ниже какого-то размера блока оценка максимальной просадки начинает резко возрастать; возможно ваша стратегия эксплуатирует зависимости в ценовом ряде именно на таком горизонте.

Также можете попробовать методы теории наискорейшего обнаружения:
https://ru.wikipedia.org/wiki/CUSUM-тест
https://en.wikipedia.org/wiki/Sequential_probability_ratio_test
Теоретически, это лучшее, что можно сделать.
avatar

Eugene Logunov

Eugene Logunov, благодарю! пошла читать.
avatar

tashik

tashik, только учтите, что мы имеем дело с существенно нестационарным объектом. Поэтому методы моделирования просадок типа монтекарло или скорейшего обнаружения разладки плохо себя ведут в нашем случае. Хочется найти что-то позаковыристее…
avatar

SergeyJu

SergeyJu, Ситуацию с нестационарностью частично можно исправить — выровнять ряд по волатильности.

Можно ещё посмотреть на что-то типа HMM, но лично у меня со всякими regime switching моделями ничего интересного ни разу не получалось.
avatar

Eugene Logunov

Eugene Logunov, многие трендследящие системы хорошо зарабатывают только при воле выше средней. Ряд-то мы можем частично выровнять, но с водой как бы не выплеснуть ребенка. 
avatar

SergeyJu

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

Eugene Logunov

Eugene Logunov, универсальные способы  а-ля Дмитрий Новиков? :)
avatar

SergeyJu

Eugene Logunov, это если считать что нестационарности в расширении волатильность. А ломается скорее от нестационарности автокорреляций (в широком смысле т.е. нелинейных в т.ч )
avatar

ivanovr

Eugene Logunov, бутстрап работает для стационарных рядов. Куски из ближайшего прошлого нельзя смешивать с дальным т.к. свойства ряда изменились. Бутстрап можно использовать для моделирования статистического распределения просадки, но опять же если верна гипотеза стационарности
avatar

ivanovr

В 2017 г мы пробуксовали почти на месте, в 2018 году результат был очень хорошим, начало 2019 тоже довольно неплохим было — и снова начался некоторый «затуп».

Всё прекрасно, так и должно быть.

есть ли какая-то возможность определить, что стратегия перестает работать пораньше, чем будет к примеру превышена текущая максимальная просадка в процентах?

Это плохой критерий. Как верно выше заметил Evgene Logunov — максимальная просадка бесконечна в пределе времени, нарастает вместе с ним, но, к счастью с некоторого предела делает это очень медленно.

По прямым признакам на эквити — нет. По косвенным признакам — сколько угодно.

Я бы на вашем месте радовался жизни.

avatar

Kot_Begemot

Kot_Begemot, спасибо!
avatar

tashik

Ух! люблю такие посты!
avatar

Тимофей Мартынов

Это самый подходящий момент, чтобы выставить стратегию на продажу! :)
avatar

WaveCatcher

любая стратегия работает!!! тока профи знает как именно 
avatar

SEREGA

Легко. Когда разработчик видит что парадигма на которой он основывал условия входа/выхода более не актуальна. А исключать стратегию из-за просадок или какого-то нитакого роста… ну это же бред
avatar

Трейдер biopsyhose

Просто задайте себе вопрос :«Готова ли я терпеть эту стратегию, со всеми её просадками, что бы  в будущем выйти из просадки и ещё заработать на ней» Если ответ будет-Да, то тогда двигайтесь дальше совершенствуйте стратегию. Если ответ-Нет, бросайте стратегию, не тратьте свое время зря. 
Фактически, это вопрос о возможности определить тренд в сильнозашумленной серии наблюдений нестационарной случайной величины типа  I(1).


=) В такой формулировке, мне кажется, ответ очевиден.
avatar

ch5oh

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

tashik

Нет такой возможности. Выход только по плановой просадке (2-3 макс историч). У вас похоже чисто психологические моменты. Чтобы быть морально готовым, надо смотреть результаты бэк теста.  Очень хорошо смотреть симулятор с данными с бэк теста. При нескольких десятков тысяч прогонов модели понимаешь, с чем можешь столкнуться.

Какая у вашей стратегии вероятн выигрыша и отношение выигрыша к проигрышу?
avatar

Pin-T-Set

Вообще у так называемых трейдеров странный подход к стратегиям. Ваше дело по сути заработать на стратегии 100% прежде чем влетите на просадку 30% (ну на максимальную короч) и положив в свой бездонный кОрман (в
эту черную дыру, сравнимую только с черной дырой под пассажирским сиденьем) 70% — О Т В А Л И Т Ь
avatar

Трейдер biopsyhose

Трейдер biopsyhose, про то, что нужно время от времени забирать и выводить профит — понятно, согласна.
avatar

tashik

tashik, да не. Вывод прибыли это функция — можно раз в квартал выводить можно раз в месяц, если она есть (или реинвестировать). А для стратегии в целом нужно назначить максимальную просадку и высянить среднюю хотяб лет за 10 истории. Среднюю умножить на 4 и понять свой депозит. Далее ждать когда стратегия достигнет средней просадки, здесь вкинуть в стратегию деньги и пусть торгует пока не упрется в максимальную просадку. Дальше вынимаете бабки и выкидываете эту стратегию нахер. Следующая!
Трейдер biopsyhose, поняла, спасибо
avatar

tashik

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

Мы мониторили сколько спреда мы отдаем в среднем по ордерам, и это был достаточно надежный показатель. Если спред начинал расти, то мы понимали, что нужно уменьшать объемы или искать новую ликвидность.

Если вы торгуете какой-то один ликвидный фьючерс, то этот подход вряд ли применим.
avatar

Michael

Michael, один ликвидный фьючерс — на индекс РТС, и поза не то чтобы космос, 50-55 лотов сейчас гоняет. За 3 года чуть больше 700 сделок, не очень часто. Проблема ликвидности не стоит, самая актуальная проблема — вовремя закрыться в профит, пересиживает слегка, но пока что бы я ни делала — лучшее — враг хорошего
avatar

tashik

tashik, любая стратегия со временем «вскрывается» конкурентами, и прибыль начинает вымываться. Это практически каждому известно. Чтобы оставаться на рыке конкурентым, нужно постоянно адаптироваться.

Что мы делали. У нас была одна основная стратегия (60-70%) портфеля, а остальной капитал все время крутился в новых стратегиях, которые мы запускали на тестовый период. Постоянно шел процесс поиска новых стратегий. Только так.
avatar

Michael

Первое, что следует предположить — никакой стратегии у нас нет, а есть переподогнанный под историю бектест и кратковременный положительный результат на реале, который вполне возможно стал плюсовым благодаря счастливым но случайным стечением обстоятельств.
Второе. Следует понять, есть ли у нас методика проверки стратегии на устойчивость к изменениям рыночных параметров (робастность)? Если методики нет, то всё плохо…
avatar

wrmngr

wrmngr, устойчивость на бэктесте проверяла изменение временных окон, на которых запускала. Наверное, другой методики у меня и нет. Что переподогнала — да, возможно.
avatar

tashik

tashik, к сожалению, этого недостаточно. Смею предположить, что вы в плену заблуждений относительно рынка
avatar

wrmngr

wrmngr, вполне возможно, поле неопределенности очень велико, а сделок было реальным 700 с небольшим. Наверняка впереди сюрпризы. Сегодняшний день, к примеру. Редкостно убыточный день (
avatar

tashik

wrmngr, а чего было бы по-вашему достаточно?
avatar

Kot_Begemot

Kot_Begemot, Для примитивного случая, когда на вход системы подается только один ценовой ряд достаточно провести контрольный тест на синтезированных рядах с заведомо разрушенными автокорреляционными связями
avatar

wrmngr

wrmngr, согласен. Только после того как вы почистите автокорреляцию, возникнет ещё одна проблема — отношение сигнал/шум, потому что при низких отношениях системы в основном убыточны (или претерпевают броуновское движение, то есть приводят к бесконечному риску).


avatar

Kot_Begemot

Kot_Begemot, не совсем понял откуда берется понятие сигнала, можно прекрасно строить и проверять гипотезы без привлечения этого
avatar

wrmngr

wrmngr, на чистом броуновском движении? 
avatar

Kot_Begemot

Kot_Begemot, кажется мы о разном, ну да ладно…
avatar

wrmngr

wrmngr, ума не приложу что вы подразумеваете под «уничтожение автокорреляционных связей» тогда и какой в нём вообще может быть смысл, если не генерация случайных сигналов.
avatar

Kot_Begemot

Kot_Begemot, нет, это не генерация случайных сигналов. При генерации синтетики нужно оставить все свойства исходного ряда кроме собственно автокорреляций
avatar

wrmngr

wrmngr, вы этого достигаете путём насильственных правок к ряду или методами типа бутстрэп (то есть перетасовкой ряда)?
avatar

Kot_Begemot

Kot_Begemot, бутстрэп логретурнов по определённым правилам
avatar

wrmngr

wrmngr, ясно. на релевантность скорее всего тестируете.
avatar

Kot_Begemot

Kot_Begemot, с бутстрепом у меня как-то не сложилось. 
avatar

SergeyJu

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



Получение «гладкой» границы методом композиции простых решений.

Зачем всё это нужно нам?.. Ума не приложу. Разве что с той целью, чтобы из тестовых выборок навыбирать плохих кусков и вдруг, неожиданно обнаружить, что если частоты условных трендов в будущем не будут совпадать с выборочными, то… мы обречены на провал. То есть такой тест репрезентативности выборки по отношению к нашему оверфитингу/ системе. 

Я вам обещал эту тему раскрыть как стационарность «кризисов» (которые совсем не кризисы) в 2008/2000. Раскрою.
avatar

Kot_Begemot

wrmngr, и как это можно сделать?
avatar

SergeyJu

SergeyJu, я ответил коту-бегемоту.
avatar

wrmngr

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

Michael

Michael, на тихом недобирает, над индикатором надо потрудиться, да.
avatar

tashik

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

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

Нужно анализировать результаты и понять первопричину.
avatar

Michael

Michael, огромное спасибо!
avatar

tashik

Есть еще более трудоемкий процесс анализа — запустить бектест стратегии на исторических данных (за последние пол-года) и сравнить с фактически отторгованным результатом — посмотреть где разница (а может разницы и нет). Чем фактическая торговля отличается от модели.
avatar

Michael

Michael, разница есть, в основном за счет некоторого проскальзывания на реале.
avatar

tashik

tashik, обратите внимание на динамику проскальзывание во времени. Если проскальзывание у вас растет — это плохой знак. Значит надо растягивать ордера во времени.
avatar

Michael

Michael, растет, поза увеличилась, стратегия реинвестирует все заработанные деньги. Про растягивание подумаю, спасибо!
avatar

tashik

Может, когда торговать ее, становится лично вам некомфортно?
avatar

Schurik

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

старый трейдер

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

А. Г.

А. Г., как первый шаг, взять один индюк, вычисленный с заглядыванием вперед на половину его окна расчета. И посмотреть зависимость доходности от этого индюка. Разбив область значений индюка на 2 зоны  порогом. Если найдется индикатор, который хорошо АПОСТЕРИОРИ объясняет результаты системы, Вы получите критерий, который позволит отличить развал системы от «не её условий». А.Г. взял несколько индикаторов и провел факторный анализ. Но, имхо, для начала следует быть проще.
avatar

SergeyJu

А. Г., вам не кажется, что это пустая и наивреднейшая трата времени?

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

Во вторых, вы предполагаете, что способны каким-то образом оценить качество вашей стратегии на сигналах.
avatar

Kot_Begemot

Kot_Begemot,  зачем мне «сигналы», если я группирую P&L по разным классам рынка? И сравнить прошлое выборочное распределение с выборочным распределением на отрезке, который не нравится за последний период в-общем, не слишком сложно, как по частоте встречаемости классов, так и по среднему значению P&L на классах. Проблема может быть только в корректности отбора классов. Например, классификации тренд-не тренд оказалось недостаточно, пришлось ещё вводить второй параметр — волатильность. 
avatar

А. Г.

А. Г., ваши «классы» и есть «сигналы».

Допустим, вы получили убыток на удачном для вас рынке. Как вы будете это интерпретировать?

Допустим, вы получили убыток на неудачном для вас рынке. Как вы будете это интерпретировать? 

Допустим даже, что вы ещё умеете качественно интерпретировать результаты вашей стратегии в случае полностью удачного и полностью неудачного рынка и получили убыток на неудачном для вас рынке. Как вы будете это интерпретировать?
avatar

Kot_Begemot

Kot_Begemot, статистика — наука о большом числе испытаний. Если у меня на сотне исходов среднее положительно, а потом на паре десятков, которые по моему мнению из той же выборки дали отрицательное среднее, то значит я был не прав в гипотезе аналогичности. Если я уверен в правильности классификации состояний рынка, то значит в моёй системе ошибка. А если среднее и там и там положительно, но бывшая сотня — это больше 50%  от всех состояний рынка, а нынешние 20 — это меньше 30%, то это значит с рынком что-то не так, а с системой все нормально.

Именно так я нашёл ошибку в одной из своих систем в 2008-м и именно поэтому оставил системы без изменений после 2011-го, пересмотрев только свое отношение к шортам, на которых можно было заработать в тот год и закончить его, пусть и в небольшом, но плюсе и к увеличенным плечам, несвоевременное включение которых и увеличило минус почти в 2 раза.
avatar

А. Г.

А. Г., 

статистика — наука о большом числе испытаний

Нет, это наука об обработке данных.

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

Это неверно.


А если среднее и там и там положительно, но бывшая сотня — это больше 50%  от всех состояний рынка, а нынешние 20 — это меньше 30%, то это значитс рынком что-то не так, а с системой все нормально.

Это  неверно.

Таким образом, ваш анализ базируется на двух неверных утверждениях о которых я написал ранее, но в обратном порядке:

1. Вы постулируете, что вам точно известно качество вашей стратегии на «хорошем» рынке.

2. Вы постулируете, что вам известна частота «хорошего» и «плохого» рынка.


пересмотрев только свое отношение к шортам

Ваше отношение к шортам: Long + Short/2 есть ни что иное как балансировка лонг и шорт позиции в предположении бестрендового рынка. Быть может, вы говорите о чём то другом, но сути это не меняет.
avatar

Kot_Begemot

Kot_Begemot, 

Что неверного в моей второй цитате? Критерий на различие средних непараметричен.
Что неверного в выводе из третьей цитаты, что изменился рынок? По тому же критерию.

1. Я постулирую, что на этих состояниях система имеет положительное МО.
2. Я постулирую, что частота одного и того же состояния в разные временные отрезки — разная.

Как торговать шорты — это вопрос рисков и не более того. 
avatar

А. Г.

А. Г.,

Критерий на различие средних непараметричен.

Не вижу применения этому критерию. И особенно не вижу применения этому критерию в рамках поставленной задачи.


 Я постулирую, что на этих состояниях система имеет положительное МО.

Если бы вы это постулировали, то вы бы это не проверяли критериями. И именно из-за того, что вы этого не постулируете, а проверяете критериями вы неизбежно совершаете ошибку (2 рода).

 Я постулирую, что частота одного и того же состояния в разные временные отрезки — разная.

Если бы вы это постулировали, то вам не потребовалось бы проводить свой анализ повезло/не повезло, так как не было бы предмета сравнения (эталона). Но поскольку вы постулируете ровно обратное — что вероятность одного и того же состояния во все отрезки времени одинакова — у вас появляется возможность оценивать отклонение частоты от вероятности.
avatar

Kot_Begemot

Kot_Begemot,  ну критерий на различие средних — это классика математической статистики. У Вас две выборки и Вам надо сделать выбрать из двух гипотез — это выборки из распределений с одинаковым средним или разным. Какая может быть ошибка 2-го рода, если мы проверяем простую гипотезу против сложной?

В данной задаче мы имеем в качестве двух выборок: 

— P&L системы на одном классе состояний рынка в разные временные периоды;
— количество «успехов» (в смысле появления состояния из класса) в разные временные периоды.

Почему мы не можем проверить гипотезу о совпадении средних в этих двух задачах непараметрической статистики? Зачем нам «эталон» в непараметрическом случае?

Ошибка первого рода конечно есть, ну так вопрос принятия или непринятия гипотезы о равенстве — это вопрос её априорного задания.

А то, что хорошая система должна иметь одинаковый средний (!) P&L на классах «близких» состояний рынка я именно постулирую. И первый  критерий равенства средних именно на проверку «слома» системы. Ну а второй просто для анализа текущего рынка, объяснения неудач хорошей системы и повод для поиска систем для диверсификация или фильтров, ограничивающих торговлю системы на классах состояний с отрицательным средним P&L. Я вообще далёк от мысли о стационарности ценовых рядов и существования «эталонов» частот встречаемости. Как и не верю в существование систем с положительным P&L на любых состояниях рынка. 
avatar

А. Г.

А. Г., не надо так уж жестко. Ваша классификация на состояния рынка не  делает его стационарным в пределах одного состояния. Поэтому даже в пределах одного состояния исходы могут и, я уверен, будут иметь более сложное распределение, чем описываемое в рамках константного МО и константного СКО. Тем не менее, получив свежую малую выборку, можно спросить, а принадлежит ли она ранее выделенной большой, или нет. И получить (непараметрическим методом) вероятностный ответ. Ваш подход — конструктивен, применим и вполне в духе методов матстатистики, если только не ограничиваться в ней параметриками а-ля гаусс.
Я действую также, только примитивнее.
avatar

SergeyJu

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

А что касается «малости», то пара десятков испытаний одного класса вполне достаточно для выводов с ошибкой первого рода 0,05. Конечно для более маленькой ошибки этого маловато. Понятно, что на новом временном отрезке мы можем и не набрать пары десятков состояний из одного класса, но это уже вопрос применимости конкретного критерия в конкретной ситуации.
avatar

А. Г.

SergeyJu,  а вообще раньше я действовал проще. Брал 21 дневные доходности системы на одном эмитенте (со сдвигом на 1 день), центрировал и нормировал по тем временным участкам, которые сравнивал и сравнивал распределения по Манну-Уитни. Если совпадают, значит система не испортилась, отличаются — снимаю с торгов и начинаю «копать» почему. 
avatar

А. Г.

А. Г., дисперсия суммы двух некоррелированных СВ меньше, чем сумма дисперсий его составных (бывает даже, что меньше дисперсии каждой в отдельности).

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

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

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

Это всё не работает, хотя должно, для систем в которых одна из составляющих априорно известна, например:

система должна иметь одинаковый средний (!) P&L на классах «близких» состояний рынка я именно постулирую.

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


Я вообще далёк от мысли о стационарности ценовых рядов и существования «эталонов» частот встречаемости.

Тогда ваше предложение и его конкретная реализация -


А если среднее и там и там положительно, но бывшая сотня — это больше 50%  от всех состояний рынка, а нынешние 20 — это меньше 30%, то это значитс рынком что-то не так, а с системой все нормально.


вообще не уместны.

avatar

Kot_Begemot

Kot_Begemot, предположим, система зарабатывает на трендах и теряет на их отсутствии. Я могу ЗАДНИМ ЧИСЛОМ на любом интервале определить КАКИМ ТО ОБРАЗОМ, был ли на нем тренд. В итоге результаты интервалов будут образовывать 2 набора чисел. И эти 2 набора будут иметь СУЩЕСТВЕННО РАЗНЫЕ статистики. Что Вам подтвердит любой непараметрический критерий однородности двух выборок. Или система зарабатывает не на трендах, а на чем-то ином. А дальше все очевидно, если просадка вне трендового участка — так ей тут на роду быть написано, если на трендовом участке, возможно, система перестала работать. 
avatar

SergeyJu

SergeyJu, если ваша система может «поломаться» только на трендах и не может «поломаться» на их отсутствии — то да, всё верно и я спорить даже бы не стал.

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

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

Kot_Begemot

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

SergeyJu

SergeyJu, для любой трендовой системы этим фактором должен выступать тренд. Соответственно, по тренду мы считаем по умолчанию всё норм, а рынок может «поломаться» впадая в пилы. Я бы так делал.

Но у вас с А.Г., вероятно, какие-то другие системы, что вы делаете всё наоборот и это для меня сегодня более чем загадка. При этом, когда вы строите фильтры — делаете верно (в смысле логика ясна), а в факторном анализе почему-то наоборот.

Может быть потому и делаете так, что строите фильтры. Тестируете фильтр, так сказать.
avatar

Kot_Begemot

Kot_Begemot, вовсе не очевидно, что таким фактором должен выступать тренд. 
А разница возникает естественным образом. Фильтры и системы — это про прогноз, а факторы в данном контексте — про объяснение постфактум. Да, и не надо в данном контексте про пни, деревья, бустинги и прочие бутсрепы. Пока ищем фичи, не более того. 
avatar

SergeyJu

Kot_Begemot,
дисперсия суммы двух некоррелированных СВ меньше, чем сумма дисперсий его составных (бывает даже, что меньше дисперсии каждой в отдельности).

Вообще то именно равна сумме дисперсий. Ведь дисперсия суммы двух СВ — это сумма дисперсией плюс удвоенная ковариация. А дисперсия суммы любого числа СВ равна сумме дисперсией плюс удвоенные попарные ковариации.
avatar

А. Г.

А. Г., 

Вообще то именно равна сумме дисперсий. Ведь дисперсия суммы двух СВ — это сумма дисперсией плюс удвоенная ковариация.

Да, я уже с портфелями тут...

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

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

Kot_Begemot

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

Но вообще-то мы начали с разделения P&L системы по классам состояний рынка. Какое это имеет отношение к линейным комбинациям СВ? 
avatar

А. Г.

А. Г., 

Какое это имеет отношение к линейным комбинациям СВ? 

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

В вашей задаче, говорю, имеет значение только частота срабатываний «сигнала выхода из строя» когда :

1. Ломается рынок
2. Ломается «система»
3. Ломается или то или то
4. Ломается  и то и то
5. Ломается и то и то, пусть по чуть-чуть, но так, что использовать систему уже не возможно.

Вы выбрали пункт 2 из 5 возможных.
Я бы выбрал пункт 5 или, быть может, пункт 1. 
Всё зависит от того что вы постулируете. Если не постулируете ничего, считая что рынок вам не известен и изменчив во времени, то единственно верное решение — пункт 5.




avatar

Kot_Begemot

Kot_Begemot, ну вообще то я  пп. 1 и 2 оцениваю, только не делаю из п. 1 «далеко идущих выводов».
avatar

А. Г.

Ну я бы визуально сказал, что здесь все окей пока. А что вы хотите понять по паре лет истории? Сделайте бэктест за 15 лет — я думаю, окажется, что все более чем в пределах нормы.
avatar

MadQuant

Метода нет, вы конкурируете с другими участниками в том числе и в правильности определения поломки стратегий.
Оставь надежду всяк сюда входящий ©
avatar

ivanovr

что-то мне подсказывает, что нет никакого алгоритма, а графики это просто бектест
avatar

Cristopher Robin

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

tashik

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

Cristopher Robin

Cristopher Robin, глобально, но я попробую. Алгоритм трендследящий, он, анализируя временной ряд, определяет начало краткосрочной тенденции, предварительно отсеивая по его мнению ложные сигналы. Войдя в позицию по направлению тенденции анализирует волновое развитие движения тупо по Ч.Доу (повышающиеся минимумы и максимумы, понижающиеся максимумы и минимумы), как только поломали трендообразующий экстермум — скидывает. Есть встроенная защита профита на случай «сопель». Реверсивный. Все сделки внутри дня в основную сессию. На вечерке только кроются позиции, если остались. Доходность базировалась на том, что соотношение стопов к тейкам было хорошее количественно (63% тейки), в разное время по разному, но в хорошее — тейки получались в среднем примерно как стопы по сайзу. Алогоритм не высокочастотный. За три года 714 сделок. Где-то с конца февраля стал ухудшаться средний профит на сделку.
avatar

tashik

Для меня сама постановка вопроса не совсем понятна.
Почему ваш вопрос ставиться так:
По каким критериям вы решаете исключать стратегию из портфеля как отжившую свое?
В моем понимании, этот вопрос должен выглядеть следующим образом:
" По каким критериям вы определяете размер доли депозита, используемый данной стратегией".
Подумайте над этим.
Насколько я понимаю это программа OsEngine. Вы реально через нее торгуете несколько лет? Если да то через какой коннектор? Или это просто тесты?
avatar

Grin

Grin, алгоритм сначала был QLua, потом нашелся OsEngine, и я переписала алгоритм под OsEngine, на шарпах я свободнее себя чувствую, чем на Lua, плюс бэктесты с Gui и автозагрузка данных — в общем, не пожалела ни разу пока что. Вообще первая моя версия OsEngine была 1.0.0.6 коннектор QuikDDE. В этом году перешла на TransaqConnector. Контрибучу в реп OsEngine-a фиксы косяков время от времени. Проблемы у Оси в основном на мой глаз с тестером недостаточно правдоподобным, то есть он там умный и если тиковые тесты — он сделки исполняет не по цене ордеров, а по тем тикам, которые в истории — и разнос туда-сюда приличный. Я у себя (в своей версии тестера Оси) эту функциональность выкрутила и исполняю заявки по цене ордера с учетом проскальзывания. А в торговом движке на реале мне все нравится. Правда ни одна более высокочастотная идея, которую я пробовала делать через Осю, не пошла в реал пока что. Для этого алгоритма разнос 20-30п не особо катастрофичен.
avatar

tashik

tashik, 
Тоже кажется что TransaqConnector, понадежнее будет чем QuikLua, QuikDDE пока не пробовал.
avatar

Grin

Grin, его главный плюс — не надо софтину вторую держать включенной. У меня сейчас виртуалочка послабее, чем был комп, весь ресурс на учете. При квике — в любом варианте — квик должен быть включен.
avatar

tashik

Бутсрэп лугретенов это что вообще значит?)
Можно простым языком? Даже больше лугретен интересно.
avatar

Dr. Sombre


Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.

Залогиниться

Зарегистрироваться
....все тэги
UPDONW