Современная электронная библиотека ModernLib.Net

Энциклопедия торговых стратегий

ModernLib.Net / Ценные бумаги, инвестиции / Донна Маккормик / Энциклопедия торговых стратегий - Чтение (Ознакомительный отрывок) (стр. 4)
Автор: Донна Маккормик
Жанр: Ценные бумаги, инвестиции

 

 


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

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

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

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

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

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


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

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

Как и генетическая оптимизация, моделирование отжига – очень мощная стохастическая методика, основанная на естественном явлении, которое может находить глобально оптимальные решения и работать с неупорядоченными функциями эффективности. Моделирование отжига эффективно решает комбинаторные проблемы, включая известную «задачу о коммивояжере» или проблему оптимального расположения миллионов элементов современных интегральных микросхем, например компьютерных процессоров. Методы, основанные на моделировании отжига, не следует ограничивать комбинаторной оптимизацией; они могут быть легко применены для оптимизации параметров с реальными значениями. Таким образом, оптимизаторы, основанные на моделировании отжига, применимы к широчайшему кругу задач, включая задачи, интересующие трейдеров.

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


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

Анализ (в смысле «математический» или «комплексный» анализ) является расширением классического исчисления. Аналитические оптимизаторы используют наработанные методы, в особенности методы дифференциального исчисления и исследования аналитических функций для решения практических задач. В некоторых случаях анализ дает прямой (без перебора вариантов) ответ на задачу оптимизации. Так происходит при использовании множественной регрессии, где решение находится с помощью нескольких матричных вычислений. Целью множественной регрессии является подбор таких весов регрессии, при которых минимизируется сумма квадратов ошибок. В других случаях требуется перебор вариантов, например, невозможно определить напрямую веса связей в нейронной сети, их требуется оценивать при помощи алгоритма обратного распространения.

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

Затем расчет градиента повторяется, движение начинается в новом направлении, и так раз за разом, пока не будет достигнута вершина, т. е. точка с нулевым градиентом.

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

Тем не менее низкая скорость оптимизации не является главным препятствием на пути аналитика. Гораздо сложнее справиться с так называемой проблемой локальных решений. Почти все аналитические методы, будь они простыми или сложными, легко попадаются в ловушку локальных максимумов; при наличии множества впадин и выступов на поверхности они не могут найти наилучшее глобальное решение. Метод наименьших квадратов, моделирование нейронными сетями дают поверхности функции пригодности неправильной формы с большим количеством локальных экстремумов. Данные поверхности чрезвычайно сложны для стандартных аналитических методов, таких как метод сопряженных градиентов или алгоритм обратного распространения, применяемый в нейронных сетях. Впрочем, местные максимумы можно обойти, соединив аналитический метод с генетическим. Для поверхностей, которые можно исследовать аналитическими методами, такой двойной алгоритм может оказаться наилучшим решением; он позволит быстро и с большой точностью найти глобальные оптимумы.

Некоторые поверхности функции пригодности просто не поддаются аналитической оптимизации; как правило, это поверхности, имеющие плоские участки или разрывы в областях, где следует искать решение. Плоскости не имеют градиентов, следовательно, нельзя выбрать направление для движения. В точках разрыва также нельзя определить градиент и направление движения. Даже если метод и не использует градиенты напрямую, эта информация все равно потребуется алгоритму оптимизации. К несчастью, многие функции пригодности, важные для трейдеров, – включая все функции, связанные с общей прибылью, максимальными падениями капитала, долей выгодных сделок, отношением риска/прибыли и подобными показателями, – страдают наличием плоскостей и разрывов. Значит, их нельзя исследовать методами аналитической оптимизации.

Хотя обсуждение было в основном посвящено максимизации функции пригодности, все вышесказанное применимо и к минимизации расходов. Любая техника максимизации может быть применена для минимизации, и наоборот: умножьте функцию пригодности на –1 для получения эквивалентной функции расходов; умножьте функцию расходов на –1, и получится функция пригодности. Если вам нравится алгоритм минимизации, но нужно применять максимизацию; можно использовать этот фокус вместо перекодировки алгоритма оптимизации.


Линейное программирование

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

<p>Как потерпеть неудачу при оптимизации</p>

Большинство трейдеров не стремится к проигрышу – по крайней мере осознанно. Знание причин неудачи помогает ее избежать. Потерпеть неудачу при использовании оптимизатора очень просто, если соблюдать следующие правила. Во-первых, используйте маленькие (и поэтому непредставительные) выборки данных для тестирования. Во-вторых, убедитесь, что у системы много правил и параметров для оптимизации. Для любого исторического периода несложно получить отличный результат при наличии большого количества параметров в системе. Кроме того, проводите все тесты на одном образце данных. Ни в коем случае не проверяйте ваши результаты на данных, расположенных вне пределов исходной выборки. И наконец, избегайте статистических заключений. Следуя эти правилам, вы обязательно потеряете деньги, применив «оптимизированную» систему в реальной торговле.

Чем будет вызвана неудача? В большинстве случаев система будет работать великолепно при тестировании, но плохо при реальной торговле. Специалисты по разработке нейронных сетей называют это «слабой генерализацией»; трейдеры знакомы с этим явлением по частым опустошениям денежного счета у брокера. Одно из последствий такого неудачного исхода – распространенное заблуждение о вреде оптимизации вообще.

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


Небольшие выборки

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

Оптимизация неадекватных выборок также часто дает ответы, представляющие собой чисто математические артефакты. Когда количество точек с данными стремится к количеству настраиваемых параметров, большинство моделей (торговых, регрессионных или других) найдут идеальное решение для любого набора случайных данных. Здесь действует тот же принцип, который гласит, что линия (модель с двумя параметрами) может быть проведена через любые две точки, но не всегда может быть проведена через три произвольные точки. В статистике это известно как принцип степеней свободы; степеней свободы столько, на сколько общее количество точек данных в выборке превышает то количество точек, в которые всегда можно идеально вписать оптимизируемую модель благодаря подгонке параметров. Даже когда данных достаточно много для того, чтобы избежать полностью артефактного решения, некоторая часть пригодности модели тем не менее может быть обусловлена артефактами как побочным продуктом процесса оптимизации.

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

В этом уравнении N означает количество точек данных, P – количество параметров модели, R – коэффициент множественной корреляции, определенный на выборке данных процедурой оптимизации, RC – скорректированный коэффициент. Обратная формула, показывающая увеличение корреляции, вызванное оптимизацией (R), в зависимости от подлинной корреляции () выглядит следующим образом:

Эти формулы справедливы только для линейной регрессии. Тем не менее их можно использовать для оценки качества генерализации, проводимой полностью обученной нейронной сетью (т. е. частным случаем нелинейной регрессии). При работе с нейронными сетями P будет означать общее количество весов связей в модели. Кроме того, убедитесь, что этими формулами используются простые корреляции; если нейронная сеть или регрессионная программа возвращает квадраты корреляций, следует извлечь квадратный корень.


Большие наборы параметров

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

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


Отсутствие подтверждения

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

<p>Как достичь успеха при оптимизации</p>

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


Большие представительные выборки

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

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

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

Впрочем, иногда приходится делать выбор между размером выборки и степенью ее репрезентативности. Увеличение размера выборки приводит к использованию старых ценовых данных, значимость которых для представления современного состояния рынка весьма сомнительна. В некоторых случаях существует четкая грань, за которой данные теряют значимость. Например, фьючерсы на индекс S&P 500 начали обращение на рынке в 1983 г., что оказало структурное влияние на рынок в целом. Это наблюдение становится менее важным при работе с внутридневной ценовой историей, где за относительно короткий период времени можно собрать данные о десятках и сотнях тысяч баров, не углубляясь в прошлое слишком далеко.

В конце напоминаем, что при проведении оптимизаций и тестов следует учитывать количество сделок, проведенных системой. Как и объем выборок данных, количество сделок для достоверности должно быть значительным. Если система совершает всего несколько сделок, то, несмотря на количество точек данных в выборке, результат может оказаться следствием случайностей или артефактов!


Минимум правил и параметров

Для достижения успеха следует ограничивать число оптимизируемых правил и параметров, особенно при работе на небольших выборках данных. Чем меньше правил и параметров, тем больше вероятность устойчивой эффективности решений как на материале выборки, так и за ее пределами. Хотя при работе с несколькими тысячами сделок (1 год S&P 500 содержит примерно 100 000 одноминутных баров) можно оптимизировать несколько десятков параметров, при использовании данных на конец дня за несколько лет даже два-три параметра могут оказаться излишними. Если данная модель требует оптимизации многих параметров, то следует приложить усилия к сбору колоссального объема данных. Легендарный Ганн, как говорят, собрал данные по цене на пшеницу за тысячу лет. При невозможности использовать большие объемы данных следует проводить оптимизацию системы на портфеле нескольких финансовых инструментов с использованием одних и тех же правил и параметров на всех рынках – эта методика широко использована в данной книге.


Подтверждение результатов

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

Для гарантии успеха любое решение следует подтверждать тестами на данных вне выборки или статистическим анализом, но предпочтительно – обоими методами. Отбросьте любое решение, которое не будет прибыльным в тесте на данных, не входящих в первоначальную выборку, – при реальной торговле оно, скорее всего, провалится. Рассчитывайте статистическую значимость всех тестов – и в пределах выборки данных, и вне ее. Оценка статистической значимости показывает вероятность того, что пригодность системы на выборке данных соответствует ее пригодности в других условиях, включая реальную торговлю. Статистический анализ работает по принципу распределения вероятностей прибылей в сделках, совершаемых системой. Используйте только статистические методы, скорректированные для множественных тестов, когда анализируете результаты тестов в пределах выборки. Тесты вне пределов выборки следует оценивать стандартными, некорректированными методами. Подобные отчеты приводились в главе, посвященной симуляторам. Займитесь изучением статистики; это улучшит ваши трейдерские качества.

Некоторые советуют проверять модель на чувствительность к малым изменениям параметров. Модель, которая малочувствительна к таким изменениям, считается «высоконадежной». Не обращайте на подобные заявления слишком много внимания. Фактически устойчивость к изменению параметров не может служить показателем надежности системы. Многие чрезвычайно надежные модели весьма чувствительны к изменениям некоторых параметров. Единственно достоверный показатель надежности системы – статистика, в особенности результаты тестов на данных вне пределов выборки.

<p>Альтернативы традиционной оптимизации</p>

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

Принцип оптимизации, или тестирования с прогонкой вперед, состоит в эмуляции шагов, действительно производимых системой, требующей периодической оптимизации. Метод работает следующим образом. Оптимизируйте систему на точках данных от 1 до М. Затем проведите виртуальную торговлю в точках данных от М + 1 до М + К. Повторно оптимизируйте систему на точках от К + 1 до К + М. Затем промоделируйте торговлю в точках от (К + М) + 1 до (К + М) + К. Пройдите таким образом через всю выборку данных. Как следует из примера, сначала оптимизируется система, потом моделируется торговля. Через некоторое время система снова оптимизируется, и торговля возобновляется. Эта последовательность гарантирует, что торговля всегда происходит на данных, более поздних, чем данные, использовавшиеся для оптимизации. Практически все сделки происходят на данных вне пределов выборки. При тестировании с прогонкой вперед М – окно оптимизации (или исторического обзора), а К – интервал повторной оптимизации.

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

Трейдер, планирующий использовать самоадаптивные системы, должен иметь мощную, основанную на компонентах платформу с использованием развитого языка программирования (С++, Object Pascal или Visual Basic) с возможностью доступа к библиотекам и компонентам третьих производителей. Эти компоненты рассчитаны на встраивание в создаваемые пользователем программы, включая специальные программы адаптивных систем. Чем больше компонентов доступно, тем меньше работы: как минимум трейдер, пытающийся использовать самоадаптивные системы, должен иметь доступ к генетическому оптимизатору и симулятору, которые могут быть легко встроены в модель. Адаптивные системы будут рассмотрены в следующих главах, показывая, как этот метод работает на практике.

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

<p>Инструменты и информация для оптимизации</p>

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

Оптимизаторы с лобовым подходом обычно встроены в программные пакеты, нацеленные на другие задачи, и редко доступны по отдельности. В мире программ для трейдинга такие оптимизаторы встроены в TradeStation и SuperCharts фирмы Omega Research (800-292-3453), Excalibur фирмы Futures Truth (828-697-0273) и MetaStock фирмы Equis International (800-882-3040). Если вы пишете собственные программы, при помощи несложного программирования написать алгоритм лобовой оптимизации можно безо всяких дополнительных библиотек. Программы и алгоритмы для оптимизации с лобовым подходом также полезны при проведении оптимизации под управлением пользователя.

Хотя иногда генетические оптимизаторы бывают встроены в специализированные программы, они чаще встречаются в виде компонентов или библиотек классов, дополнений к различным пакетам или самостоятельных исследовательских инструментов. Примером библиотеки классов с учетом компонентного использования может служить OptEvolve, генетический оптимизатор на С++ фирмы Scientific Consultant Services (516-696-3333): этот многоцелевой генетический оптимизатор использует несколько алгоритмов, включая дифференциальную эволюцию, и продается в виде портативного кода на С++, пригодного для UNIX/LINUX, DOS и Windows. TS-Evolve фирмы Ruggiero Associates (800-211-9785) дает пользователям TradeStation возможность провести полноценную генетическую оптимизацию. Evolver фирмы Palisade Corporation (800-432-7475) представляет собой многоцелевой генетический оптимизатор для таблиц MS Excel; с ним поставляется DLL-библиотека, которая может быть использована с любой программой на любом языке, способной вызывать функции DLL. Так, программа GENESIS, написанная Джоном Грефенштеттом (John Grefenstette) из Naval Research Laboratory, представляет собой самостоятельный инструмент для исследователей и доступна в виде исходных кодов. Хотя генетические оптимизаторы могут включаться в состав пакетов моделирования для химиков и в другие специализированные продукты, они до сих пор не включены как стандартный компонент в программные пакеты для трейдеров.


  • Страницы:
    1, 2, 3, 4, 5, 6