MoscowTrades
MoscowTrades личный блог
15 октября 2024, 21:20

Как понять предел оптимизации параметров стратегии?

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

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

22 Комментария
  • 3Qu
    15 октября 2024, 21:27
    Стоит ли находить значение с точностью до единиц?
    С одной стороны, стоит, вблизи максимума меньше вероятность уйти на склон.
    С другой стороны, оптимизация оч часто вообще бессмысленное занятие, т.к. она находит максимум именно отрезка истории, на кот проводится оптимизация, и этот максимум часто не имеет никакого отношения к будущей реальности.
  • Сергей Сергаев
    15 октября 2024, 21:27
    Оптимизация начинается с раздельного тестирование входов и выходов.
    Если делать это сразу, то это не оптимизация, а подгонка под конкретную ценовую кривую с ее аномалиями…
      • Сергей Сергаев
        15 октября 2024, 21:41
        MoscowTrades, подгонка бывает параметрическая — когда путем многослойного последовательного тестирования выбираются «наилучшие» параметры, подгонка под кривую с конкретными артефактами.
        другой тип опасной подгонки — логическая, когда автор тестирует сразу условия входа и выхода, при этом он не задумываясь «связывает» логику данных условий. Например вход если цена пересекла SMAn снизу вверх, а выход — если цена пересекла SMAn сверху вниз. В данном случае логическая подгонка это применение SMAn.
        Другими словами, если невозможно провести раздельное тестирование условий системы, то это сразу проявляет наличие логической подгонки.
        Проверку качества выходов системы можно сделать на случайных входах, или на равномерных входах (с равным промежутком, например входим раз в неделю во вторник в 12 часов). 
        Проверка качества входа преследует цель выявить систематическое отклонение последующего движения цены (после входа то есть) в требуемую сторону. Если такого систематического движения в среднем не наблюдается, то условие входа не выигрывает от случайного входа )
          • Сергей Сергаев
            15 октября 2024, 21:48
            MoscowTrades, существует фактор, что цены падают примерно в 3 раза быстрее, чем растут, и волатильность при падении тоже обычно выше, чем волатильность при росте. Также оценка колебаний рынка показывает, что примерно 50% времени рынки в боковиках. Эти факторы явно свидетельствует, что реверсивные системы если и могут существовать, то лишь на узких участках графика, да и то, если в логике таких систем присутствует функция адаптации к движению, то есть не просто SMA, а например AMA Кауфмана или типо того…
              • Сергей Сергаев
                15 октября 2024, 22:17
                MoscowTrades, я не настаиваю, я лишь излагаю плоды собственного опыта. 
                Да, для основных резервных валют колебания роста/падения более симметричны.
                нельзя делать системы работающие в обе стороны (даже не реверсивные)
                Делать можно все что угодно, главное, чтобы было понимание логики и деньги приносило сообразно принимаемому риску )
  • Rationalist
    15 октября 2024, 21:34
    Стоит ли находить значение с точностью до единиц?

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

    Бери лучшую оптимизацию и смотри не на красоту линии, а просадки и куски где она была не оптимальной. Именно на этих отрезках все черти сидят. Ну и остальное — стопы, проскальз, комисс проверь по намеренно  ухудшенным условиям.
      • Rationalist
        15 октября 2024, 21:47
        MoscowTrades, линию эквити можно так любую оптимизировать, что бы стоячком стояла. Но она сглаживается и от красоты картины упустишь куски линии где большой шум с просадками. 
        На общие критерии проверки не надо смотреть, т.к. это твои деньги, твои результаты будут. А именно разберись с участками где эквити хромала и из-за чего. 
        Хотя. Если для красоты. И так сойдет.
  • Дмитрий Овчинников
    15 октября 2024, 22:42
    тестируем систему со скользящей средней и увидели, что оптимальное значение — где-то около 60. Стоит ли находить значение с точностью до единиц?

    Если речь идет о временных диапазонах, то я бы искал значения, кратные физическим целым. То есть если таймфрейм минутный, то кратный 60, если 5-минутный, то кратный 12 и так далее.
    В целом надо смотреть на природу «значения». В идеальном случае оптимизация может и не понадобиться ;)
  • Reznor
    16 октября 2024, 01:13
    Если система имеет реальный эдж, то она должна быть эффективна и устойчива в широком диапозоне оптимизируемых параметров. И да, системы на простых индикаторах типа СС в принципе не могут быть эффективными, поэтому пример не корректный.
      • Jkrsss
        16 октября 2024, 10:56
        MoscowTrades, поток входных данных не дифференцируемый.
  • MadQuant
    16 октября 2024, 01:24
    Стоит ли находить значение с точностью до единиц?

    Ну у вас там в любом случае будет какое-то число, почему именно 60 а не 57, например?
      • Пафос Респектыч
        17 октября 2024, 11:44
        MoscowTrades, тут важно понимать, что оптимальные параметры для торговой системы на будущее нельзя вычислить точно, можно только вычислить какую-то их приблизительную оценку, которая является случайной величиной с некоторым матожиданием и дисперсией. Если ты не знаешь, какая у твоей оценки параметра дисперсия, то ты вероятнее всего вообще не понимаешь чем занимаешься )
  • Фёдор Г.
    16 октября 2024, 15:30
    Вам нужно разделить вашу выборку на train и test. На первой выборке определяете определяете наилучшее значение параметра, при котором находится Макс/Мин оптимизируемой функции. Далее смещаетесь из точки с некоторым шагом и находите значения функции вблизи локального минимума. Определяете диапазон изменения параметра, при котором наблюдается минимум и как ведёт себя функция. Далее делаете тоже самое для test выборки. По зависимости функции от параметра на тесте определяете насколько устойчив и приемлим этот минимум на тесте. Если значения функции удовлетворительны, то самое простое, это взять среднее между значениям параметра на train и test, т.к.это учитывает дрифт модели со временем. Вариант сложнее, использовать характерные времена дрифта и динамически изменять параметры со временем. Желательно иметь несколько таких train и test для надёжности.

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

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