оптимизация робота.
всем привет.
начинающий алготрейдер, работаю в тслабе. собрал несколько алгоритмов, на тестах вроде все норм, но все ранво возникают некоторые вопросы. главный вопрос — это оптимизация. в какой момент оптимизация превращается в подгонку? понятно, что нужно начинать с самых главных параметров, которые определяют модель поведения алгоритма на рынке. но вместе с тем, размеры стопа тоже важны. как правильно оптимизировать их сочетание? разумеется хочется получить максимальный результат от системы, но при этом понимаю, что начинаю конкретно подгонять и когда беру тот же алгоритм, но меняю период дестирования, получаю несколько иные результаты.
кроме базового оптимизирования прогоняю сделки в маркетстате. исключаю определенные торговые часы или дни недели, которые дают убытки. и после этого снова появляется необходимость оптимизации. поскольку некоторые условия отменяются. например если по условиям алгоритм не может входить в позицию, если уже есть одна открытая. меняется весь ряд сделок. новая оптимизация по личным ощущениям уже очень сильно напоминает подгонку (в этом конечно могу ошибаться). результаты теста тоже меняются. и как в таком случае поступать: оставить предыдущий ряд сделок или все же исключать ненужные часы и подбирать новые оптимальные параметры?
и сюда же еще вопрос какое значение ставить в комиссию, чтобы учесть и саму комиссию и проскальзывания? при тестах на ри ставлю 20 пунктов, на других фьючах 10.
спасибо)
2 80% всех оптимизаций должны быть профитны
3 1-2 параметра оптимизации
4 скорее всего у тя изначально ничо не работает… выложи эквити и таблицу итогов
т.е. если 1-2 параметра оптимизации, как быть если их должно быть больше? как минимум трейлинг стоп в одну сторону настроить это уже 3 параметра. в обе стороны — 6. их всегда оптимизировал последними и по отдельности.
эквити и результаты вот. тест на си на м15. система не предполагает реинвестирование и т.д. торговля одним контрактом.
лично мне тут не очень нравятся моменты, где эквити явно стоит на месте по несколько месяцев. что с этим можно сделать?
могут месяцами в 0 стоять.
дам совет… если мелкий счет иди торговать ботом 2-3 эшелон… но тока в лонг
сколько должно быть сделок, чтобы достаточно репрезентативная выборка получилась?
1 1000 сделок нижняя граница… 3000 хорошо… 10000 отлично
2 про плечи не думай
3 кстати у тя ошибка… тесть на постоянной сумме а не на 1ом контракте
3000 сделок — это явно не часовик, позволю себе заметить, это хфт какое-то?
250 раб дней в год, по часовику — 150-250 сделок.
3000 — это 10!!! лет.
Можно конечно 5 минутный график взять — но реально, если 400 — 500 сделок в год — значит по 30мин — часовику торгуем.
3000 - сколько же в день????
Не так ли?
я делаю тесты от 2000г...
Параметры — можно хоть 20 запилить, если они имеют логическое обоснование. Если нет — то считаем степени свободы и отсюда уже пляшем.
Когда перестают контролироваться хи-квадрат, p-values и прочие статистические ништяки, позволяющие отличить одно от другого :)
Под степенями свободы понимается
en.wikipedia.org/wiki/Degrees_of_freedom_%28statistics%29
а на практике — важна вероятность получения результата случайным образом.
Больше параметров — легче подогнать систему под кривую данных без всякой основы. Это не гут.
по поводу случайных результатов — я систему монтекарлил. получилось в целом неплохо, без просадок, но бывали варианты с довольно продолжительным боковиком
Монте-карло… в подавляещем большинстве случаев применяется неверно :)
ну монте-карло у меня конечно очень условное было. просто взял значения доходности всех сделок и перемешивал их в случайном порядке, при этом смотрел график получившейся эквити. просмотрел пару сотен вариантов
E.T. Yanes — Probability theory -2003, в части:
9.12 Comparison of psi and chi-squared
на русском можно начать с
Вентцель Е.С., Овчаров Л.А. — Прикладные задачи теории вероятностей
Балдин К.В., Башлыков В.Н., Рукосуев А.В. — Теория вероятностей и математическая статистика — 2010.
и у тя бот отвратительно работает от шорта… т.е. в лонг номально… а для шорта пиши другого бота
среднюю селку в % вроде как тслаб довольно криво считает. как и доходность и просадку в %. тут ходноность получилась 76 к рублей. тслаб пишет 252%. го на си -5 к. значит реально доходность (76-5)/5*100=1420% или я что то неправильно считаю?
и опять может стоять.
ГО+вола го, иначе кол. вообще, это уже черезчур стремно, должен быть хороший запас, особенно если овернайт сделок и гепы.
moex.com/ru/forts/contractbaseresults.aspx
Очень полезное упражнение — глазами пробежаться по каждой исторической сделке и посмотреть, в каких ситуациях ваш робот зарабатывает, в каких теряет.
1) Берутся два наиболее влияющих параметра системы. За 10 лет на акции Сбер на некотором тф прогоняются все варианты параметров из разумных.
2) Затем строятся графики среднегодовых доходностей системы по первому параметру, усреднённые по второму параметру. То есть суммы по всем значениям второго параметра. У меня получался график в виде буквы М с близкими вершинами и маленьким провалом.
Это означало, что выбирая первый параметр из некоторого отрезка, можно было ожидать по системе за 10 лет определённых доходностей. У меня вершины были на 35-40%, а годовые колебания доходностей для этого отрезка от -15% до +200%.
3) Можно построить такую же усреднённую по первому параметру кривую доходностей от второго параметра. И увидеть прямоугольник значений параметров, при которых за 10 лет получалось в среднем по 80%.
4) А дальше надеяться, что сильно от этого прямоугольника будущее поведение бумаги не отклонится, и что хватит терпения и веры пересиживать по полгода просадки в 30%.
Затем можно проделать аналогичную процедуру с исходным прямоугольником, усредняя доходности по параметру1.
В итоге получается сузить исходный прямоугольник параметров до нового, где на истории были в среднем хорошие доходности.