Приг-гадиц-ца...
.......................................................................
Оригинал взят у
mehanizator в post
Мысль первая и главная – кросс-валидация. Мысль эта не успела войти в мою книжку, что конечно очень большой косяк, там вместо нее про ограничение значимых параметров и всякие другие мутные соображения в смысле «не надо сильно оптимизировать, ребята». Ну ладно, теперь уже поздно.
Излагаю подробнее.
То эквити, которое вам выдал тестер – оно ничего не значит, можете показать его своим друзьям по смартлабу, только денег не ставьте на него, если оно не протестировно на out-of-sample участке, оно на большее не годится. Делается это так: все данные бьются на N частей, потом берется i-я часть как тестовый (out-of-sample) участок, а все остальные как тренировочный (train) участок. Параметры системы строятся на тренировочном участке, а потом с этими параметрами идет и строим эквити на тестовом участке. И так N раз. Потом из этих N кусков эквити склеиваем одну, смотрим на нее и много думаем. В общем, кому надо подробнее, в гугл с запросом «кросс-валидация».
Что, геморно? Ну тогда я скажу вам, что происходит, когда вы переподгоняете систему. Если построить график зависимости реальной эффективности системы в торгах от степени переподгонки, там сначала будет рост, потом где-то оптимум, а дальше, чем сильнее вы притираетесь к прошлым данным, тем хуже предсказательная сила на будущих данных. Это вообще не очень очевидный момент, можно было бы ожидать там какого-то плато по эффективности, ан нет – все идет в ноль. Потеря обобщающей способности.
В принципе можно как-то обходиться с искусственными ограничениями на подгонку типа количества параметров, но есть риск не угадать с оптимумом. Это все вслепую. Так что кросс-валидация в любом случае это ultimate solution.
Ладно, думаю, этот момент для большинства и так был довольно очевиден. Дальше будет интереснее.
Получили мы эквити, как оценивать? Есть всякие показатели – отношение доходности к просадке, коэффициент Шарпа и пр. Ну так вот – если показатель уделяет сильное внимание критическим состояниям в прошлом (максимальная просадка, к примеру), или если туда входят квадраты изменений цены (как в Шарпе), им нельзя пользоваться. Он неробастен. В мусор его.
Вообще рекомендую всякие критические случаи, которые случаются раз в несколько лет, из данных выкинуть, и так тестировать. Иначе вы получите систему, которая оптимизирована вокруг какой-нибудь жопени, которая случилась в 2011 году, или в 2008 году, или при египетских фараонах. Вы не можете пытаться предсказать жопень, она каждый раз разная, нельзя ставить систему в зависимость от редких данных, которые может больше никогда и не повторятся. Когда такое случается, будет хаос, кровь и кишки по стенам, надо в этот момент вообще закрывать лавочку и в отпуск месяца на 2-3. Вы зарабатываете тогда, когда рынок стабилен и предсказуем, а не когда волатильность зашкаливает - тогда вы играете в казино.
Когда на рынке жопень, в данных косяками идут тяжелые хвосты. Если мы используем для оптимизации или оценки некий параметр, куда эти хвосты входят квадратично, мы в итоге получим систему оптимизированную по жопеням. Надо оно вам? Вам это не надо - я вам точно говорю. Такая система будет не зарабатывать вам на хлеб с маслом, а ждать очередного кризиса, чтобы дождавшись, увидеть, что все не так, как ожидалось.
Вы спросите – как же так, надо же подстраховаться и от таких вещей, они же повторяются в той или иной форме. Я вам отвечу – страховкой должен заниматься ваш мани менеджмент. Эти риски должна ловить система определения размера позиции. Правильная система у меня в книжке описана, в четвертой главе (вот тут книжка бесплатно). В двух словах – чем глубже просадка, тем меньше размер позиции, асимптотически к приближению максимально допустимой просадки. Вот эта система мани-менеджмента и должна ловить ваши риски и отрабатывать ваши просадки. А торговая система не должна этим заниматься.
Так и что делать, чтобы уменьшить влияние тяжелых хвостов? Ну, я вот в ранговое пространство в итоге перешел, а что можно посоветовать тем, кто на Метастоке и таких словов не знает? Можно пройтись вручную по данным и выкинуть особо расколбасные участки данных, как я уже предложил выше. Можно порыться в коэффициентах оценки эффективности системы и подобрать что-нибудь опирающееся на ранговые оценки или на качественные оценки, типа там отношение прибыльных баров к убыточным или что-то в этом духе.
Это пока все, что я хотел сказать. Всем удачи.
.......................................................................
Оригинал взят у
Скажу пару мыслей для системных трейдеров, ищущих граали пытая тестеры всяких софтин типа Метастока. Про то, как на самом деле надо оценивать эффективность полученных граалей.
Мысль первая и главная – кросс-валидация. Мысль эта не успела войти в мою книжку, что конечно очень большой косяк, там вместо нее про ограничение значимых параметров и всякие другие мутные соображения в смысле «не надо сильно оптимизировать, ребята». Ну ладно, теперь уже поздно.
Излагаю подробнее.
То эквити, которое вам выдал тестер – оно ничего не значит, можете показать его своим друзьям по смартлабу, только денег не ставьте на него, если оно не протестировно на out-of-sample участке, оно на большее не годится. Делается это так: все данные бьются на N частей, потом берется i-я часть как тестовый (out-of-sample) участок, а все остальные как тренировочный (train) участок. Параметры системы строятся на тренировочном участке, а потом с этими параметрами идет и строим эквити на тестовом участке. И так N раз. Потом из этих N кусков эквити склеиваем одну, смотрим на нее и много думаем. В общем, кому надо подробнее, в гугл с запросом «кросс-валидация».
Что, геморно? Ну тогда я скажу вам, что происходит, когда вы переподгоняете систему. Если построить график зависимости реальной эффективности системы в торгах от степени переподгонки, там сначала будет рост, потом где-то оптимум, а дальше, чем сильнее вы притираетесь к прошлым данным, тем хуже предсказательная сила на будущих данных. Это вообще не очень очевидный момент, можно было бы ожидать там какого-то плато по эффективности, ан нет – все идет в ноль. Потеря обобщающей способности.
В принципе можно как-то обходиться с искусственными ограничениями на подгонку типа количества параметров, но есть риск не угадать с оптимумом. Это все вслепую. Так что кросс-валидация в любом случае это ultimate solution.
Ладно, думаю, этот момент для большинства и так был довольно очевиден. Дальше будет интереснее.
Получили мы эквити, как оценивать? Есть всякие показатели – отношение доходности к просадке, коэффициент Шарпа и пр. Ну так вот – если показатель уделяет сильное внимание критическим состояниям в прошлом (максимальная просадка, к примеру), или если туда входят квадраты изменений цены (как в Шарпе), им нельзя пользоваться. Он неробастен. В мусор его.
Вообще рекомендую всякие критические случаи, которые случаются раз в несколько лет, из данных выкинуть, и так тестировать. Иначе вы получите систему, которая оптимизирована вокруг какой-нибудь жопени, которая случилась в 2011 году, или в 2008 году, или при египетских фараонах. Вы не можете пытаться предсказать жопень, она каждый раз разная, нельзя ставить систему в зависимость от редких данных, которые может больше никогда и не повторятся. Когда такое случается, будет хаос, кровь и кишки по стенам, надо в этот момент вообще закрывать лавочку и в отпуск месяца на 2-3. Вы зарабатываете тогда, когда рынок стабилен и предсказуем, а не когда волатильность зашкаливает - тогда вы играете в казино.
Когда на рынке жопень, в данных косяками идут тяжелые хвосты. Если мы используем для оптимизации или оценки некий параметр, куда эти хвосты входят квадратично, мы в итоге получим систему оптимизированную по жопеням. Надо оно вам? Вам это не надо - я вам точно говорю. Такая система будет не зарабатывать вам на хлеб с маслом, а ждать очередного кризиса, чтобы дождавшись, увидеть, что все не так, как ожидалось.
Вы спросите – как же так, надо же подстраховаться и от таких вещей, они же повторяются в той или иной форме. Я вам отвечу – страховкой должен заниматься ваш мани менеджмент. Эти риски должна ловить система определения размера позиции. Правильная система у меня в книжке описана, в четвертой главе (вот тут книжка бесплатно). В двух словах – чем глубже просадка, тем меньше размер позиции, асимптотически к приближению максимально допустимой просадки. Вот эта система мани-менеджмента и должна ловить ваши риски и отрабатывать ваши просадки. А торговая система не должна этим заниматься.
Так и что делать, чтобы уменьшить влияние тяжелых хвостов? Ну, я вот в ранговое пространство в итоге перешел, а что можно посоветовать тем, кто на Метастоке и таких словов не знает? Можно пройтись вручную по данным и выкинуть особо расколбасные участки данных, как я уже предложил выше. Можно порыться в коэффициентах оценки эффективности системы и подобрать что-нибудь опирающееся на ранговые оценки или на качественные оценки, типа там отношение прибыльных баров к убыточным или что-то в этом духе.
Это пока все, что я хотел сказать. Всем удачи.