Разделы



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

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

КАК ПОТЕРПЕТЬ НЕУДАЧУ ПРИ ОПТИМИЗАЦИИ

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

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

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

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

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

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

п»ї

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

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

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

R  =  SQRT   (   1.   -   (    (N -   Р )   /   (N  -   1.)    )   *   (1.   -  RC**2)    )

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

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