Разделы



Оптимизация под управлением пользователя

Оптимизация под управлением пользователя ведется при сотрудничестве человека и программы. Как и при оптимизации с лобовым подходом, про­исходит испытание различных вариантов в поисках оптимального реше­ния, но если в первом случае ведется всеобъемлющий поиск во всем мно­жестве вариантов, оптимизация под управлением пользователя ведется, как выборочная охота, только в некоторых участках пространства реше­ний. Замысел в том, что при вмешательстве человека процесс оптимиза­ции способен быстро обнаружить оптимальные значения, не отвлекаясь на обследование каждого тупика.


При оптимизации под управлением пользователя применяются те же самые инструменты, что и при оптимизации с лобовым подходом. Вместо единственной оптимизации по всем возможным наборам параметров про­водится несколько частичных оптимизаций, каждая из которых состоит всего из нескольких тестов. Например, в каждой оптимизации будет из­меняться только один параметр, или же все параметры будут протестиро­ваны с большим шагом, создавая грубую сетку результатов. После каж­дой частичной оптимизации результаты анализируются, и затем прово­дится следующая частичная оптимизация. Таким образом, процесс при­водит к обнаружению желаемого решения.

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

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

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

Генетические оптимизаторы

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

п»ї

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

Генетические оптимизаторы могут иметь множество ценных харак­теристик, например скорость (особенно при наличии риска комбинатор­ного взрыва). Генетический оптимизатор работает на несколько поряд­ков быстрее, чем оптимизатор с лобовым подходом, особенно при нали­чии множества правил или значений параметров. Это происходит пото­му, что, как и при оптимизации под управлением пользователя, идет фо­кусировка на важных участках пространства решений, а тупики пропус­каются. В противоположность оптимизации под управлением пользова­теля селективный поиск достигается без вмешательства человека.

Генетические оптимизаторы могут быстро решать сложные задачи и более устойчивы, чем другие подходы, к эффектам локальных макси­мумов или (минимумов) на поверхности значений функции пригоднос­ти (или затрат). Вычислительные методы плохи тем, что всегда ведут к ближайшей вершине или впадине, не обращая внимания на более высо­кие вершины или впадины, которые могут существовать в других мес­тах. При этом хороший генетический оптимизатор часто находит луч­шее глобальное решение — великолепный результат при сложной фор­ме поверхности.

Еще одна характеристика генетической оптимизации — то, что она хорошо работает на поверхностях с разрывами, плоскими участками и другими сложными неупорядоченными формами. Генетический метод делит это преимущество с другими неаналитическими методами — лобо­вым подходом, управлением пользователем и пр. При помощи генетичес­кого оптимизатора можно найти решения, максимизирующие такие по­казатели, как чистая прибыль, доходность, отношение Шарпа и подобные, для которых поверхность функции пригодности имеет сложную форму, с трудом поддающуюся анализу. Это не означает, что такой оптимизатор не применяется для задач с простыми поверхностями — уступая в скоро­сти вычислительным методам, генетический оптимизатор защищен от вли­яния ловушек локальных экстремумов.

В общем, генетические оптимизаторы — предпочтительные методи­ки для систем с множеством правил или параметров; они особенно по­лезны, если необходимо найти глобальное решение или работать с весь­ма сложными (прерывистыми и недифференцируемыми) функциями пригодности или расходов. Хотя специализированные оптимизаторы могут обгонять генетические на избранных задачах, для многоцелевой оптимизации генетический метод — один из самых мощных доступных инструментов.

п»ї

На что похож генетический оптимизатор в работе? Мы перевели на C + + код для системы с пересечением скользящих средних, упоминавшей­ся ранее, чтобы при помощи C -Trader toolkit решать задачу оптимизации двух параметров — LenA и LenB . LenA , период первой скользящей средней, исследовался при значениях от 2 до 50, так же как и LenB — период второй скользящей средней. Оптимизация велась по показателю общей прибыли, чтобы можно было напрямую сравнивать результаты с получен­ными ранее методом оптимизации с лобовым подходом. Ниже приведен код для системы пересечения скользящих средних, написанный на C ++:

Для поиска оптимальных параметров путем оптимизации с лобовым подходом потребовалось бы провести 2041 тест, т.е. около 56 минут рабо­ты TradeStation согласно опыту прошлого тестирования небольшой вы­борки. Генетический оптимизатор справился с заданием за минуту. Кро­ме того, генетический оптимизатор был остановлен после проведения все­го лишь 133 тестов, что должно значительно ухудшить его результат.

Данные генетического оптимизатора приведены в табл. 3-2, где Р1 — период первой скользящей средней, Р2 — период второй скользящей сред­ней, ЧИСТ. — чистая прибыль, Д.ЧИСТ, — чистая прибыль для длинных позиций, К.ЧИСТ. — чистая прибыль для коротких позиций, Ф.ПРИБ — фактор прибыли, ДОХ % — доходность в процентах годовых, МаксПК — максимальное падение капитала, СДЕЛ — количество совершенных сис­темой сделок, ПРИБ% — процент выгодных сделок, Сред.рез. — прибыль или убыток от средней сделки и ПРИГ. — пригодность решения (в данном случае — просто общая прибыль). Как и в случае с данными лобовой оп­тимизации в табл. 3-1, генетические данные были рассортированы по эф­фективности (общей прибыли) и показаны только 25 лучших.

Сравнение результатов генетической оптимизации и оптимизации с лобовым подходом (табл. 3-1 и 3-2 соответственно) показывает, что гене­тический оптимизатор обнаружил решение, для которого общая прибыль была выше ($172,725 против $145,125). Это неудивительно, поскольку ис­следовалось большое поле вариантов и скорость оптимизации не была ограничена последовательными шагами. Удивительно скорее то, что ре­шение было обнаружено так быстро, несмотря на прерванный прежде­временно эволюционный процесс. Подобные результаты демонстриру­ют невероятную мощь генетической оптимизации.


Читать далее: Оптимизация моделированием отжига