начинающий алготрейдер, работаю в тслабе. собрал несколько алгоритмов, на тестах вроде все норм, но все ранво возникают некоторые вопросы. главный вопрос — это оптимизация. в какой момент оптимизация превращается в подгонку? понятно, что нужно начинать с самых главных параметров, которые определяют модель поведения алгоритма на рынке. но вместе с тем, размеры стопа тоже важны. как правильно оптимизировать их сочетание? разумеется хочется получить максимальный результат от системы, но при этом понимаю, что начинаю конкретно подгонять и когда беру тот же алгоритм, но меняю период дестирования, получаю несколько иные результаты.
кроме базового оптимизирования прогоняю сделки в маркетстате. исключаю определенные торговые часы или дни недели, которые дают убытки. и после этого снова появляется необходимость оптимизации. поскольку некоторые условия отменяются. например если по условиям алгоритм не может входить в позицию, если уже есть одна открытая. меняется весь ряд сделок. новая оптимизация по личным ощущениям уже очень сильно напоминает подгонку (в этом конечно могу ошибаться). результаты теста тоже меняются. и как в таком случае поступать: оставить предыдущий ряд сделок или все же исключать ненужные часы и подбирать новые оптимальные параметры?
и сюда же еще вопрос какое значение ставить в комиссию, чтобы учесть и саму комиссию и проскальзывания? при тестах на ри ставлю 20 пунктов, на других фьючах 10.
1 тесть без комиссов и проскальзываний… потом просто вычтешь из итогов...
2 80% всех оптимизаций должны быть профитны
3 1-2 параметра оптимизации
4 скорее всего у тя изначально ничо не работает… выложи эквити и таблицу итогов
ves2010, ну оптимизации-то все вполне профитны. я просто пытаюсь понять насколько это соответствует действительности.
т.е. если 1-2 параметра оптимизации, как быть если их должно быть больше? как минимум трейлинг стоп в одну сторону настроить это уже 3 параметра. в обе стороны — 6. их всегда оптимизировал последними и по отдельности.
эквити и результаты вот. тест на си на м15. система не предполагает реинвестирование и т.д. торговля одним контрактом.
лично мне тут не очень нравятся моменты, где эквити явно стоит на месте по несколько месяцев. что с этим можно сделать?
frontrunner, это си… мало сделок для статистики… ну и психологически торговать такое нереально… боковик в 3 года…
дам совет… если мелкий счет иди торговать ботом 2-3 эшелон… но тока в лонг
ves2010, счет мелкий) на споте даже с плечом мне кажется выхлоп меньше, чем на фьючах.
сколько должно быть сделок, чтобы достаточно репрезентативная выборка получилась?
frontrunner,
1 1000 сделок нижняя граница… 3000 хорошо… 10000 отлично
2 про плечи не думай
3 кстати у тя ошибка… тесть на постоянной сумме а не на 1ом контракте
ves2010,
3000 сделок — это явно не часовик, позволю себе заметить, это хфт какое-то?
250 раб дней в год, по часовику — 150-250 сделок.
3000 — это 10!!! лет.
Можно конечно 5 минутный график взять — но реально, если 400 — 500 сделок в год — значит по 30мин — часовику торгуем.
3000 - сколько же в день????
Не так ли?
frontrunner, чисто номинально сделок достаточно, нужно контролировать равномерность распределения результатов, проанализировать сделки с максимальным профитом на предмет ошибок.
Параметры — можно хоть 20 запилить, если они имеют логическое обоснование. Если нет — то считаем степени свободы и отсюда уже пляшем.
в какой момент оптимизация превращается в подгонку?
Когда перестают контролироваться хи-квадрат, p-values и прочие статистические ништяки, позволяющие отличить одно от другого :)
Quant-Invest, спасибо. а что подразумевается под степенью свободы? про хи-квадрта и прочее почитаю отдельно, понятия на слуху, но глубокого понимания, увы, пока нет
frontrunner, для понимая рекомендую читать критику этих самых p-values :)
Под степенями свободы понимается en.wikipedia.org/wiki/Degrees_of_freedom_%28statistics%29
а на практике — важна вероятность получения результата случайным образом.
Больше параметров — легче подогнать систему под кривую данных без всякой основы. Это не гут.
Quant-Invest, я почитаю, спасибо большое. может есть какая-нибудь специальная литература по статистике именно касательно роботов? или можно просто брать хороший учебник по статистике?
по поводу случайных результатов — я систему монтекарлил. получилось в целом неплохо, без просадок, но бывали варианты с довольно продолжительным боковиком
frontrunner, литература есть, но стоит ли с нее начинать, если не прочитаны учебники? Важно ж не столько знать стат.инструмент, как границы его применения.
Монте-карло… в подавляещем большинстве случаев применяется неверно :)
Quant-Invest, а с каких учебников начинать?
ну монте-карло у меня конечно очень условное было. просто взял значения доходности всех сделок и перемешивал их в случайном порядке, при этом смотрел график получившейся эквити. просмотрел пару сотен вариантов
frontrunner,
E.T. Yanes — Probability theory -2003, в части:
9.12 Comparison of psi and chi-squared
на русском можно начать с
Вентцель Е.С., Овчаров Л.А. — Прикладные задачи теории вероятностей
Балдин К.В., Башлыков В.Н., Рукосуев А.В. — Теория вероятностей и математическая статистика — 2010.
frontrunner, все решает средняя сделка… для акций это 0.25% и выше...
и у тя бот отвратительно работает от шорта… т.е. в лонг номально… а для шорта пиши другого бота
ves2010, это связано с тем, что в 2014 начался сильный рост?
среднюю селку в % вроде как тслаб довольно криво считает. как и доходность и просадку в %. тут ходноность получилась 76 к рублей. тслаб пишет 252%. го на си -5 к. значит реально доходность (76-5)/5*100=1420% или я что то неправильно считаю?
ну я же трачу только го а не полную стоимость активов в контракте. значит доходность надо считать на те деньги, которые я вкладываю. смысл фьючей же как раз в том что в него уже плечо зашито
frontrunner, где взять сатистику даже и не знаю, остаётся только самому её брать из спецификации http://moex.com/ru/contract.aspx?code=Si-9.16 и самому же и вести такую статистику
главный вопрос — это оптимизация. в какой момент оптимизация превращается в подгонку?
В самом начале превращается, ибо оптимизация = подгонка. Важно различать правильную и неправильную подгонку. Для этого надо понимать каждый раз, «что» вы подгоняете и под «что» подгоняете.
Очень полезное упражнение — глазами пробежаться по каждой исторической сделке и посмотреть, в каких ситуациях ваш робот зарабатывает, в каких теряет.
frontrunner, это зависит от того, в какой помощи нуждаетесь:) Для этого надо понимать (логически или теоретически), какие слабые места есть у вашей торговой модели. Например, просмотр глазками позволит установить, что, скажем, более половины всего профита ваш робот получает за счет 10 очень жирных сделок в 14-м и 15- году. Например:) И может так окажется, что эти же 10 сделок можно было взять каким-нибудь моментумом, скользяшкой и т.д. А это значит, что ваш робот не зарабатывает, а лишь не портит очевидное там, где заработает любая трендовая модель. Ну вот это из самого простого.
ПРАВИЛЬНО сказал товаристч Павлов — фазы рынка и сезонность накладывают бОООльшой отпечаток на волатильность, плюс к этому после ударного дня часто бывает затишье=проторговка
Мой совет — анализируй поведение параметров, которые ты пытаешься оптимизировать. Ты удивишься как непредсказуемо они себя ведут. Или предсказуемо — тогда это бинго. Оптимальное значение ничто — правильный подход все
ELab, а что именно анализировать можно? ну кроме того, что если близкие значения параметра дают совершенно разные результаты — это подгонка и явно случайность
frontrunner, наверное, больше чем сказал не могу донести. для примера, отклонение фьючерса от актива лежит в неких предалах. это постоянная величина, среднее время от + до — величина нормально распределенная. как-то так.
ELab, отклонение фьюча от БА это постоянная величина? мне кажется какая-то динамика там точно есть. если брать пределы за постоянную величину то это только от -100% до+100% ну или близко к этому. и что можно сделать со знанием того, что среднее время от плюса до минуса распределено нормально?
Как можно было бы действовать.
1) Берутся два наиболее влияющих параметра системы. За 10 лет на акции Сбер на некотором тф прогоняются все варианты параметров из разумных.
2) Затем строятся графики среднегодовых доходностей системы по первому параметру, усреднённые по второму параметру. То есть суммы по всем значениям второго параметра. У меня получался график в виде буквы М с близкими вершинами и маленьким провалом.
Это означало, что выбирая первый параметр из некоторого отрезка, можно было ожидать по системе за 10 лет определённых доходностей. У меня вершины были на 35-40%, а годовые колебания доходностей для этого отрезка от -15% до +200%.
3) Можно построить такую же усреднённую по первому параметру кривую доходностей от второго параметра. И увидеть прямоугольник значений параметров, при которых за 10 лет получалось в среднем по 80%.
4) А дальше надеяться, что сильно от этого прямоугольника будущее поведение бумаги не отклонится, и что хватит терпения и веры пересиживать по полгода просадки в 30%.
frontrunner, считаете все результаты доходностей в выбранном прямоугольнике параметров (параметр1, параметр2). Они получаются игольчатые. Затем суммируете результаты по строке (параметр2), получаете функцию доходности от параметра1. Усреднённую по параметру2. Она будет уже достаточно гладкой. Выбираете тот отрезок параметров1, где она >0 и имеет максимум и его окрестности.
Затем можно проделать аналогичную процедуру с исходным прямоугольником, усредняя доходности по параметру1.
В итоге получается сузить исходный прямоугольник параметров до нового, где на истории были в среднем хорошие доходности.
MS, теперь понял, спасибо. единственное, что смущает — у каждого параметра сотни значений могут быть. вручную это перебирать очень сложно. это можно как-то автоматизировать?
MS, спасибо большое) буду пробовать) но это скорее больше для статистики подойдет, верно? рабочая версия насколько я знаю во-первых платная, во-вторых там нет визуального редактора, а я в программировании не силен. возможно ли вместо велса использовать R? там вроде как и кодинг попроще и распространение бесплатное. насколько это вообще соотносится с торговлей?
Это точно? Мне интересено разобраться, поэтому на чем основано Ваше мнение?
Моё — на том, что поскольку выпуск облигаций был биржевой, значит все расчеты должны быть через НРД (кстати прочитал с...
Эдуард Лоскутов,
В Суд ходить не нужно. Ни пешком, ни на такси.
Там нужны только бумаги, которые они читают и принимают решения на основании ваших доводов. Сказанные слова не воспринимаются ка...
Случайность или закономерность, избыточный риск или риск более чем оправданный За последние 5 лет один из фондов акций явно выделялся на фоне остальных открытых (биржевых) фондов акций.
Приведу рез...
Объём торговли юанем на Мосбирже продолжает падать. По данным «Коммерсанта», объемы торгов падают второй месяц подряд из-за сокращения продаж валюты крупных экспортеров, снижения популярности биржевой...
Прогноз Биткоина. Будет продолжение роста? Курс биткоина 9 ноября
Сегодня биткоин продолжает торговаться в районе уровня сопротивления 76840 и идет поджатие к нему. В случае пробития уровня 7719...
Если это правда, что Газпром продает Газпромнефть, то скорее всего вместо Газпром нефти Газпром поглощает Новатек
Или второй вариант, что создадут гиганта объединив Газпром, Лукойл и Роснефть на ...
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.
В итоге получается сузить исходный прямоугольник параметров до нового, где на истории были в среднем хорошие доходности.