ОСНОВНЫЕ ПОНЯТИЯ И ОПРЕДЕЛЕНИЯ. Торговая система — это набор правил, которые могут быть использованы для генерирования торговых сигналов
Торговая система — это набор правил, которые могут быть использованы для генерирования торговых сигналов. Параметр — это величина, от которой зависят правила системы и которую можно варьировать для того, чтобы изменять время поступления сигналов. Например, в базовой системе пробоя величина N (число предшествующих дней, максимумы и минимумы которых должны быть превышены, чтобы появился сигнал) — это параметр. Хотя действие правил в системе останется тем же самым, будь N равно 7 или 40, время поступления сигнала будет значительно отличаться (см. рис. 17.5).
Большинство торговых систем будет иметь более одного параметра. Например, в системе пересекающихся скользящих средних есть два параметра: длины краткосрочной и долгосрочной скользящих средних. Любая комбинация значений параметров называется набором параметров. Например, в системе пересечения скользящих средних скользящие средние длиной 10 и 40 будут представлять специфический набор параметров. Любая другая комбинация значений усреднения будет представлять другой набор параметров. В системах с единственным параметром (например, в системах пробоя) набор параметров будет состоять из одного-единственного элемента*.
Большинство «механических» систем ограничиваются одним или двумя параметрами. Однако конструкция более творческих и гибких систем или дополнение базовых систем различными модификациями обычно будут подразумевать необходимость трех или более параметров. Например, добавление подтверждающего правила временной задержки к системе пересечения скользящих средних подразумевало бы третий параметр: число дней временной задержки. Одна проблема, связанная с системами, которые включают в себя много параметров, связана с тем, что они делаются слишком громоздкими для тестирования даже малой части всех разумных комбинаций. Например, если каждый параметр может подразумевать 10 значений, возникло бы 1000 наборов параметров, если система включает 3 параметра, и 1 000 000 наборов параметров, если бы было 6 параметров!
Вполне ясно, что практические соображения диктуют потребность ограничить количество наборов параметров. Разумеется, простейший способ достижения такой цели состоит в уменьшении количества параметров системы. Как правило, следует использовать простейшую фор-
Заметьте, что термины «набор параметров» и «вариация системы» (последнее выражение использовалось в гл. 17) соответствуют идентичным понятиям. Введение термина «набор параметров» было просто отложено до этой главы, поскольку это позволяет более логично выстроить подачу материала.
ГЛАВА 20. тестирование и оптимизация торговых систем 699
му системы (с наименьшим возможным количеством параметров), которая не подразумевает существенного ухудшения результативности по сравнению с более сложными вариантами. Однако не стоит отбрасывать значимые параметры ради сокращения объема необходимых тестов. Следовало бы заметить, что даже в простой системе с одним или двумя наборами параметров нет необходимости в тестировании всех возможных комбинаций. Например, в простой системе пробоя, когда кто-то хочет протестировать результативность при значениях N от единицы до ста, нет никакой необходимости тестировать каждое значение в этом ряду. Намного более эффективным подходом оказалось бы вначале протестировать систему с некоторым шагом для значений N (например, 10, 20, 30... 100), а затем, при желании, трейдер может сосредоточиться на любых областях, которые покажутся интересными. Например, если система, в частности, показывает лучшую результативность при значениях параметра N = 40 и N = 50, трейдер может захотеть также протестировать другие значения N из этого суженного диапазона. Однако подобный дополнительный шаг, видимо, излишен, поскольку, как будет видно из продолжения этой главы, разница в результативности близких наборов параметров, вероятно, является случайной величиной и лишена какого-либо значения.
В качестве более практического примера из реальной жизни представим, что мы хотим протестировать систему пересечения скользящих средних, которая включает в себя правило подтверждения с временной задержкой. Если бы мы поинтересовались результативностью системы при значениях параметров от 1 до 50 для краткосрочной скользящей средней, от 2 до 100 для более долгосрочной скользящей средней и от 1 до 20 для временной задержки, образовалось бы 74 500 наборов параметров*.
Очевидно, было бы невозможным протестировать, даже не сравнивая результаты, все эти комбинации. Заметьте, что мы не можем уменьшить количество параметров, не разрушив основную структуру системы. Однако мы можем протестировать ограниченное количество наборов параметров, что давало бы очень хорошее приближение обшей результативности системы. Например, мы могли бы использовать шаги в 10 для краткосрочной скользящей средней (10, 20, 30, 40 и 50), шаги в 20 для долгосрочной скользящей средней (20, 40, 60, 80 и 100) и три выбранных значения для временной задержки (например, 5, 10 и 20). При этом количество тестируемых наборов параметров снизилось бы до 57**.
Чтобы избежать двойного счета, каждая «краткосрочная» скользящая средняя должна комбинироваться только с «долгосрочной» скользящей средней большей длины. Таким образом, общее количество комбинаций дается формулой (99 + 98 + 97 + ... + 50) х 20 = 74 500.
(5 + 4 + 4 + 3 + 3) х 3 = 57.
700 ЧАСТЬ 4. торговые системы и измерение эффективности торговли
После проведения тестов по этим наборам параметров результаты должны быть проанализированы, и далее на основании оценки может быть протестировано умеренное количество дополнительных наборов параметров. Например, если временная задержка, равная 5, — наименьшее из протестированных значений — дает наилучшие результаты, то было бы разумно протестировать меньшие значения временной задержки.
С концептуальной точки зрения могло бы быть полезным определить четыре типа параметров.
Непрерывный параметр.Непрерывный параметр может подразумевать использование любого значения из данного диапазона. Процентный ценовой пробой был бы примером непрерывного параметра. Поскольку непрерывный параметр может предполагать бесконечное число значений, необходимо определить некоторый шаг — интервал в тестировании подобного параметра. Например, параметр процентного пробоя может быть протестирован в диапазоне от 0,005 до 0,50% с шагом в 0,05% (т.е. 0,05; 0,10 ... 0,50). Будет разумным ожидать, что при малых изменениях в значении параметра результативность будет меняться незначительно (предполагая тестовый период существенной длительности).
Дискретный параметр.Дискретный параметр подразумевает только целые значения. Например, количество дней в системе пробоя — это дискретный параметр. Хотя можно протестировать дискретный параметр для каждого целочисленного значения внутри заданного диапазона, такая детализация часто не нужна, и, как правило, используется более разреженная выборка. Как и в случае с непрерывными параметрами, при малом изменении значения параметра будет разумным ожидать небольших изменений результативности системы.
Кодовый параметр.Кодовые параметры используются для описания классификационных различий в определениях торговых правил. Таким образом, кодовому параметру можно присвоить любое математическое значение. В качестве примера кодового параметра предположим, что мы хотим протестировать простую систему пробоя, используя три различных определения пробоя (случай покупки): закрытие дня превышает максимум предшествующих N дней, дневной максимум превышает предшествующий N-дневный максимум и закрытие дня превышает наибольшее закрытие предшествующих N-дней. Мы могли бы протестировать в отдельности каждую из этих систем, но удобнее было бы использовать параметр для идентификации подразумеваемого определения. Таким образом, значение параметра, равное нулю, указывало бы на первое определение, значение, равное 1 — на второе определение и
ГЛАВА 20. тестирование и оптимизация торговых систем 701
значение, равное 2 — на третье определение. Заметьте, что у этого параметра есть только три возможных значения, и количественные изменения параметра не имеют никакого смысла.
Фиксированный или неоптимизированный параметр.Обычно параметр (любого типа) будет подразумевать возможность различных значений в тестируемой системе. Однако в системах с большим числом параметров может оказаться необходимым зафиксировать некоторые из значений параметра для того, чтобы избежать чрезмерного количества наборов параметров. Такие параметры называют неоптимизированными. Например, в нечувствительные (медленные) системы следования за трендом мы могли бы включить правила остановки, чтобы предотвратить катастрофические убытки. По определению в этой ситуации правило остановки было бы активизировано лишь в немногих случаях. Следовательно, любые параметры, подразумеваемые правилом остановки, могли бы быть фиксированными, поскольку различия в значениях этих параметров не влияли бы существенно на результаты.
ВЫБОР ЦЕНОВЫХ СЕРИЙ
Первым шагом при тестировании системы на данном рынке является выбор подходящих ценовых серий. Обстоятельства, связанные с этим выбором, уже были полностью разобраны в гл. 19. Вообще говоря, непрерывные фьючерсные серии оказываются предпочтительным выбором, хотя и реальные ценовые данные по отдельным контрактам могли бы использоваться для краткосрочных торговых систем.
ВЫБОР ВРЕМЕННОГО ПЕРИОДА
Вообще говоря, чем дольше тестовый период, тем большего доверия заслуживают результаты. Если временной отрезок слишком короток, тест не будет отражать результативность системы для достаточного спектра рыночных ситуаций. Например, тестирование системы следования за трендом на рынке хлопка, которое использует лишь данные двух последних лет (апрель 1993 г. — март 1995 г. в момент написания книги) — период, в который доминировал мощный протяженный «бычий» рынок (рис. 20.1), — будет приводить к результатам, вводящим в полное заблуждение с точки зрения возможной долгосрочной результативности системы.
С другой стороны, если для тестирования системы используется слишком протяженный период, первые годы рассматриваемого периода могут оказаться в высшей степени нерепрезентативными для текущих
702 ЧАСТЬ 4. торговые системы и измерение эффективности торговли
Рисунок 20.1.
ФАЗА МАСШТАБНОГО ТРЕНДА
КАК ПРИМЕР НЕРЕПРЕЗЕНТАТИВНОГО ПОВЕДЕНИЯ ЦЕН: НЕПРЕРЫВНЫЕ ФЬЮЧЕРСЫ НА ХЛОПОК
рыночных условий. Например, было бы правильнее не расширять тестовый период настолько далеко в прошлое, чтобы включить в него 1973-1976 гг. — временной отрезок, ставший свидетелем беспре-цендентного массированного роста цен с последующим резким коллапсом на многих товарных рынках. Включение этого в высшей степени непоказательного периода привело бы к значительному преувеличению возможной результативности большинства систем следования за трендом. Другими словами, громадная прибыль, зафиксированная большинством систем следования за трендом в этот период, вряд ли могла бы быть еще раз заработана в будущем.
Хотя и невозможно предложить решающий ответ по поводу того количества лет, которое следует использовать при тестировании, 10-20 лет кажутся разумным выбором. Дня краткосрочных торговых систем (средняя продолжительность торговли, равная нескольким неделям или менее) был бы, вероятно, достаточен более короткий тестовый период (например, 5-10 лет). Результаты тестирования торговой систе-
ГЛАВА 20. тестирование и оптимизация торговых систем 703
мы, основанные на значительно более коротком периоде, должны вызывать подозрения. Как правило, большинство опубликованных исследований торговых систем основаны на тестовых периодах в пять или более лет.
В идеальном случае следовало бы тестировать систему, используя длительный временной отрезок (например, 15 лет), а затем оценивать результаты как для всего периода в целом, так и для различных более коротких интервалов (например, для отдельных лет . Подобный подход важен для определения степени временной устойчивости системы — постоянства результативности от одного периода к другому. Устойчивость во времени важна, поскольку она повышает доверие к возможностям системы поддерживать постоянную приемлемую результативность в будущем. Большинство людей будет испытывать сомнения по поводу рациональности использования системы, которая создавала значительную чистую прибыль на периоде в 15 лет благодаря трем эффектным результативным годам, но несла убытки или торговала близко к безубыточности в оставшиеся 12 лет, и эти сомнения совершенно справедливы. И наоборот, система, которая регистрировала умеренный чистый доход на протяжении 15-летнего периода и при этом была прибыльной в 14 из 15 годов, без сомнения, большинством трейдеров рассматривалась бы как более привлекательная.