Блог им. Parad0X

Оптимизация: быть или не быть? Часть 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

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

avatar
SergeyJu, Все зависит от целей, которые вы ставите перед собой и системой на начальном этапе её разработки. Значительно легче сделать систему, которая будет закрывать год в +, и гораздо труднее сделать это только + каждый месяц или квартал. Которая будет делать 50 операций и 500 в год при комиссии за круг 40 пунктов по РТС. И поэтому, по моему мнению, также проще сделать систему, которая просто не будет сливать нежели зарабатывать каждый промежуток времени при небольших рисках. 
avatar
Parad0x, проще — это хорошо. Требование закрывать каждый месяц в плюс приводит к резкому снижению емкости систем. 
С другой стороны, если у меня много разных систем с ограниченным риском, я могу собирать из них портфель, характеристики которого будут лучше, чем у средней системы, в него входящей. И риск переоптимизации отдельно взятой системы будет ниже. В сущности, процесс добавления систем в портфель и выведения из портфеля — естественный элемент системного трейдинга.

avatar
SergeyJu, а портфель торговых систем, это очень широкая тема, и очень крутая, на основе которой можно еще написать несколько постов)
avatar
Parad0x, можно. Нужно ли?
avatar
SergeyJu, Думаю, что да. Хотя очень мало, но попадаются люди, которые, действительно, хотят что-то пообсуждать, осветить свое мнение. И при таких вещей можно и нужно развиваться
avatar
как же тяжело людям живется без обычного оптимизатора стратегий в терминале!
avatar
Максим Дмитриевский, Вы продаете оптимизаторы?
Проблема оптимизации не в программе-оптимизаторе, а в понимании сути процесса. Если дело было бы просто в выборе хорошего оптимизатора, уже  давным-давно всех трейдеров мира заменили бы нейронные сети и прочие системы распознавания образов.
avatar
SergeyJu, под оптимизацией понимается процесс перебора параметров системы, что автор топика делает вручную в экселе, загоняя туда результаты прогонов системы с разными параметрами. В нормальных терминалах типа мт5 оптимизацию можно сделать штатными средствами. Какие нафиг нейросети, причем тут это вообще
avatar
Максим Дмитриевский, вручную — потому что нет четкого критерия оптимальности. Попробуйте задать в МТ5 «стабильность доходности + ограниченность риска + еще какую-то хотелку».
Ни переборные, ни генетические, ни какие еще стандартные оптимизаторы не умеют отвечать на неясно сформулированные вопросы. И никакая нечеткая логика, никакое взвешивание критериев не помогают.
avatar
SergeyJu, так тогда и ничто остальное не поможет )
avatar
Максим Дмитриевский, глаз человека — великий оптимизатор.
avatar
Период для тестов беру несколько лет. Параметры не перебираю по крайней мере механически, чтобы не утонуть в тысячах результатах заоптимизированных систем.
При оптимизации смотрю следующие вещи:
1. Отношение «Средняя прибыль в год»/«максимальную просадку за все время».
2. «Прибыль»/«Количество сделок» (для понимания сколько проскальзывания и комиссии могу себе позволить)
3. Система с такими же параметрами должна показать хороший результат на других схожих инструментах. Например, если система трендовая на ФОРТс, то она должна показывать приемлемый результат на других трендовых инструментах ФОРТС.
4. На одном счете держу разные системы, поэтому в тестах складываю эквити всех систем в одну и оцениваю ее визуально, отдельно рассматривая провалы, для определения веса системы, которая создает большие ямки.
5. Во после запуска системы на реальные торги, через некоторое время сравниваю сделки тестера и системы, чтобы понять, какое фактическое проскальзывание и не было ли ошибки в тестере.
6. В случае получения на практике просадки больше расчетной, принимаю решение стоит ли оставлять эту систему в портфеле, либо менять на новую.
Alex, все очень хорошо, одно маленькое замечание. Максимальная просадка за весь период — недостаточно устойчивая оценка, чтобы по ней следовало бы что-то оптимизировать. Хотя учитывать её безусловно надо.
При оптимизации я предпочитаю среднеквадратичную оценку просадки за весь период.
avatar
SergeyJu, т.е. подсчитываются все просадки теста, а потом по ним делается среднеквадратичная оценка?
Alex, мы можем по завершению каждого торгового периода (дня, например) или сделки, если они идут чаще, оценить просадку относительно предыдущего абсолютного максимума. Если мы закрыли день на максимуме, просадка ноль. Вот для этого  ряда я и считаю среднее квадратичное, то есть сумму квадратов делю на число членов и извлекаю корень.
Это число меньше максимальной просадки в несколько раз, может быть в 5-6 раз. Неважно, оно отражает именно среднюю склонность системы жить в просадке.
avatar
Автор, приглашаю в чат по программированию, тестированию и оптимизации ТС скайп — tiwevskoi

теги блога Oleksandr Novosiadlyi

....все тэги



UPDONW
Новый дизайн