Igor Grabucha
Igor Grabucha личный блог
24 июля 2016, 14:58

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

всем привет.

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

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

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

спасибо)
69 Комментариев
  • ves2010
    24 июля 2016, 15:04
    1 тесть без комиссов и проскальзываний… потом просто вычтешь из итогов...
    2 80% всех оптимизаций должны быть профитны
    3 1-2 параметра оптимизации
    4 скорее всего у тя изначально ничо не работает… выложи эквити и таблицу итогов
      • Twilight_reg73
        24 июля 2016, 15:43
        frontrunner, ничего. рынок стоял на месте радуйтесь что не слился в боковике.
      • Twilight_reg73
        24 июля 2016, 15:44
        frontrunner, Для этого и надо 5-10 ботов пот ому что многие
        могут месяцами в 0 стоять.
      • ves2010
        24 июля 2016, 15:54
        frontrunner, это си… мало сделок для статистики… ну и психологически торговать такое нереально… боковик в 3 года…
        дам совет… если мелкий счет иди торговать ботом 2-3 эшелон… но тока в лонг
          • ves2010
            24 июля 2016, 16:02
            frontrunner,
            1 1000 сделок нижняя граница… 3000 хорошо… 10000 отлично
            2 про плечи не думай
            3 кстати у тя ошибка… тесть на постоянной сумме а не на 1ом контракте
            • baron_samedi
              24 июля 2016, 22:38
              ves2010, 
              3000 сделок — это явно не часовик, позволю себе заметить, это хфт какое-то?
              250 раб дней в год, по часовику — 150-250 сделок.
              3000 — это 10!!! лет.
              Можно конечно 5 минутный график взять — но реально, если 400 — 500 сделок в год — значит по 30мин — часовику торгуем.
              3000 -  сколько же в день????
              Не так ли?
              • ves2010
                25 июля 2016, 07:43
                vladimir doigt, вот в этом то и вся проблема… что достоверной статистики нет… и навряд ли будет… однако 100-200 сделок за 6 лет маловато крайне

                я делаю тесты от 2000г...
                 
                  • helk3rn
                    26 июля 2016, 15:07
                    frontrunner, рынок сущностно не меняется. Система неочень, значит :)
                      • helk3rn
                        26 июля 2016, 15:54
                        frontrunner, выражай движения в процентах от last, че как нуб)
          • Quant-Invest
            27 июля 2016, 12:33
            frontrunner, чисто номинально сделок достаточно, нужно контролировать равномерность распределения результатов, проанализировать сделки с максимальным профитом на предмет ошибок.

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

            в какой момент оптимизация превращается в подгонку?
            Когда перестают контролироваться хи-квадрат, p-values и прочие статистические ништяки, позволяющие отличить одно от другого :)
              • Quant-Invest
                27 июля 2016, 16:43
                frontrunner, для понимая рекомендую читать критику этих самых p-values :)
                Под степенями свободы понимается
                en.wikipedia.org/wiki/Degrees_of_freedom_%28statistics%29
                а на практике — важна вероятность получения результата случайным образом.
                Больше параметров — легче подогнать систему под кривую данных без всякой основы. Это не гут.
                  • Quant-Invest
                    27 июля 2016, 19:42
                    frontrunner, литература есть, но стоит ли с нее начинать, если не прочитаны учебники? Важно ж не столько знать стат.инструмент, как границы его применения.
                    Монте-карло… в подавляещем большинстве случаев применяется неверно :)
                      • Quant-Invest
                        28 июля 2016, 16:48
                        frontrunner, 
                        E.T. Yanes — Probability theory -2003, в части:
                        9.12 Comparison of psi and chi-squared
                        на русском можно начать с
                        Вентцель Е.С., Овчаров Л.А. — Прикладные задачи теории вероятностей
                        Балдин К.В., Башлыков В.Н., Рукосуев А.В. — Теория вероятностей и математическая статистика — 2010.
      • ves2010
        24 июля 2016, 16:01
        frontrunner, тогда делай так… поменяй вход с выходом и запусти оптимизатор… если будут годные варианты для торговли то у тя пероптимизация
          • ves2010
            24 июля 2016, 16:06
            frontrunner, все решает средняя сделка… для акций это 0.25% и выше...
            и у тя бот отвратительно работает от шорта… т.е. в лонг номально… а для шорта пиши другого бота
              • ves2010
                24 июля 2016, 16:40
                frontrunner, причем тут го??? считается от стоимости а не от го… по го ты слился бы давно
      • baron_samedi
        24 июля 2016, 18:12
        frontrunner, 
        и опять может стоять.
    • baron_samedi
      24 июля 2016, 18:10
      frontrunner, 
      ГО+вола го, иначе кол. вообще, это уже черезчур стремно, должен быть хороший запас, особенно если овернайт сделок и гепы.
        • vvkg
          24 июля 2016, 18:29
          frontrunner, на новогодние праздники ГО поднимают аж до 2х раз
            • vvkg
              24 июля 2016, 19:29
              frontrunner, где взять сатистику даже и не знаю, остаётся только самому её брать из спецификации http://moex.com/ru/contract.aspx?code=Si-9.16 и самому же и вести такую статистику
        • ves2010
          24 июля 2016, 21:53
          frontrunner, в 2008г ГО было больше чем стоимость БА например в гмк… в си 1к2
            • ves2010
              24 июля 2016, 22:25
              frontrunner, тогда весь рынок летал на 40% в день… поэтому ГО было соответствующее
  • Sergey Pavlov
    24 июля 2016, 19:11
    главный вопрос — это оптимизация. в какой момент оптимизация превращается в подгонку?
    В самом начале превращается, ибо оптимизация = подгонка. Важно различать правильную и неправильную подгонку. Для этого надо понимать каждый раз, «что» вы подгоняете и под «что» подгоняете.
    Очень полезное упражнение — глазами пробежаться по каждой исторической сделке и посмотреть, в каких ситуациях ваш робот зарабатывает, в каких теряет.
      • Sergey Pavlov
        24 июля 2016, 19:46
        frontrunner, это зависит от того, в какой помощи нуждаетесь:) Для этого надо понимать (логически или теоретически), какие слабые места есть у вашей торговой модели. Например, просмотр глазками позволит установить, что, скажем, более половины всего профита ваш робот получает за счет 10 очень жирных сделок в 14-м и 15- году. Например:) И может так окажется, что эти же 10 сделок можно было взять каким-нибудь моментумом, скользяшкой и т.д. А это значит, что ваш робот не зарабатывает, а лишь не портит очевидное там, где заработает любая трендовая модель. Ну вот это из самого простого.
  • vvkg
    24 июля 2016, 19:27
    ПРАВИЛЬНО сказал товаристч Павлов — фазы рынка и сезонность накладывают бОООльшой отпечаток на волатильность, плюс к этому после ударного дня часто бывает затишье=проторговка 
  • ELab
    25 июля 2016, 09:24
    Мой совет — анализируй поведение параметров, которые ты пытаешься оптимизировать. Ты удивишься как непредсказуемо они себя ведут. Или предсказуемо — тогда это бинго. Оптимальное значение ничто — правильный подход все
      • ELab
        25 июля 2016, 10:10
        frontrunner, к примеру. система на 2х moving average. можно взять расстояние между точками оптимальной системы реверсивной. оно будет хаотичным. и тд.
          • ELab
            25 июля 2016, 11:03
            frontrunner, наверное, больше чем сказал не могу донести. для примера, отклонение фьючерса от актива лежит в неких предалах. это постоянная величина, среднее время от + до — величина нормально распределенная. как-то так. 
              • ELab
                25 июля 2016, 14:42
                frontrunner, только не подумай, что я из себя гуру строю. все на горьком опыте :) я привел пример. а тебе дальше думать
              • Quant-Invest
                27 июля 2016, 12:40
                frontrunner, 
                отклонение фьюча от БА это постоянная величина? мне кажется какая-то динамика там точно есть.
                есть распад контанго, целевой уровень — ставка кредитования у брокера или около того*остаток жизни фьюча.
  • SenSoR
    25 июля 2016, 21:19
    Могу посоветовать делать оптимизацию как я. Но на вкус и цвет...))
      • SenSoR
        25 июля 2016, 21:29
        frontrunner, Amibroker
  • Cristopher Robin
    26 июля 2016, 14:03
    оптимизация и подгонка это суть одно и то же
      • Cristopher Robin
        26 июля 2016, 23:08
        frontrunner, лучше если оптимизировать нечего
  • MS
    26 июля 2016, 17:53
    Как можно было бы действовать.
    1) Берутся два наиболее влияющих параметра системы. За 10 лет на акции Сбер на некотором тф прогоняются все варианты параметров из разумных.
    2) Затем строятся графики среднегодовых доходностей системы по первому параметру, усреднённые по второму параметру. То есть суммы по всем значениям второго параметра. У меня получался график в виде буквы М с близкими вершинами и маленьким провалом.
    Это означало, что выбирая первый параметр из некоторого отрезка, можно было ожидать по системе за 10 лет определённых доходностей. У меня вершины были на 35-40%, а годовые колебания доходностей для этого отрезка от -15% до +200%.
    3) Можно построить такую же усреднённую по первому параметру кривую доходностей от второго параметра. И увидеть прямоугольник значений параметров, при которых за 10 лет получалось в среднем по 80%.
    4) А дальше надеяться, что сильно от этого прямоугольника будущее поведение бумаги не отклонится, и что хватит терпения и веры пересиживать по полгода просадки в 30%.
      • MS
        27 июля 2016, 10:18
        frontrunner, считаете все результаты доходностей в выбранном прямоугольнике параметров (параметр1, параметр2). Они получаются игольчатые. Затем суммируете результаты по строке (параметр2), получаете функцию доходности от параметра1. Усреднённую по параметру2. Она будет уже достаточно гладкой. Выбираете тот отрезок параметров1, где она >0 и имеет максимум и его окрестности.
        Затем можно проделать аналогичную процедуру с исходным прямоугольником, усредняя доходности по параметру1.

        В итоге получается сузить исходный прямоугольник параметров до нового, где на истории были в среднем хорошие доходности.
          • MS
            27 июля 2016, 12:16
            frontrunner, в поиске можно найти сборки, выкладываемые первопроходцами. Например, smart-lab.ru/blog/104140.php

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн