Блог им. frontrunner

оптимизация робота.

всем привет.

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

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

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

спасибо)
★2
69 комментариев
1 тесть без комиссов и проскальзываний… потом просто вычтешь из итогов...
2 80% всех оптимизаций должны быть профитны
3 1-2 параметра оптимизации
4 скорее всего у тя изначально ничо не работает… выложи эквити и таблицу итогов
avatar
ves2010, ну оптимизации-то все вполне профитны. я просто пытаюсь понять насколько это соответствует действительности.

т.е. если 1-2 параметра оптимизации, как быть если их должно быть больше? как минимум трейлинг стоп в одну сторону настроить это уже 3 параметра. в обе стороны — 6. их всегда оптимизировал последними и по отдельности.

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






лично мне тут не очень нравятся моменты, где эквити явно стоит на месте по несколько месяцев. что с этим можно сделать?
avatar
frontrunner, ничего. рынок стоял на месте радуйтесь что не слился в боковике.
avatar
frontrunner, Для этого и надо 5-10 ботов пот ому что многие
могут месяцами в 0 стоять.
avatar
Twilight_reg73, насколько вообще можно верить тестам на си с учетом того, как сильно менялось его поведение с 2014 года?
avatar
frontrunner, это си… мало сделок для статистики… ну и психологически торговать такое нереально… боковик в 3 года…
дам совет… если мелкий счет иди торговать ботом 2-3 эшелон… но тока в лонг
avatar
ves2010, счет мелкий) на споте даже с плечом мне кажется выхлоп меньше, чем на фьючах.
сколько должно быть сделок, чтобы достаточно репрезентативная выборка получилась?
avatar
frontrunner,
1 1000 сделок нижняя граница… 3000 хорошо… 10000 отлично
2 про плечи не думай
3 кстати у тя ошибка… тесть на постоянной сумме а не на 1ом контракте
avatar
ves2010, 
3000 сделок — это явно не часовик, позволю себе заметить, это хфт какое-то?
250 раб дней в год, по часовику — 150-250 сделок.
3000 — это 10!!! лет.
Можно конечно 5 минутный график взять — но реально, если 400 — 500 сделок в год — значит по 30мин — часовику торгуем.
3000 -  сколько же в день????
Не так ли?
avatar
vladimir doigt, вот в этом то и вся проблема… что достоверной статистики нет… и навряд ли будет… однако 100-200 сделок за 6 лет маловато крайне

я делаю тесты от 2000г...
 
avatar
ves2010, c 2010 года же рынок сильно поменялся. одна и та же система не будет себя одинаково показывать на всем промежутке в 16 лет
avatar
frontrunner, рынок сущностно не меняется. Система неочень, значит :)
avatar
Adept, волатильность в 5 и 50 рублей — это называется не меняется?
avatar
frontrunner, выражай движения в процентах от last, че как нуб)
avatar
Adept, ну даже так 4 года боковика и направленное движение — большая разница. и стратегия работы должна меняться)
avatar
frontrunner, чисто номинально сделок достаточно, нужно контролировать равномерность распределения результатов, проанализировать сделки с максимальным профитом на предмет ошибок.

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

в какой момент оптимизация превращается в подгонку?
Когда перестают контролироваться хи-квадрат, p-values и прочие статистические ништяки, позволяющие отличить одно от другого :)
avatar
Quant-Invest, спасибо. а что подразумевается под степенью свободы? про хи-квадрта и прочее почитаю отдельно, понятия на слуху, но глубокого понимания, увы, пока нет
avatar
frontrunner, для понимая рекомендую читать критику этих самых p-values :)
Под степенями свободы понимается
en.wikipedia.org/wiki/Degrees_of_freedom_%28statistics%29
а на практике — важна вероятность получения результата случайным образом.
Больше параметров — легче подогнать систему под кривую данных без всякой основы. Это не гут.
avatar
Quant-Invest, я почитаю, спасибо большое. может есть какая-нибудь специальная литература по статистике именно касательно роботов? или можно просто брать хороший учебник по статистике?

по поводу случайных результатов — я систему монтекарлил. получилось в целом неплохо, без просадок, но бывали варианты с довольно продолжительным боковиком
avatar
frontrunner, литература есть, но стоит ли с нее начинать, если не прочитаны учебники? Важно ж не столько знать стат.инструмент, как границы его применения.
Монте-карло… в подавляещем большинстве случаев применяется неверно :)
avatar
Quant-Invest, а с каких учебников начинать?
ну монте-карло у меня конечно очень условное было. просто взял значения доходности всех сделок и перемешивал их в случайном порядке, при этом смотрел график получившейся эквити. просмотрел пару сотен вариантов 
avatar
frontrunner, 
E.T. Yanes — Probability theory -2003, в части:
9.12 Comparison of psi and chi-squared
на русском можно начать с
Вентцель Е.С., Овчаров Л.А. — Прикладные задачи теории вероятностей
Балдин К.В., Башлыков В.Н., Рукосуев А.В. — Теория вероятностей и математическая статистика — 2010.
avatar
Quant-Invest, спасибо большое, почитаю обязательно
avatar
frontrunner, тогда делай так… поменяй вход с выходом и запусти оптимизатор… если будут годные варианты для торговли то у тя пероптимизация
avatar
ves2010, с мелким счетом такое количество сделок — колоссально дорого по комиссиям по моему. лонги с шортами менял местами — получилась шляпа полная
avatar
frontrunner, все решает средняя сделка… для акций это 0.25% и выше...
и у тя бот отвратительно работает от шорта… т.е. в лонг номально… а для шорта пиши другого бота
avatar
ves2010, это связано с тем, что в 2014 начался сильный рост?
среднюю селку в % вроде как тслаб довольно криво считает. как и доходность и просадку в %. тут ходноность получилась 76 к рублей. тслаб пишет 252%. го на си -5 к. значит реально доходность (76-5)/5*100=1420% или я что то неправильно считаю?
avatar
frontrunner, причем тут го??? считается от стоимости а не от го… по го ты слился бы давно
avatar
frontrunner, 
и опять может стоять.
avatar
ну я же трачу только го а не полную стоимость активов в контракте. значит доходность надо считать на те деньги, которые я вкладываю. смысл фьючей же как раз в том что в него уже плечо зашито
avatar
frontrunner, 
ГО+вола го, иначе кол. вообще, это уже черезчур стремно, должен быть хороший запас, особенно если овернайт сделок и гепы.
avatar
vladimir doigt, насколько вообще го плавать может? где можно поподробнее об этом почитать?
avatar
frontrunner, на новогодние праздники ГО поднимают аж до 2х раз
avatar
vvkg, а есть какая то статистика го?
avatar
frontrunner, где взять сатистику даже и не знаю, остаётся только самому её брать из спецификации http://moex.com/ru/contract.aspx?code=Si-9.16 и самому же и вести такую статистику
avatar
vvkg, я вот тут нашел) 
moex.com/ru/forts/contractbaseresults.aspx
avatar
frontrunner, в 2008г ГО было больше чем стоимость БА например в гмк… в си 1к2
avatar
ves2010, а в чем смысл такого фьюча тогда?
avatar
frontrunner, тогда весь рынок летал на 40% в день… поэтому ГО было соответствующее
avatar
главный вопрос — это оптимизация. в какой момент оптимизация превращается в подгонку?
В самом начале превращается, ибо оптимизация = подгонка. Важно различать правильную и неправильную подгонку. Для этого надо понимать каждый раз, «что» вы подгоняете и под «что» подгоняете.
Очень полезное упражнение — глазами пробежаться по каждой исторической сделке и посмотреть, в каких ситуациях ваш робот зарабатывает, в каких теряет.
avatar
Sergey Pavlov, если честно, не очень понял чем это упражнение должно помочь. можно поподробнее немного?
avatar
frontrunner, это зависит от того, в какой помощи нуждаетесь:) Для этого надо понимать (логически или теоретически), какие слабые места есть у вашей торговой модели. Например, просмотр глазками позволит установить, что, скажем, более половины всего профита ваш робот получает за счет 10 очень жирных сделок в 14-м и 15- году. Например:) И может так окажется, что эти же 10 сделок можно было взять каким-нибудь моментумом, скользяшкой и т.д. А это значит, что ваш робот не зарабатывает, а лишь не портит очевидное там, где заработает любая трендовая модель. Ну вот это из самого простого.
avatar
Sergey Pavlov, я для этого маркетстатом пользуюсь. так ведь гораздо лучше, чем глазами каждую сделку ковырять
avatar
ПРАВИЛЬНО сказал товаристч Павлов — фазы рынка и сезонность накладывают бОООльшой отпечаток на волатильность, плюс к этому после ударного дня часто бывает затишье=проторговка 
avatar
Мой совет — анализируй поведение параметров, которые ты пытаешься оптимизировать. Ты удивишься как непредсказуемо они себя ведут. Или предсказуемо — тогда это бинго. Оптимальное значение ничто — правильный подход все
avatar
ELab, а что именно анализировать можно? ну кроме того, что если близкие значения параметра дают совершенно разные результаты — это подгонка и явно случайность
avatar
frontrunner, к примеру. система на 2х moving average. можно взять расстояние между точками оптимальной системы реверсивной. оно будет хаотичным. и тд.
avatar
ELab, а можно немного подробнее? если честно, не очень понимаю о чем речь
avatar
frontrunner, наверное, больше чем сказал не могу донести. для примера, отклонение фьючерса от актива лежит в неких предалах. это постоянная величина, среднее время от + до — величина нормально распределенная. как-то так. 
avatar
ELab, отклонение фьюча от БА это постоянная величина? мне кажется какая-то динамика там точно есть. если брать пределы за постоянную величину то это только от -100% до+100% ну или близко к этому. и что можно сделать со знанием того, что среднее время от плюса до минуса распределено нормально?
avatar
frontrunner, только не подумай, что я из себя гуру строю. все на горьком опыте :) я привел пример. а тебе дальше думать
avatar
ELab, да я просто пока видимо не на том уровне, чтобы действительно что-то конструктивное для себя ивлечь из этого совета) я правда не понимаю)
avatar
frontrunner, 
отклонение фьюча от БА это постоянная величина? мне кажется какая-то динамика там точно есть.
есть распад контанго, целевой уровень — ставка кредитования у брокера или около того*остаток жизни фьюча.
avatar
Quant-Invest, ну речь о том, что эта самая разница динамична. в противном случае не было бы такого понятия как бэквардация
avatar
Могу посоветовать делать оптимизацию как я. Но на вкус и цвет...))
avatar
SenSoR, очень интересно, спасибо. а что за софт там на скринах?
avatar
frontrunner, Amibroker
avatar
SenSoR, спасибо)
avatar
оптимизация и подгонка это суть одно и то же
avatar
Cristopher Robin, отправлять робота на боевой контур без оптимизации лучше?
avatar
frontrunner, лучше если оптимизировать нечего
avatar
Cristopher Robin, ну как минимум стопы на разных рынках будут разные
avatar
Как можно было бы действовать.
1) Берутся два наиболее влияющих параметра системы. За 10 лет на акции Сбер на некотором тф прогоняются все варианты параметров из разумных.
2) Затем строятся графики среднегодовых доходностей системы по первому параметру, усреднённые по второму параметру. То есть суммы по всем значениям второго параметра. У меня получался график в виде буквы М с близкими вершинами и маленьким провалом.
Это означало, что выбирая первый параметр из некоторого отрезка, можно было ожидать по системе за 10 лет определённых доходностей. У меня вершины были на 35-40%, а годовые колебания доходностей для этого отрезка от -15% до +200%.
3) Можно построить такую же усреднённую по первому параметру кривую доходностей от второго параметра. И увидеть прямоугольник значений параметров, при которых за 10 лет получалось в среднем по 80%.
4) А дальше надеяться, что сильно от этого прямоугольника будущее поведение бумаги не отклонится, и что хватит терпения и веры пересиживать по полгода просадки в 30%.
avatar
MS, не совсем понял что именно нужно сделать во втором пункте
avatar
frontrunner, считаете все результаты доходностей в выбранном прямоугольнике параметров (параметр1, параметр2). Они получаются игольчатые. Затем суммируете результаты по строке (параметр2), получаете функцию доходности от параметра1. Усреднённую по параметру2. Она будет уже достаточно гладкой. Выбираете тот отрезок параметров1, где она >0 и имеет максимум и его окрестности.
Затем можно проделать аналогичную процедуру с исходным прямоугольником, усредняя доходности по параметру1.

В итоге получается сузить исходный прямоугольник параметров до нового, где на истории были в среднем хорошие доходности.
avatar
MS, теперь понял, спасибо. единственное, что смущает — у каждого параметра сотни значений могут быть. вручную это перебирать очень сложно. это можно как-то автоматизировать?
avatar
frontrunner, в поиске можно найти сборки, выкладываемые первопроходцами. Например, smart-lab.ru/blog/104140.php
avatar
MS, спасибо большое) буду пробовать) но это скорее больше для статистики подойдет, верно? рабочая версия насколько я знаю во-первых платная, во-вторых там нет визуального редактора, а я в программировании не силен. возможно ли вместо велса использовать R? там вроде как и кодинг попроще и распространение бесплатное. насколько это вообще соотносится с торговлей?
avatar

теги блога Igor Grabucha

....все тэги



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