Джеффри Оуэн Кац и Донна Л. МакКормик. Энциклопедия торговых стратегий

FXWizard

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

Представьте себе нечто, способное решить все проблемы, связанные с созданием человека — нечто, представляющее собой вершину всех мето- дов оптимизации и решения задач. Что это такое? Известный процесс эволюции. Генетические оптимизаторы пытаются использовать часть этой невероятной способности к решению задач при помощи грубой симуляции эволюционного процесса. По параметрам общей эффективности и размаха решаемых программ никакой многоцелевой оптимизатор не превосходит хорошо написанный генетический оптимизатор.
Генетические оптимизаторы являются стохастическими в том смысле, что они используют в работе случайные числа. Может показаться не- вероятным, что бросание кубиков помогает решать задачи, но при правильном подходе это так! Кроме случайности генетические оптимизаторы используют отбор и комбинирование. Продуманная интеграция слу- чая, отбора и комбинации — причина успешной работы генетических оптимизаторов. Полное обсуждение генетических алгоритмов, служащих основой для генетических оптимизаторов, приведено во втором разделе книги.
Генетические оптимизаторы могут иметь множество ценных характеристик, например скорость (особенно при наличии риска «комбинаторного взрыва»). Генетический оптимизатор работает на несколько порядков быстрее, чем оптимизатор с лобовым подходом, особенно при нали- чии множества правил или значений параметров. Это происходит потому, что, как и при оптимизации под управлением пользователя, идет фокусировка на важных участках пространства решений, а тупики пропускаются. В противоположность оптимизации под управлением пользователя селективный поиск достигается без вмешательства человека.
Генетические оптимизаторы могут быстро решать сложные задачи и более устойчивы, чем другие подходы, к эффектам локальных макси- мумов или (минимумов) на поверхности значений функции пригодности (или затрат). Вычислительные методы плохи тем, что всегда ведут к ближайшей вершине или впадине, не обращая внимания на более высокие вершины или впадины, которые могут существовать в других местах. При этом хороший генетический оптимизатор часто находит луч- шее глобальное решение — великолепный результат при сложной форме поверхности.
Еще одна характеристика генетической оптимизации — то, что она хорошо работает на поверхностях с разрывами, плоскими участками и другими сложными неупорядоченными формами. Генетический метод делит это преимущество с другими неаналитическими методами — лобо- вым подходом, управлением пользователем и пр. При помощи генетического оптимизатора можно найти решения, максимизирующие такие показатели, как чистая прибыль, доходность, отношение Шарпа и подобные, для которых поверхность функции пригодности имеет сложную форму, с трудом поддающуюся анализу. Это не означает, что такой оптимизатор не применяется для задач с простыми поверхностями — уступая в скоро- сти вычислительным методам, генетический оптимизатор защищен от вли- яния ловушек «локальных экстремумов».
В общем, генетические оптимизаторы — предпочтительные методи- ки для систем с множеством правил или параметров; они особенно по- лезны, если необходимо найти глобальное решение или работать с весь- ма сложными (прерывистыми и недифференцируемыми) функциями пригодности или расходов. Хотя специализированные оптимизаторы могут обгонять генетические на избранных задачах, для многоцелевой оптимизации генетический метод — один из самых мощных доступных инструментов.
На что похож генетический оптимизатор в работе? Мы перевели на C++ код для системы с пересечением скользящих средних, упоминавшейся ранее, чтобы при помощи C-Trader toolkit решать задачу оптимизации двух параметров — LenA и LenB. LenA, период первой скользящей средней, исследовался при значениях от 2 до 50, так же как и LenB — период второй скользящей средней. Оптимизация велась по показателю общей прибыли, чтобы можно было напрямую сравнивать результаты с полученными ранее методом оптимизации с лобовым подходом. Ниже приведен код для системы пересечения скользящих средних, написанный на C++:

static void Model (float *parms, float *dt, float *opn, float *hi, float *lo, float *cls, float *vol, float *oi,
int nb, // // // // // // // // // // // // //
TRDSIM &ts, float *eqcls) {
Выполнение тестирования всех моделей скользящих средних, используя следующие аргументы:
parms dt
орn hi

cls
vol oi nb
ts eqcls
— набор [1..MAXPRM] параметров
- набор [l..nb] дат в формате ГГММДД — набор [1..nb] цен открытия
- набор [l..nb] максимальных цен
— набор [1..nb] минимальных цен
- набор [1..nb] цен закрытия
— набор [1..nb] значений объема
— набор [1..nb] значений открытого интереса - количество дней в наборе данных
— ссылка на класс торгового симулятора
— набор [1..nb] уровней капитала по ценам закрытия
//объявляем локальные переменные и макрофункции
static int cb, LenA, LenB;
static float MavgA[MAXBAR+1] , MavgB[MAXBAR+1] ;
#define CrossesAbove(a,b) ( (a[cb]>=b[cb])&&{a[cb-l]<b[cb-l])) #tdefine CrossesBelow(a,b) ((a[cb]<b[cb])&&(a[cb-l]>=b[cb-l]))
//очищаем счет и снимаем неисполненные приказы ts.clear{);
//считаем скользящие средние, используя серии (наборы} функций LenA = parms[1];
LenB = parms[2];
Averages(MavgA, cls, LenA, nb);//Первая скользящая средняя Averages(MavgB, cls, LenB, nb);//Вторая скользящая средняя
//проходим через дни, чтобы моделировать реальную торговлю for (cb = 1; cb <= nb; cb++) {
//не открываем позиций в прошлом периоде
if(dt[cb] < 910302) { eqcls[cb] = 0.0; continue; }
//выполняем ожидающие ордера и считаем кумулятивный капитал ts.update(opn[cb], hi[cb], lo [cb], cls [cb], cb) ;
eqcls[cb] = ts.currentequity(EQ_CLOSETOTAL);
//правило торговой системы пересечения двух скользящих средних if (CrossesAbove(MavgA, MavgB)) ts.buyopen('A', 1);
if (CrossesBelow(MavgA, MavgB)) ts.sellopen('B', 1);


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

Таблица 3—2. Лучшие 25 решений при генетической оптимизации с использо- ванием С-Trader toolkit

attachment.php
 

Вложения

  • tab3_2.jpg
    tab3_2.jpg
    73,6 КБ · Просмотры: 91
Последнее редактирование:

FXWizard

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

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

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

Анализ (в смысле .«математический» или «комплексный» анализ) является расширением классического исчисления. Аналитические оптимиза- торы используют наработанные методы, в особенности методы дифференциального исчисления и исследования аналитических функций для решения практических задач. В некоторых случаях анализ дает прямой (без перебора вариантов) ответ на задачу оптимизации. Так происходит при использовании множественной регрессии, где решение находится с помощью нескольких матричных вычислений. Целью множественной регрессии является подбор таких весов регрессии, при которых миними- зируется сумма квадратов ошибок. В других случаях требуется перебор вариантов, например невозможно определить напрямую веса связей в нейронной сети, их требуется оценивать при помощи алгоритма обратного распространения.
Многие методы перебора данных, используемые для решения многовариантных проблем оптимизации, применяют в том или ином виде метод сопряженных градиентов (максимальной крутизны). В общем виде оптимизация методом сопряженных градиентов ведется следующим об- разом. Некоторым образом выбирается точка на поверхности функции пригодности. Вектор градиента поверхности в данной точке оценивается с помощью дифференцирования функции пригодности по каждому из параметров. Полученный градиент указывает направление максимального роста функции пригодности в n-мерном пространстве параметров. В направлении градиента делаются шаги до тех пор, пока функция пригодности не перестанет расти.
Затем расчет градиента повторяется, движение начинается в новом направлении, и так раз за разом, пока не будет достигнута вершина, т.е. точка с нулевым градиентом.
Для применения оптимизации по методу сопряженных градиентов необходимо разработать правила определения размеров каждого шага, а также правила корректировки направления, задаваемого градиентом. Примитивные версии исходят из того, что существует поверхность функ- ции пригодности (приближаемая сходящимися степенными рядами), где имеются «холмы», по которым следует подниматься. Более продвинутые версии идут далее, исходя из того, что функция пригодности может быть неплохо приближена квадратичной формой. Если функция пригодности соответствует этому предположению, то найти решение можно гораздо быстрее. Впрочем, если поверхность функции пригодности имеет сильно изрезанную форму с впадинами и выступами неправильных очертаний, квадратичные формы часто не могут дать хорошего приближения. В та- ких случаях сложные методы могут вовсе не находить решения или по крайней мере работать гораздо медленнее.
Тем не менее низкая скорость оптимизации не является главным препятствием на пути аналитика. Гораздо сложнее справиться с так называемой проблемой локальных решений. Почти все аналитические методы, будь они простыми или сложными, легко попадаются в ловушку локальных максимумов; при наличии множества впадин и выступов на поверхности они не могут найти наилучшее глобальное решение. Метод наименьших квадратов, моделирование нейронными сетями дают поверхности функции пригодности неправильной формы с большим количеством локальных экстремумов. Данные поверхности чрезвычайно сложны для стандартных аналитических методов, таких как метод сопряженных градиентов или алгоритм обратного распространения, применяемый в нейронных сетях. Впрочем, местные максимумы можно обойти, соединив аналитический метод с генетическим. Для поверхностей, которые можно исследовать аналитическими методами, такой двойной алгоритм может оказаться наилучшим решением; он позволит быстро и с большой точностью найти глобальные оптимумы.
Некоторые поверхности функции пригодности просто не поддаются аналитической оптимизации; как правило, это поверхности, имеющие плоские участки или разрывы в областях, где следует искать решение. Плоскости не имеют градиентов, следовательно, нельзя выбрать направление для движения. В точках разрыва также нельзя определить градиент и направление движения. Даже если метод и не использует градиенты напрямую, эта информация все равно потребуется алгоритму оптимизации. К несчастью, многие функции пригодности, важные для трейдеров, — включая все функции, связанные с общей прибылью, максимальными падениями ка- питала, долей выгодных сделок, отношением риска/прибыли и подобны- ми показателями — страдают наличием плоскостей и разрывов. Следовательно, их нельзя исследовать методами аналитической оптимизации.
Хотя обсуждение было в основном посвящено максимизации функции пригодности, все вышесказанное применимо и к минимизации расходов. Любая техника максимизации может быть применена для минимизации, и наоборот: умножьте функцию пригодности на — 1 для получения эквивалентной функции расходов; умножьте функцию расходов на - 1, и получится функция пригодности. Если вам нравится алгоритм минимизации, но нужно применять максимизацию; можно использовать этот фокус вместо перекодировки алгоритма оптимизации.
 

FXWizard

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

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

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

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

FXWizard

Гуру форума
Небольшие выборки

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

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

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

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

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

FXWizard

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

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

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

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

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

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

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

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

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

Поскольку будущее еще не наступило, нельзя дать оптимизатору ту задачу, которую предстоит решать системе в процессе реальной торгов- ли. Следовательно, требуется дать оптимизатору задание, решение которого было бы применимо к реальной торговле с максимальной степенью приближенности. Один из способов достичь этого состоит в том, чтобы использовать данные из прошлого, включающие характеристики, которых можно ожидать в будущем, т.е. бычьи и медвежьи периоды, периоды с трендами и без них и даже обвалы цен. Кроме того, данные должны быть максимально свежими для отражения текущих процессов на рынке. Такую выборку можно считать представительной.
Помимо репрезентативности выборка должна быть достаточно велика. Большие выборки снижают вероятность возникновения артефактов или случайных результатов системы при оптимизации. Эффективность торговой системы, оптимизированной на большой выборке, не будет сильно отличаться от ее эффективности в реальной торговле.
Впрочем, иногда приходится делать выбор между размером выборки и степенью ее репрезентативности. Увеличение размера выборки приводит к использованию старых ценовых данных, значимость которых для представления современного состояния рынка весьма сомнительна. В некоторых случаях существует четкая грань, за которой данные теряют значимость. Например, фьючерсы на индекс S&P 500 начали обращение на рынке в 1983 г., что оказало структурное влияние на рынок в целом. Это наблюдение становится менее важным при работе с внутридневной ценовой историей, где за относительно короткий период времени можно собрать данные о десятках и сотнях тысяч баров, не углубляясь в прошлое слишком далеко.
В конце напоминаем, что при проведении оптимизаций и тестов следует учитывать количество сделок, проведенных системой. Как и объем выборок данных, количество сделок для достоверности должно быть значительным. Если система совершает всего несколько сделок, то, несмотря на количество точек данных в выборке, результат может оказаться следствием случайностей или артефактов!
 

FXWizard

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


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

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

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

FXWizard

Гуру форума
АЛЬТЕРНАТИВЫ ТРАДИЦИОННОЙ ОПТИМИЗАЦИИ

Существуют два альтернативных традиционной оптимизации подхода — это оптимизация с прогонкой вперед и самоадаптивные системы. Обе эти методики имеют то преимущество, что практически все тестирование проводится вне (пределов выборки. Оцените результативность системы, проведите несколько статистических тестов, постройте график изменения капитала — и система готова к торговле. Все чисто и математически безукоризненно. Про коррекцию коэффициентов корреляции, множественные тесты, чрезмерную подгонку системы под ценовые данные и другие проблемы можно просто забыть. Более того, с современной компьютерной техникой модели с прогонкой вперед и самоадаптивные модели становятся практичными и даже несложными.
Принцип оптимизации, или тестирования с прогонкой вперед, состоит в эмуляции шагов, действительно производимых системой, требующей периодической оптимизации. Метод работает следующим образом. Оп- тимизируйте систему на точках данных от 1 до М. Затем проведите виртуальную торговлю в точках данных от М + 1 до М + К. Повторно оптимизируйте систему на точках от К + 1 до К + М. Затем промоделируйте торговлю в точках от (К + М) + 1 до (К + М) + К. Пройдите таким обра- зом через всю выборку данных. Как следует из примера, сначала оптимизируется система, потом моделируется торговля. Через некоторое время система снова оптимизируется, и торговля возобновляется. Эта последовательность гарантирует, что торговля всегда происходит на данных, бо- лее поздних, чем данные, использовавшиеся для оптимизации. Практически, все сделки происходят на данных вне пределов выборки. При тестировании с прогонкой вперед М — окно оптимизации (или исторического обзора), а К— интервал повторной оптимизации.
Самоадаптивные системы работают подобным образом, но в этом случае оптимизация или адаптивный процесс — часть системы, а не тестовой программы. Как только поступает новая точка данных, самоадаптивная система обновляет свое внутреннее состояние (правила или параметры) и затем принимает решение относительно следующей точки данных. При поступлении следующих данных выполняются принятые решения, и процесс повторяется. Внутренние изменения, при помощи которых система изучает рынок и адаптируется к нему, могут происходить не в каждой точке, а, например, в некоторые фиксированные моменты времени.
Трейдер, планирующий использовать самоадаптивные системы, должен иметь мощную, основанную на компонентах платформу с использованием развитого языка программирования (C++, Object Pascal или Visual Basic) с возможностью доступа к библиотекам и компонентам третьих производителей. Эти компоненты рассчитаны на встраивание в создаваемые пользователем программы, включая специальные программы адаптивных систем. Чем больше компонентов доступно, тем меньше работы:
как минимум трейдер, пытающийся использовать самоадаптивные системы, должен иметь доступ к генетическому оптимизатору и симулятору, которые могут быть легко встроены в модель. Адаптивные системы будут рассмотрены в следующих главах, показывая, как этот метод работает на практике.
Несомненно, что системы с прогонкой вперед и самоадаптивные системы приобретут большую популярность в будущем с ростом эффективности рынков и сложности работы на них, а также с расширением доступности для рядовых трейдеров коммерческого программного обеспечения на их основе.
 

FXWizard

Гуру форума
ИНСТРУМЕНТЫ И ИНФОРМАЦИЯ ДЛЯ ОПТИМИЗАЦИИ

Аэродинамика, электроника, химия, биохимия, планирование и бизнес — это только некоторые из областей, где используется оптимизация. Поскольку оптимизация важна для такого количества приложений, в этом направлении ведется множество исследований, создано множество инструментов и накоплено много информации. Где же можно найти эту ин- формацию? Какие существуют доступные продукты и инструменты?
Оптимизаторы с лобовым подходом обычно встроены в программные пакеты, нацеленные на другие задачи, и редко доступны по отдельности. В мире программ для трейдинга такие оптимизаторы встроены в TradeStation и SuperCharts фирмы Omega Research (800-292-3453), Excalibur фирмы Futures Truth (828-697-0273) и MetaStock фирмы Equis International (800-882-3040). Если вы пишете собственные программы, при помощи не- сложного программирования написать алгоритм лобовой оптимизации можно безо всяких дополнительных библиотек. Программы и алгоритмы для оптимизации с лобовым подходом также полезны при проведении оптимизации под управлением пользователя.
Хотя иногда генетические оптимизаторы бывают встроены в специализированные программы, они чаще встречаются в виде компонентов или библиотек классов, дополнений к различным пакетам или самостоятельных исследовательских инструментов. Примером библиотеки классов с учетом компонентного использования может служить OptEvolve, генетический оптимизатор на C++ фирмы Scientific Consultant Services (516-696- 3333): этот многоцелевой генетический оптимизатор использует несколько алгоритмов, включая дифференциальную эволюцию, и продается в виде портативногокоданаC++,пригодногодля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, представляет собой самостоятельный инструмент для исследователей и доступна в виде исходных кодов. Хотя генетические оптимизаторы могут включаться в состав пакетов моделирования для химиков и в другие специализированные продукты, они до сих пор не включены как стандартный компонент в программные пакеты для трейдеров.
О генетических оптимизаторах существует достаточно много доступ- ной информации. Генетические алгоритмы обсуждаются в ряде книг, журналов и изданий, на сайтах новостей в Интернете. Хороший анализ проблемы дан в книге Девиса «Handbook of Genetic Algorithms» (Davis, 1991). Прайсом и Стормом (Price и Storm, 1997) описан алгоритм для метода «дифференциальной эволюции», который оказался чрезвычайно мощным инструментом для задач оптимизации с рациональными параметрами. Генетические алгоритмы сейчас являются темой многих научных изданий и конференций. Оживленные дискуссии ведутся на страницах ряда новостных сайтов в Интернете, из которых наиболее примечателен comp.ai.genetic.
Основы метода моделирования отжига приведены в книге Пресса и др. «Numerical Recipes for С» (Press et al., 1992) вместе с функциями для напи- сания оптимизаторов с этим алгоритмом для комбинаторных задач и за- дач с рациональными параметрами. Книга Мастерса «Neural, Novel & Hybrid Algorithms for Time Series Prediction» (Masters, 1995) также содер- жит рассмотрение задач моделирования отжига, причем коды представ- лены на CD-приложении к книге. Как и генетическая оптимизация, моде- лирование отжига также является темой многих научных исследований, докладов на конференциях, статей и дискуссий в Интернете.
Алгоритмы весьма сложных методов — сопряженных градиентов и переменной метрики — можно найти в исследованиях Пресса и др. «Numerical Recipes for С» (Press et al., 1992) и «Numerical Recipes» (Press et al., 1986). Большой ассортимент процедур аналитической оптимизации содержится в уже упомянутом труде Мастерса «Neural, Novel & Hybrid Algorithms for Time Series Prediction» (Masters, 1995) и на прилагаемом к нему диске. Дополнительные процедуры для аналитической оптимизации доступны в составе библиотек IMSL и NAG (Visual Numerics и Numerical Algorithms Corp. соответственно) и в составе оптимизационного набора для MA TLAB (многоцелевого математического пакета от Math W orks, 508-647-7000, очень популярного в среде занимающихся финансовым планированием). Кроме того, в MS Excel встроен Solver — аналитический оп- тимизатор, основанный на методе Ньютона и сопряженных градиентах.
Как источник общей информации об оптимизации при разработке торговых систем можно порекомендовать книгу Роберта Пардо «Design, Testing and Optimization of Trading Systems» (Robert Pardo, 1992). Кроме прочего, в книге приведены примеры прибыльной оптимизации, избежания чрезмерной подгонки системы под ценовые данные и проведения тестов с прогонкой вперед.
 

FXWizard

Гуру форума
КАКОЙ ОПТИМИЗАТОР ПОДХОДИТ ВАМ?

Как минимум любому трейдеру следует иметь оптимизатор с возможнос- тью проведения лобовой оптимизации и оптимизации под управлением пользователя. Если вы используете для разработки систем TradeStation или Excalibur, эти оптимизации вам уже доступны. С другой стороны, если вы используете Excel, Visual Basic, C++ или Delphi, вам придется разра- батывать собственный оптимизатор. Как показано выше, это достаточно просто, и для многих проблем лобовая оптимизация или оптимизация под управлением пользователя — лучший подход.
Если для разработки вашей системы требуются более продвинутые методы, хороший выбор — генетический оптимизатор. При помощи ло- бового подхода и генетического оптимизатора можно решить практичес- ки любую задачу. В нашей работе мы почти не используем других инстру- ментов! Пользователям TradeStation придется по вкусу TS-Evolve, пред- лагаемый Ruggiero Associates. Evolver фирмы Palisade Corporation хорош для пользователей Excel и Visual Basic. При разработке систем на C++ или Delphi выбирайте C++ Genetic Optimizer, предлагаемый Scientific Consultant Services, Inc. Генетический оптимизатор — наиболее универ- сальный инструмент среди оптимизаторов: даже задачи, более эффектив- но решаемые другими методами, могут быть медленно, но верно решены хорошим генетическим алгоритмом.
А если вы все же хотите испытать аналитическую оптимизацию или симуляцию отжига, мы рекомендуем воспользоваться книгой Пресса и др. «Numerical Recipes in С» (Press et al., 1992) и вышеупомянутым тру- дом Мастерса (Masters, 1995) как источниками и информации, и кодов. Пользователи Excel могут попробовать также встроенный Solver.
 

FXWizard

Гуру форума
ГЛАВА 4 Статистика

Многие разработчики торговых систем не оценивают статистическую значимость результатов оптимизации. Это достаточно неприятно, учитывая, что статистика принципиально важна при оценке поведения торговых систем. Как, например, можно судить о причине успеха системы — реален ли он или основан на артефакте либо на «удачной» выборке данных? Задумайтесь об этом, ведь следующая выборка может быть не очередным тестом, а реальной торговлей. Если поведение системы определялось случаем, можно быстро лишиться капитала. Нужно найти ответ на следующий очень важный вопрос: высокая эффективность системы выз- вана обнаружением по-настоящему оптимальных параметров или является результатом «подгонки» под исторические данные? Мы встречали много разработчиков систем, которые отказываются от любой оптимизации вообще по причине иррационального страха подгонки, не зная, что статистический анализ помогает бороться с этой опасностью. В общем, статистика может помочь трейдеру оценить вероятность того, что система в будущем будет работать так же прибыльно, как и в прошлом. В этой книге мы представили результаты статистического анализа везде, где это, по нашему мнению, полезно и уместно.
Среди методов статистического анализа, наиболее полезных трейдеру, можно назвать проверку по критерию Стьюдента, корреляционный анализ и некоторые виды непараметрического статистического анализа.
Проверка по критерию Стьюдента необходима в тех случаях, когда надо определить вероятность того, что среднее или сумма некоторого ряда независимых значений (полученных из выборки) больше или меньше некоторого числа или находится в некоторых пределах от него. Например, проверка по критерию Стьюдента может вскрыть вероятность того, что общая прибыль ряда сделок (каждая с индивидуальными показателями прибыли/убытка) может превысить некоторый порог в результате простой случайности. Эти критерии также полезны для выбора периодичности данных, например при вычислении дневного или месячного дохода за период в несколько лет. Кроме того, проверка по критерию Стьюдента помогает установить границы производительности системы в будущем
(если предположить, что на рынке не ожидается структурных изменений), что позволит заявить, например, следующее: «вероятность того, что в будущем средняя прибыль составит от х до у, более 95%».
Корреляционный анализ помогает определить степень взаимосвязи двух различных переменных. При использовании для принятия решений он также помогает определить, являются ли связи «статистически значимыми» или просто случайными. С помощью таких методов можно определить доверительные интервалы границ «реальной» корреляции, т.е. корреляции по выборке данных за некоторый период времени. Корреляционная статистика важна при поиске переменных, которых можно использовать как прогностические показатели, например, в нейронной сети или в системе уравнений регрессии.
Корреляционный анализ и непараметрические статистические методы (критерий наличия «чередующихся полос» в ряду данных) полезны при оценке зависимости значений ряда данных от предыдущих значений в ряду
(серийной корреляции). Например, действительно ли выгодные сделки следуют в виде полос или групп, между которыми сплошные убытки? Критерии наличия «полос» позволяют определить, что же на самом деле происходит. Если в системе есть серийная корреляция, ее можно использовать для перенастройки системы. Например, если в системе выражены периоды прибылей и убытков, можно разработать метасистему, которая будет проводить сделку за сделкой, пока есть прибыли, и прекращать торговлю после первой убыточной сделки, уходя в «виртуальную торговлю» до наступления новой прибыльной полосы. Если полосы реально существуют, то подобная стратегия может значительно улучшить поведение системы.
 

FXWizard

Гуру форума
ЗАЧЕМ НУЖЕН СТАТИСТИЧЕСКИЙ АНАЛИЗ ПРИ ОЦЕНКЕ ТОРГОВЫХ СИСТЕМ?

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

ВЫБОРКА

Для статистики, а следовательно, и для нашего понимания, фундаменталь- ным является понятие выборки — извлечения образца данных из некоей обширной, абстрактно определимой популяции. Основная идея статисти- ческого анализа состоит в том, чтобы использовать выборку для получе- ния заключения о популяции данных. При работе с торговыми моделями под популяцией обычно понимается вся совокупность данных (прошлых, настоящих и будущих) для определенного рыночного инструмента (на- пример, все 5-минутные штрихи на все фьючерсы S&P 500), все сделки (прошлые, настоящие и будущие), совершенные данной системой или по данному инструменту, а также все прибыли — годовые, месячные и даже дневные. Например, все квартальные прибыли IBM — пример популяции данных. Выборка может представлять собой специфические историчес- кие данные, используемые при разработке или тестировании системы, данные о проведенных сделках или о месячной прибыли, принесенной этими сделками.
При создании торговой системы разработчик обычно определяет вы- борку данных из моделируемой популяции. Например, чтобы разработать систему для торговли S&P 500 на основе гипотезы: «Если вчерашняя цена закрытия выше, чем цена закрытия три дня назад, то завтра рынок будет подниматься», разработчик берет выборку цен на конец дня по S&P 500, простирающуюся назад, например, на 5 лет. Остается надеяться, что выборка репрезентативна, т.е. отражает реальное типичное поведение рынка, и в будущем (или на другом, неизвестном образце данных) система будет работать не хуже, чем на использованном при разработке образце. Чтобы подтвердить или опровергнуть результаты оптимизации, разработчики системы проводят тестирование на одном или нескольких периодах вне выборки, т.е. на образцах данных, не использовавшихся для разработки или оптимизации системы. Например, в нашем случае разработчик использует данные с 1991 г. по 1995 г. для разработки и настройки системы и резервирует данные за 1996 г. для тестирования вне пределов выборки. Очень рекомендуется заранее зарезервировать один или несколько периодов для подобного исследования.

Одна из проблем с выборкой образцов из популяций финансовых данных заключается в сложной и переменчивой природе объекта: завтрашний рынок может быть не похож на сегодняшний. Иногда эти изменения заметны, и их причины могут быть легко определены. Например, поведение индекса S&P резко изменилось в 1983 г. в результате введения фьючерсов и опционов на этот индекс. В таких случаях можно расценить изменение, как событие, создавшее две отдельные популяции: S&P до и после 1983 г. Выборка, взятая из более раннего периода, не будет репрезентативна для более позднего, поскольку она взята из другой популяции! Конечно, это экстремальный случай. Гораздо чаще структурные изменения рынка возникают ввиду слабых влияний, которые порой невозможно определить, особенно заранее. В некоторых случаях рынок может остаться принципиально тем же, но фазы процессов, которые на нем проходят, могут быть различными; неосмотрительно взятая выборка может принадлежать к другой фазе и быть репрезентативна только для нее, но не для рынка в целом. Как же можно определить, действительно ли выборка, использованная для тестирования, относится к тому же периоду, что и данные, на которых будет идти торговля? Если не прыгать в машину времени и не тестировать будущее, то не существует достоверного способа определить, не случится ли завтра на рынке ломающая системы метаморфоза. Множественные тесты вне пределов выборки могут дать некоторую гарантию устойчивости системы, поскольку они подтвердят, что система, по крайней мере в нескольких периодах, работала более или менее стабильно. При наличии репрезентативной выборки можно сделать статистически достоверные выводы о той популяции, из которой выбраны образцы данных. Статистика не может определить будущие фундаментальные изменения рынка.
 

FXWizard

Гуру форума
ОПТИМИЗАЦИЯ И ПОДГОНКА ПОД ИСТОРИЧЕСКИЕ ДАННЫЕ

Еще один аспект разработки торговых систем состоит в оптимизации, т.е. улучшении эффективности систем при помощи подбора таких значений параметров, при которых система дает наилучший результат на выборке данных. Если система не работает при тестировании на данных вне пределов выборки или на реальном рынке, говорят, что при оптимизации имела место подгонка под исторические данные. Впрочем, подгонка бы- вает полезной и вредной. Полезная подгонка — это случай, когда модель подогнана под всю популяцию (т.е. под достаточно большую и представительную) и при этом отражает все достоверные характеристики реальной популяции в системе. Подгонка вредна, если система соответствует только некоторым случайным характеристикам, не обязательно отражающим свойства всей популяции.
Разработчики недаром боятся вредной подгонки, т.е. ситуации, когда параметры, оптимизированные на данной выборке, не работают на популяции в целом. Если выборка была небольшой или не представительной, вероятнее всего, система будет работать хорошо на данной выборке и из рук вон плохо на другой или, что еще опаснее, приведет к потере денег в реальной торговле. Чем больше выборка данных, тем меньше эта опасность: вероятность вредной подгонки снижается, а полезной — возраста- ет. Все рассматриваемые методы статистики отражают это явление, даже специально предназначенные для оптимизации. Достоверно известно, что чем больше параметров подвергается оптимизации, тем больше вероятность того, что высокие результаты системы будут достигнуты чисто случайным сочетанием. Если же результаты статистического анализа удовлетворительны, и тест основывался на достаточно большой выборке данных, то вероятность случайного результата снижается, и даже полученный при оптимизации множества параметров результат вполне может быть реальным и значимым.
Некоторые возражают, что размер не имеет значения, т.е. размер выборки и количество проведенных сделок не имеют ничего общего с риском избыточной оптимизации, и что большая выборка не снимает угрозы вредной подгонки под исторические данные. Это неверно и математически, и интуитивно. Никто не стал бы больше доверять системе, которая провела 3 — 4 сделки за десятилетний период, чем системе, которая провела более тысячи достаточно прибыльных сделок. Представьте себе модель линейной регрессии, в которой прямую линию подгоняют к ряду то- чек. Если точек всего две, то вне зависимости от их положения линию всегда можно «подогнать» идеально. Если точек три, то дело усложняется. Если же точек действительно много, то проблема становится еще сложнее, если только расположение точек не содержит некоего реального линейного распределения.
Пример с линейной регрессией показывает, что вредная подгонка за- трудняется с ростом объема данных. Сравните две торговые системы: одна провела 2 сделки с прибылью $100 в каждой и стандартным отклонением $100; другая — 1000 сделок с такими же средним и стандартным отклоне- ниями. При статистической оценке система, проведшая 1000 сделок, будет гораздо «статистически значимее», чем система, проведшая 2 сделки.
В моделях множественной линейной регрессии при увеличении количества параметров регрессии (бета-весов) по отношению к размеру выборки увеличивается степень вредной подгонки и уменьшается достоверность результатов модели. Другими словами, чем выше степень под- гонки под исторические данные, тем сложнее добиться статистической значимости. Исключением является случай, когда повышение результативности модели, вызванное подгонкой, компенсирует потерю значимости при добавлении параметров. Оценка степени ожидаемого снижения корреляции при использовании данных вне выборки может производиться напрямую, исходя из объема данных и количества параметров: корреляция снижается с увеличением числа параметров и увеличивается с ростом объема данных. В общем, существуют достоверные математические доказательства того, что вероятность вредной подгонки повышается, если количество оптимизируемых параметров велико по отношению к объему используемой выборки данных. Фактически, когда n (размер выборки) стремится к бесконечности, вероятность того, что подгонка параметров будет непредставительной для данной популяции, стремится к нулю. Чем больше параметров оптимизируется, тем большая требуется выборка данных. На языке статистики это звучит так: оптимизируемые параметры используют доступные степени свободы.
Все это ведет к заключению, что чем больше выборка, тем более вероятность того, что найденные параметры системы будут представительным отражением характеристик рынка в целом. Маленькая выборка, скорее всего, будет непредставительной: ее кривые вряд ли будут соответствовать долговременным, устойчивым характеристикам рынка. Любая модель, построенная с использованием маленькой выборки, может быть эффективной только по чистой случайности. Будет ли подгонка «полезной» или «вредной», во многом зависит от отражения в ней случайных ценовых движений или реальных рыночных процессов, что, в свою очередь, зависит от представительности выборки. Статистика полезна, поскольку позволяет принять в расчет при оценке системы степень подгонки.
При работе с нейронными сетями опасения относительно излишнего обучения, или генерализации, соответствуют опасениям относительно излишней подгонки под исторические данные. Если выборка достаточно объемиста и представительна, повышается вероятность отражения в най- денных оптимальных параметрах реальных характеристик рынка, что полезно для реальной работы системы. Если же выборка мала, модель практически гарантированно будет настроена на особенности выборки, но никак не на особенности рынка в целом. Для нейронных сетей успех генерализации означает то же, что для других систем, — устойчивость в будущем и так же сильно зависит от размеров выборки, использованной для обучения сети. Чем больше выборка или чем меньше количество ве- сов связей (т.е. параметров), тем выше вероятность удачной генерализа- ции. Это также можно доказать математически путем разбора несложных примеров.
Как и в случае с регрессией, при разработке нейронной сети можно произвести оценку коррекции коэффициента корреляции (т.е. показателя, обратного генерализации). Фактически, нейронная сеть представляет собой систему уравнений множественной регрессии, хотя и нелинейных, и корреляция выходных значений сети может рассматриваться как множественный коэффициент корреляции. Множественная корреляция между выходными и целевыми значениями может быть скорректирована для прогнозирования поведения системы на данных вне выборки. Такая скорректированная множественная корреляция должна постоянно использоваться для определения того, является ли эффективность нейронной сети случайной или она вызвана обнаружением реальной закономерности в ценовом поведении рынка. Формула коррекции коэффициента множе- ственной корреляции приведена ниже:

RC = SQRT (1.0 - ( (N - 1.0) / (N - Р) ) * (1.0 - R*R) )

Формула приведена в стиле языка FORTRAN. Здесь SORT означает квадратный корень; N — количество точек данных или фактов в случае нейронной сети; Р— количество коэффициентов регрессии или (в случае нейронной сети) весов связей; R — некорректированную множественную корреляцию; RC — скорректированную корреляцию. Хотя эта формула строго приложима только к линейной множественной регрессии (для которой, собственно, и разрабатывалась), она неплохо работает с нейронными сетями и может быть использована для того, чтобы оценить, какая часть эффективности системы обусловлена «вредной» подгонкой на данном образце. Эта формула описывает связь между размером выборки, количеством параметров и снижением эффективности результатов. Статистическая коррекция, рассчитываемая по данной формуле, будет использована в главе о входах систем на нейронных сетях.
 

FXWizard

Гуру форума
РАЗМЕР ВЫБОРКИ И РЕПРЕЗЕНТАТИВНОСТЬ

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

СТАТИСТИЧЕСКАЯ ОЦЕНКА СИСТЕМЫ

Разобравшись с некоторыми основными положениями, рассмотрим применение статистики при разработке и оценке торговых систем. Примеры, приведенные ниже, основаны на системе, которая была оптимизирована на некоторой выборке данных и затем тестировалась вне пределов выборки. Оценка на данных вне пределов выборки будет рассмотрена перед оценкой на основе выборки, поскольку ее статистический анализ проще (и аналогичен анализу неоптимизированной системы), в нем не требуются поправки на оптимизацию или множественные тесты. Система представляет собой модель торговли индексом S&P 500, основанную на лунном цикле, и была опубликована нами ранее (Katz, McCormick, июнь 1997). Код для системы в формате TradeStation приведен ниже:

DefineDLLFunc:"SCSIWA.DLL",LONG,"SA_MoonPhaseDate",LONG,LONG; Inputs: Ll(0);
Vars: FullMoonDate(O) , NewMoonDate(0) , Trend(O);
{ Функция возвращает дату следующей полной или новой луны ) FullMoonDate = SA_MoonPhaseDate (Date[5], 2);
NewMoonDate = SA_MoonPhaseDate (Date[5], 0) ;
Value1 = 0;
If (Date < FullMoonDate) And (Date Tomorrow >= FullMoonDate)
Then Valuel = 1; (Полная луна сегодня вечером или завтра) Value2 = 0;
If (Date < NewMoonDate) And (Date Tomorrow >= NewMoonDate) Then Value2 = 1; {Новая луна сегодня вечером или завтра]
If Valuel[L1] > 0 Then Buy At Market; If Value2[L1] > 0 Then Sell At Market;
 

FXWizard

Гуру форума
Пример 1: Оценка теста вне пределов выборки

Оценка оптимизированной системы на данных, взятых вне пределов выборки и ни разу не использованных при оптимизации, аналогична оценке неоптимизированной системы. В обоих случаях проводится один тест без подстройки параметров. В табл. 4-1 показано применение статистики для оценки неоптимизированной системы. Там приведены результаты проверки на данных вне пределов выборки совместно с рядом статистических показателей. Помните, что в этом тесте использованы «свежие данные», которые не применялись как основа для настройки параметров системы.
Параметры торговой модели уже были определены. Образец данных для оценки вне пределов выборки охватывает период с 1.01.1995 г. по 1.01.1997 г.; модель тестировалась на этих данных и совершала смоделированные сделки. Было проведено 47 сделок. Этот набор сделок можно считать выборкой сделок, т.е. частью популяции смоделированных сделок, которые система совершила бы по данным правилам в прошлом или будущем. Здесь возникает вопрос по поводу оценки показателя средней прибыли в сделке — могло ли данное значение быть достигнуто за счет чистой случайности? Чтобы найти ответ, потребуется статистическая оценка системы.
Чтобы начать оценку системы, для начала нужно рассчитать среднее
в выборке для n сделок. Среднее здесь будет просто суммой прибылей/ убытков, поделенной на n (в данном случае 47). Среднее составило $974,47

Таблица 4—1. Сделки вне выборки данных S&P 500, использованные для тестирования модели на лунном цикле

attachment.php


за сделку. Стандартное отклонение (изменчивость показателей прибылей/ убытков) рассчитывается после этого вычитанием среднего из каждого результата, что дает 47 (n) отклонений. Каждое из значений отклонения возводится в квадрат, все квадраты складываются, сумма квадратов делится на n — 1 (в данном случае 46), квадратный корень от результата и будет стандартным отклонением выборки. На основе стандартного отклонения выборки вычисляется ожидаемое стандартное отклонение прибыли в сделке: стандартное отклонение (в данном случае $6091,10) делится на квадратный корень из n. В нашем случае ожидаемое стандартное отклонение составляет $888,48.
Чтобы определить вероятность случайного происхождения наблюдаемой прибыли, проводится простая проверка по критерию Стьюдента. Поскольку прибыльность выборки сравнивается с нулевой прибыльностью, из среднего, вычисленного выше, вычитается ноль, и результат делится на стандартное отклонение выборки для получения значения критерия t , в данном случае— 1,0968. В конце концов оценивается вероятность получения столь большого t по чистой случайности. Для этого рассчитывается функция распределения t для данных показателей с количеством степеней свободы, равным n— 1 (или 46).

attachment.php


Рисунок 4-1. функция и плотность распределения вероятностей для сделок в пределах выборки.

Программа работы с таблицами Microsoft Excel имеет функцию вычисления вероятностей на основе t-распределения. В сборнике «Numerical Recipes in С» приведены неполные бета-функции, при помощи которых очень легко рассчитывать вероятности, основанные на различных критериях распределения, включая критерий Стьюдента. Функция распределения Стьюдента дает показатели вероятности случайного происхождения результатов системы. Поскольку в данном случае этот показатель был мал, вряд ли причиной эффективности системы была подгонка под случайные характеристики выборки. Чем меньше этот показатель, тем меньше вероятность того, что эффективность системы обусловлена случаем. В данном случае показатель был равен 0,1392, т.е. при испытании на независимых данных неэффективная система показала бы столь же высокую, как и в тесте, прибыль только в 14% случаев.
Хотя проверка по критерию Стьюдента в этом случае рассчитывалась для прибылей/убытков, она могла быть с равным успехом применена, на- пример, к выборке дневных прибылей. Дневные прибыли именно так использовались в тестах, описанных в последующих главах. Фактически, со- отношение риска/прибыли, выраженное в процентах годовых, упомина- емое во многих таблицах и примерах представляет собой t-статистику дневных прибылей.
Кроме того, оценивался доверительный интервал вероятности выигрышной сделки. К примеру, из 47 сделок было 16 выигрышей, т.е. процент прибыльных сделок был равен 0,3404. При помощи особой обратной функции биноминального распределения мы рассчитали верхний и ниж- ний 99%-ные пределы. Вероятность того, что процент прибыльных сделок системы в целом составит от 0,1702 до 0,5319 составляет 99%. В Excel для вычисления доверительных интервалов можно использовать функцию CRITBINOM.
Различные статистические показатели и вероятности, описанные выше, должны предоставить разработчику системы важную информацию о поведении торговой модели в случае, если соответствуют реальности предположения о нормальном распределении и независимости данных в выборке. Впрочем, чаще всего заключения, основанные на проверке по критерию Стьюдента и других статистических показателях, нарушаются; рыночные данные заметно отклоняются от нормального распределения, и сделки оказываются зависимыми друг от друга. Кроме того, выборка данных может быть непредставительной. Означает ли это, что все вышеописанное не имеет смысла? Рассмотрим примеры.
Что, если распределение не соответствует нормальному? При проведении проверки по критерию Стьюдента исходят из предположения, что данные соответствуют нормальному распределению. В реальности распределение показателей прибылей и убытков торговой системы таким не бывает, особенно при наличии защитных остановок и целевых прибылей, как показано на рис. 4-1. Дело в том, что прибыль выше, чем целевая, возникает редко. Фактически большинство прибыльных сделок будут иметь прибыль, близкую к целевой. С другой стороны, кое-какие сделки закроются с убытком, соответствующим уровню защитной остановки, а между ними будут разбросаны другие сделки, с прибылью, зависящей от методики выхода. Следовательно, это будет совсем непохоже на колоколообразную кривую, которая описывает нормальное распределение. Это составляет нарушение правил, лежащих в основе проверки по критерию Стьюдента. Впрочем, в данном случае спасает так называемая центральная предельная теорема: с ростом числа точек данных в выборке распре- деление стремится к нормальному. Если размер выборки составит 10, то ошибки будут небольшими; если же их будет 20 — 30, ошибки будут иметь исчезающе малое значение для статистических заключений. Следовательно, многие виды статистического анализа можно с уверенностью применять при адекватном размере выборки, например при n = 47 и выше, не опасаясь за достоверность заключений.
Что, если существует серийная зависимость? Более серьезным нарушением, способным сделать неправомочным вышеописанное применение проверки по критерию Стьюдента, является серийная зависимость — случай, когда данные в выборке не являются независимыми друг от друга. Сделки совершаются в виде временного ряда. Последовательность сделок, совершенных в течение некоторого периода времени, нельзя назвать случайной выборкой — подлинно случайная выборка состояла бы, например, из 100 сделок, выбранных случайным образом из всей популяции данных — от начала рынка (например, 1983 г. для S&P 500) до отдален- ного будущего. Такая выборка не только была бы защищена от серийной зависимости, но и являлась бы более представительной для популяции. Однако при разработке торговых систем выборка сделок обычно производится на ограниченном временном отрезке; следовательно, может наблюдаться корреляция каждой сделки с соседними, что сделает данные зависимыми.
Практический эффект этого явления состоит в уменьшении размеров выборки. Если между данными существует серийная зависимость, то, делая статистические выводы, следует считать, что выборка в два или в четыре раза меньше реального количества точек данных. Вдобавок определить достоверным образом степень зависимости данных невозможно, можно только сделать грубую оценку — например, рассчитав серийную корреляцию точки данных с предшествующей и предыдущей точками. Рассчитывается корреляция прибыли/убытка сделки i и прибыли/убытка сделок i + 1 и i — 1. В данном случае серийная корреляция составила 0,2120. Это немного, но предпочтительным было бы меньшее значение. Можно также рассчитать связанный t-критерий для статистической значимости значения корреляции. В данном случае выясняется, что если бы в популяции действительно не было серьезной зависимости, то такой уровень корреляции наблюдался бы только в 16% тестов.
Серийная зависимость — серьезная проблема. Если она высока, то для борьбы с ней надо считать выборку меньшей, чем она есть на самом деле. Другой вариант — выбрать случайным образом данные для тестирования из различных участков за длительный период времени. Это также повысит представительность выборки в отношении всей популяции.
Что, если изменится рынок? При разработке торговых систем возможно нарушение третьего положения t-критерия, и его невозможно предугадать или компенсировать. Причина этого нарушения в том, что популяция, из которой взят образец данных для тестирования или разработки, может отличаться от популяции, данные из которой будут использоваться в будущих сделках. Рынок может подвергаться структурным или иным изменениям. Как говорилось, популяция данных S&P 500 до 1983 г. принципиально отличается от последующих данных, когда началась торговля опционами и фьючерсами. Подобные события могут разрушить любой метод оценки системы. Как бы ни проводилось тестирование, при изменении рынка до начала реальной торговли окажется, что система разрабатывалась и тестировалась на одном рынке, а работать будет на другом. Естественно, модель разваливается на части. Даже самая лучшая модель будет уничтожена изменением рынка.
Тем не менее большинство рынков постоянно меняются. Несмотря на этот суровый факт, использование статистики в оценке системы остается принципиально важным, поскольку если рынок не изменится вскоре после начала работы системы или же изменения рынка недостаточны, чтобы оказать глубокое влияние, то статистически возможно произвести достаточно достоверную оценку ожидаемых вероятностей и прибылей системы.
 

Вложения

  • tab4_1.png
    tab4_1.png
    88,6 КБ · Просмотры: 66
  • pic4_1.png
    pic4_1.png
    80,5 КБ · Просмотры: 64

FXWizard

Гуру форума
Пример 2: Оценка тестов на данных в пределах выборки

Каким образом можно оценивать систему, которая подвергалась подгонке параметров (т.е. оптимизации) по некоторой выборке данных? Трейдеры часто оптимизируют системы для улучшения результатов. В данном аспекте применение статистики особенно важно, поскольку позволяет анализировать результаты, компенсируя этим большое количество тестовых прогонов во время оптимизации. В табл. 4-2 приведены показатели прибыли/убытка и различные статистические показатели для тестов в пределах выборки (т.е. на данных, использовавшихся для оптимизации системы). Система подвергалась оптимизации на данных за период с 1.01.1990г. по 1.02.1995г.
Большая часть статистики в табл. 4-2 идентична показателями табл. 4-1
из примера 1. Добавлены два дополнительных показателя — «Количество тестов оптимизации» и «Скорректировано по оптимизации». Первый показатель — просто количество различных комбинаций параметров, т.е. число испытаний системы по выборке данных с различными параметрами. Поскольку первый параметр системы на лунном цикле, L1, принимал значения от 1 до 20 с шагом в 1, было проведено 20 тестов и соответствен- но получено 20 значений t-критерия.
Количество тестов, использованных для коррекции вероятности (значимости) по лучшему показателю t-критерия, определяется следующим образом: от 1 отнимается статистическая значимость лучшего теста, результат возводится в степень m (где т— число прогонок тестов). Затем этот результат вычитается из единицы. Это показывает вероятность обнаружения в т тестах (в данном случае т = 20) по крайней мере одного значения t-критерия, как минимум не уступающего действительно обнаруженному в данном решении. Некорректированная вероятность случайного происхождения результатов составляет менее 2% — весьма впечатляющий показатель. После коррекции по множественным тестам (оптимизации) картина в корне меняется. Результаты с такой прибыльностью

Таблица 4—2. Сделки на выборке данных S&P 500, использованной для тестирования модели на лунном цикле

attachment.php


системы могли быть достигнуты чисто случайно в 31% случаев! Впрочем, все не так плохо. Настройка была крайне консервативной и исходила из полной независимости тестов друг от друга. На самом же деле между тестами будет идти значительная серийная корреляция, поскольку в большинстве традиционных систем небольшие изменения параметров вызывают небольшие изменения результатов. Это в точности напоминает серийную зависимость в выборках данных: эффективный размер снижается, если снижается эффективное количество проведенных тестов. Поскольку многие из тестов коррелируют друг с другом, 20 проведенных соответствуют 5—10 «реальным» независимым тестам. Учитывая серийную зависимость между тестами, вероятность с поправкой на оптимизацию составит около 0,15, а не 0,3104. Поскольку природа и точная величина серийной зависимости тестов неизвестны, менее консервативное заключение об оптимизации не может быть рассчитано напрямую, а только может быть примерно оценено.
В некоторых случаях, например в моделях множественной регрессии, существуют точные математические формулы для расчета статистических параметров с учетом процесса подгонки (оптимизации), что делает излишними поправки на оптимизацию.
 

Вложения

  • tab4_2.png
    tab4_2.png
    107,3 КБ · Просмотры: 56

FXWizard

Гуру форума
Трактовка статистических показателей

В примере 1 представлен тест с проверкой системы, в примере 2 — оптимизация на данных из выборки. При обсуждении результатов мы возвра- щаемся к естественному порядку проведения тестов, т.е. сначала оптимизация, а потом проверка.
Результаты оптимизации. В табл. 4-2 показаны результаты анализа данных из выборки. За 5 лет периода оптимизации система провела 118 сделок (n = 118), средняя сделка дала прибыль в $740,97, и сделки были весьма различными: стандартное отклонение выборки составило около $3811. Таким образом, во многих сделках убытки составляли тысячи долларов, в других такого же масштаба достигали прибыли. Степень прибыльности легко оценить по столбцу «Прибыль/Убыток», в котором встреча- ется немало убытков в $2500 (на этом уровне активировалась защитная остановка) и значительное количество прибылей, многие более $5000, а некоторые даже более $10 000. Ожидаемое стандартное отклонение средней прибыли в сделке показывает, что если бы такие расчеты многократно проводились на схожих выборках, то среднее колебалось бы в пределах десяти процентов, и многие выборки показывали бы среднюю прибыльность в размере $740 ± 350.
Т-критерий для наилучшего решения составил 2,1118 при статистической значимости 0,0184. Это весьма впечатляющий результат. Если бы тест проводился только один раз (без оптимизации), то вероятность случайно достичь такого значения была бы около 2%, что позволяет заключить, что система с большой вероятностью находит «скрытую неэффективность» рынка и имеет шанс на успех в реальной торговле. Впрочем, не забывайте: исследовались лучшие 20 наборов параметров. Если скорректировать статистическую значимость, то значение составит около 0,31, что вовсе не так хорошо — эффективность вполне может оказаться случайной. Следовательно, система имеет некоторые шансы на выживание в реальной торговле, однако в ее провале не будет ничего удивительного.
Серийная корреляция между сделками составляла всего 0,0479 при значимости 0,6083 — в данном контексте немного. Эти показатели говорят, что значительной серийной корреляции между сделками не наблюдалось, и вышеприведенный статистический анализ, скорее всего, справедлив.
За время проведения теста было 58 прибыльных сделок, т.е. доля прибыльных сделок составила около 49%. Верхняя граница 99%-ного доверительного интервала количества прибыльных сделок составила около 61%, а нижняя — около 37%. Это означает, что доля прибыльных сделок в популяции данных с вероятностью 99% попала бы в интервал от 37 до 61%. Фактически коррекция по оптимизации должна была бы расширить доверительный интервал; но мы этого не делали, поскольку не особенно интересовались показателем доли прибыльных сделок.
Результаты проверки. В табл. 4-1 содержатся данные и статистические заключения по тестированию модели на данных вне выборки. Поскольку все параметры уже определены при оптимизации и проводился всего один тест, мы не рассматривали ни оптимизацию, ни ее последствия. За период с 1.01.1995 г. по 1.01.1997 г. система привела 47 сделок, средняя сделка дала прибыль в $974, что выше, чем в выборке, использованной для оптимизации! Видимо, эффективность системы сохранилась.
Стандартное отклонение выборки составило более $6000, почти вдвое больше, чем в пределах выборки, по которой проводилась оптимизация. Следовательно, стандартное отклонение средней прибыли в сделке было около $890, что составляет немалую ошибку. С учетом небольшого размера выборки это приводит к снижению значения t-критерия по сравнению с полученным при оптимизации и к меньшей статистической значимости — около 14%. Эти результаты не слишком плохи, но и не слишком хороши: вероятность нахождения «скрытой неэффективности» рынка составляет более 80%. Но при этом серийная корреляция в тесте была значительно выше (ее вероятность составила 0,1572). Это означает, что такой серийной корреляции чисто случайно можно достичь лишь в 16% случаев, даже если никакой реальной корреляции в данных нет. Следовательно, и t-критерий прибыли/убытка, скорее всего, переоценил статистическую значимость до некоторой степени (вероятно, на 20 — 30%). Если размер выборки был бы меньше, то значение t составило бы около 0,18 вместо полученного 0,1392. Доверительный интервал для процента прибыльных сделок в популяции находился в пределах от 17 до приблизительно 53%.
В общем, оценка показывает, что система, вероятно, сможет работать в будущем, но без особой уверенности в успехе. Учитывая, что в одном тесте вероятность случайности прибылей составила 31%, в другом, независимом, — 14% (с коррекцией на оптимизацию 18%), шанс того, что средняя сделка будет выгодной и система в будущем сможет работать, остается неплохим.
 

FXWizard

Гуру форума
ДРУГИЕ СТАТИСТИЧЕСКИЕ МЕТОДЫ И ИХ ИСПОЛЬЗОВАНИЕ

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

Системы, полученные генетическими методами

Мы разрабатываем множество систем с использованием генетических алгоритмов. Популярной функцией пригодности системы (степени достижения желаемого результата) является общая прибыль системы. Но при этом общая прибыль не является лучшим из критериев качества системы! Система, которая использует только крупные обвалы рынка S&P 500, например, даст очень высокую общую прибыль и очень высокий процент прибыльных сделок, но кто может с уверенностью утверждать, что такая система полезна в практической торговле? Если система провела всего 2 — 3 сделки за 10 лет, чисто интуитивно нельзя ожидать ее стабильной работы в будущем или быть уверенным, что система вообще сможет совершать сделки. Частично проблема в том, что общая прибыль никак не учитывает количество сделок и их изменчивость.
Альтернативными показателями пригодности, лишенными некоторых недостатков общей прибыли, являются t-критерий и связанная с ним вероятность. При использовании t-критерия как функции пригодности (вместо простого поиска наиболее выгодного решения) смысл генетического развития систем состоит в создании систем с максимальной вероятностью прибылей в будущем или, что то же самое, с минимальной вероятностью прибылей, обусловленных случайностью или подгонкой под исторические данные. Этот подход работает весьма хорошо; t-критерий учитывает прибыль, размер выборки данных и количество совершенных сделок. Хотя все факторы важны, все же, чем больше сделок совершает система, тем выше t-показатель и больше вероятность устойчивости в будущем. Таким же образом, системы, которые дают более стабильные сделки с минимальным разбросом, будут иметь лучший t-показатель и предпочтительнее систем, где разброс сделок велик. T-критерий включает в себя многие из параметров, определяющих качество торговой модели, и сводит их в одно число, для оптимизации которого можно применить генетический алгоритм.
 

FXWizard

Гуру форума
Множественная регрессия

Еще одна часто применяемая методика — множественная регрессия. Рассмотрим анализ сравнения рынков; цель этого исследования в том, чтобы обнаружить на других рынках показатели поведения, которые указывали бы на текущее поведение данного рынка. Проведение различных регрессий — подходящий метод для анализа таких потенциальных связей; более того, существуют замечательные методы для тестирования и уста- новки доверительных интервалов корреляций и весов регрессии (бета- чисел), генерируемых при анализе. Ввиду ограниченности объема главы, рекомендуем обратить внимание на книгу Майерса (Meyers, 1986) — хорошее пособие по основам множественной регрессии.

Метод Монте-Карло

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

Тестирование вне пределов выборки

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

FXWizard

Гуру форума
Тестирование с прогонкой вперед

При тестировании с прогонкой вперед система оптимизируется на данных за несколько лет, затем моделируется торговля за следующий год. Потом система повторно оптимизируется на данных за несколько лет, со сдвигом окна оптимизации вперед, включая год ведения торговли, и процесс повторяется раз за разом, прогоняя систему через популяцию данных. Хотя этот метод требует огромного количества вычислений, он чрезвычайно полезен для изучения и тестирования торговых систем. Его основное преимущество в том, что он совмещает оптимизацию и проведение тестов вне пределов выборки. Все вышеописанные статистические методы, например проверка по критерию Стьюдента, могут быть использованы на тестах с прогонкой вперед просто и доступно, без необходимости вносить поправки на оптимизацию. Кроме того, тесты будут весьма правдоподобно моделировать процесс, происходящий в реальной торгов- ле, — сначала ведется оптимизация, а затем система ведет торговлю на ранее неизвестных данных и время от времени повторно оптимизируется. Продвинутые разработчики встраивают процесс оптимизации в сис- тему, создавая то, что можно назвать «адаптивной торговой моделью». В работе Мейерса (Meyers, 1997) подробно рассмотрен процесс тестирования с прогонкой вперед.

ЗАКЛЮЧЕНИЕ

В процессе разработки торговых систем статистика помогает трейдеру быстро отбрасывать модели, эффективность которых может быть объяснена случайным совпадением, излишней подгонкой под исторические данные или несоответствующим размером образца данных. Если статистический анализ показывает, что вероятность случайной эффективности модели очень низка, то трейдер может использовать модель в реальной торговле с большей уверенностью.
Существует множество статистических методов, применимых к торговле на финансовых рынках. Главное в них — попытка сделать вывод о всей популяции данных на основе выбранных из нее образцов.
Не забывайте, что при использовании статистических методов на данных, с которыми работают трейдеры, не будут выполняться некоторые требования статистического анализа. Некоторые из этих нарушений не очень серьезны; благодаря центральной предельной теореме в большинстве случаев можно нормально анализировать даже данные, не соответствующие нормальному распределению. Другие, более серьезные нарушения, например наличие серийной корреляции, должны учитываться, но для оценки поправок вероятности на этот случай существуют специальные методы. Суть в том, что лучше работать с информацией, зная, что некоторые положения нарушены, чем работать вслепую.
Данная глава была написана для того, чтобы в общих чертах познакомить читателя с наиболее часто используемыми статистическими метода- ми. Для более подробного изучения статистики мы советуем обратиться к специальным пособиям.
 

FXWizard

Гуру форума
ЧАСТЬ II
Исследование входов в рынок
Введение


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

ЧТО ЯВЛЯЕТСЯ ХОРОШИМ ВХОДОМ?

Хороший вход— это такой вход, который начинает сделку в точке с низ- ким потенциальным риском и высокой потенциальной прибылью. Точка с низким риском — это точка, где величина возможного неблагоприятного движения перед поворотом рынка в пользу трейдера невелика. Входы, при которых неблагоприятное движение минимально, весьма желательны, поскольку они позволяют устанавливать очень близкие защитные остановки, минимизируя, таким образом, риск. Хороший вход должен так- же с большой вероятностью сопровождаться благоприятным движением рынка вскоре после входа. Сделки, долго ожидающие благоприятного движения рынка, попросту оттягивают на себя деньги, которые можно применить в других местах; такие сделки не только увеличивают общий риск портфеля, но и расходуют часть маржи, не позволяя открыть другие, более эффективные позиции. Идеальный вход состоял бы в покупке по минимальной цене и продаже по максимальной. Естественно, такие входы едва ли случаются в реальном мире и совсем не обязательны для успешной торговли. Для успешной торговли всего-навсего достаточно, чтобы входы в сочетании с разумными выходами образовывали торговую систему с хорошими характеристиками общей эффективности.
 
Верх