Oleksandr Novosiadlyi
Oleksandr Novosiadlyi личный блог
27 января 2016, 13:22

Оптимизация: быть или не быть? Часть 3

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

Я опишу как осуществляю свой отбор. Этот вопрос и для меня долго оставалось проблемой, меня всегда интересовало два элемента:

— Стабильность РЕЗУЛЬТАТОВ на различных частях истории, здесь я учитывал все показатели, начиная от прибыли и максимальной просадки

— Стабильность ПАРАМЕТРОВ по сравнению с другими, участвовавших в оптимизации

Часто тестирую торговые идеи в программе ТС Лаб, там можно все выводить и хранить в Exel, и я решил сделать дополнительную программу для обработки результатов тестов. Данный файл я назвал Test Manager. Програма состоит из двух частей.
Оптимизация: быть или не быть? Часть 3

  1. FaceControl.

Здесь идея заложена в том, чтобы отобрать, из разных частей истории, именно те варианты, которые подходят по моим критериям. Критериями может служить что угодно из того, что выводится с ТС лаб в Exel. Например: доход, просадка. В результате, после обработки этих данных, я получаю все те варианты, которые отбор и соответствуют параметрам, которые я задал в начале. Здесь я сразу же веду для себя еще однин показатель: сколько параметров, из общего количества, являются стабильными. Мне попадалось много систем, где за каждый кусок я находил хорошие результаты, но, в общем, не находил ни одного стабильного.
Оптимизация: быть или не быть? Часть 3

  1. Statistic.

В ТС Лаб или в Exel можно сортировать полученные результаты, по различным критериям. И для того, что определить стабильность того или иного параметра, я использую метод выставления оценок каждому параметру, согласно его размещения, в общих результатах на истории. То есть, один параметр, будет иметь другую оценку, в каждой результате, а считается средняя оценка, с учётом всех периодов. В результате, чем меньше оценка параметра, тем выше он находится в каждом из вариантов. Здесь важно, провести несколько таких тестов, по разным параметрам. Например: один по прибыли, другой по просадке (сортировать от минимальной до максимальной), другой по профит фактор или фактора восстановления.

 Оптимизация: быть или не быть? Часть 3

Весь этот процесс, который описан в 3 статьях, я использую на практике. Буду рад видеть идеи по усовершенствованию данного процесса оптимизации.

 smart-lab.ru/blog/305959.php
smart-lab.ru/blog/306240.php

18 Комментариев
  • SergeyJu
    27 января 2016, 13:47
    Я предпочитаю использовать понятие устойчивости, а не стабильности. 
    Поясняю.Для российских акций 
    2008 год не похож на 2009, а 2009 не похож на 2013.
    В 2008 году было сильное падение. Мы вправе ждать, что шортовые системы будут очень прибыльными. В 2009 году был период сильного роста, мы вправе ждать, что лонговые системы будут сильно прибыльными. 2013 год был год относительно низкой волатильности и относительно менее мощных трендов. 
    Ясно, что СТАБИЛЬНОЙ прибыльности лонговых, шортовых систем во всех трех случаях ждать трудно (ну, если мы не говорим о чем-то высокочастотном). Но вот просто прибыльности и лонговых и шортовых систем во всех отих случаях требовать надо. точно также, желательно требовать, чтобы их просадки были ограничены независимо от состояния рынка.
    Таким образом, мы не станем добиваться от системы, чтобы каждый год был стабильный результат и по лонгам, и по шортам +20% годовых, например. Пусть он нигде не хуже, чем 10%, но иногда будет 100%. Стабильность доходности, имхо, требование избыточное.
    Да и для риска, важна его ограниченность. Пониженный риск в благоприятных условиях не есть признак плохой системы.

      • SergeyJu
        27 января 2016, 14:45
        Parad0x, проще — это хорошо. Требование закрывать каждый месяц в плюс приводит к резкому снижению емкости систем. 
        С другой стороны, если у меня много разных систем с ограниченным риском, я могу собирать из них портфель, характеристики которого будут лучше, чем у средней системы, в него входящей. И риск переоптимизации отдельно взятой системы будет ниже. В сущности, процесс добавления систем в портфель и выведения из портфеля — естественный элемент системного трейдинга.

          • SergeyJu
            27 января 2016, 14:53
            Parad0x, можно. Нужно ли?
  • Fillio
    27 января 2016, 14:41
    как же тяжело людям живется без обычного оптимизатора стратегий в терминале!
    • SergeyJu
      27 января 2016, 14:49
      Максим Дмитриевский, Вы продаете оптимизаторы?
      Проблема оптимизации не в программе-оптимизаторе, а в понимании сути процесса. Если дело было бы просто в выборе хорошего оптимизатора, уже  давным-давно всех трейдеров мира заменили бы нейронные сети и прочие системы распознавания образов.
      • Fillio
        27 января 2016, 15:14
        SergeyJu, под оптимизацией понимается процесс перебора параметров системы, что автор топика делает вручную в экселе, загоняя туда результаты прогонов системы с разными параметрами. В нормальных терминалах типа мт5 оптимизацию можно сделать штатными средствами. Какие нафиг нейросети, причем тут это вообще
        • SergeyJu
          27 января 2016, 15:29
          Максим Дмитриевский, вручную — потому что нет четкого критерия оптимальности. Попробуйте задать в МТ5 «стабильность доходности + ограниченность риска + еще какую-то хотелку».
          Ни переборные, ни генетические, ни какие еще стандартные оптимизаторы не умеют отвечать на неясно сформулированные вопросы. И никакая нечеткая логика, никакое взвешивание критериев не помогают.
          • Fillio
            27 января 2016, 16:05
            SergeyJu, так тогда и ничто остальное не поможет )
            • SergeyJu
              27 января 2016, 16:26
              Максим Дмитриевский, глаз человека — великий оптимизатор.
  • Александр Муравьев
    28 января 2016, 10:28
    Период для тестов беру несколько лет. Параметры не перебираю по крайней мере механически, чтобы не утонуть в тысячах результатах заоптимизированных систем.
    При оптимизации смотрю следующие вещи:
    1. Отношение «Средняя прибыль в год»/«максимальную просадку за все время».
    2. «Прибыль»/«Количество сделок» (для понимания сколько проскальзывания и комиссии могу себе позволить)
    3. Система с такими же параметрами должна показать хороший результат на других схожих инструментах. Например, если система трендовая на ФОРТс, то она должна показывать приемлемый результат на других трендовых инструментах ФОРТС.
    4. На одном счете держу разные системы, поэтому в тестах складываю эквити всех систем в одну и оцениваю ее визуально, отдельно рассматривая провалы, для определения веса системы, которая создает большие ямки.
  • Александр Муравьев
    28 января 2016, 10:32
    5. Во после запуска системы на реальные торги, через некоторое время сравниваю сделки тестера и системы, чтобы понять, какое фактическое проскальзывание и не было ли ошибки в тестере.
    6. В случае получения на практике просадки больше расчетной, принимаю решение стоит ли оставлять эту систему в портфеле, либо менять на новую.
    • SergeyJu
      28 января 2016, 10:52
      Alex, все очень хорошо, одно маленькое замечание. Максимальная просадка за весь период — недостаточно устойчивая оценка, чтобы по ней следовало бы что-то оптимизировать. Хотя учитывать её безусловно надо.
      При оптимизации я предпочитаю среднеквадратичную оценку просадки за весь период.
      • Александр Муравьев
        28 января 2016, 11:22
        SergeyJu, т.е. подсчитываются все просадки теста, а потом по ним делается среднеквадратичная оценка?
        • SergeyJu
          28 января 2016, 11:45
          Alex, мы можем по завершению каждого торгового периода (дня, например) или сделки, если они идут чаще, оценить просадку относительно предыдущего абсолютного максимума. Если мы закрыли день на максимуме, просадка ноль. Вот для этого  ряда я и считаю среднее квадратичное, то есть сумму квадратов делю на число членов и извлекаю корень.
          Это число меньше максимальной просадки в несколько раз, может быть в 5-6 раз. Неважно, оно отражает именно среднюю склонность системы жить в просадке.
  • Иван Тишевской
    28 января 2016, 23:35
    Автор, приглашаю в чат по программированию, тестированию и оптимизации ТС скайп — tiwevskoi

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

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