Прежде чем применять научный подход к изучению рынков, следует рассмотреть ряд факторов. Во- первых, требуется целая вселенная достоверных данных для исторического тестирования и статистического анализа.
Поскольку эта книга концентрируется на товарных биржах, в основе использованы данные по ценам на конец дня, поставляемые Pinnacle Data Corporation, которые включают сельскохозяйственные продукты, металлы, энергетические ресурсы, облигации, валюты и рыночные индексы. В книге не рассматривается внутридневная торговля, хотя это — одна из основных областей наших интересов, которая, возможно, станет темой следующей книги. Помимо стандартных ценовых данных исследование влияния различных внешних факторов на рынок может потребовать весьма необычных данных. Например, данные об активности солнечных пятен (солнечное излучение влияет на ряд рынков, в частности на сельскохозяйственный) получены от Бельгийской Королевской Обсерватории.
Мало иметь огромное количество данных — необходимо моделирование одного или нескольких торговых счетов для проведения тестов. Для этого требуется торговый симулятор, т.е. пакет программ для создания счетов и ведения торговли на компьютере. Наиболее широко использовался торговый симулятор от Scientific Consultant Services, написанный на языке C+ +, рассчитанный на работу с портфелями акций и хорошо известный авторам. Кроме того, разнообразные возможности тестирования и построения графиков заложены в такие программы, как TradeStation фирмы Omega Research или SystemWriter Plus. Мы использовали в нашем анализе не только эти программы, но и MS Excel, которой пользуются очень многие.
Еще один важный момент — оптимизация параметров моделей. При проведении тестов часто необходимо настраивать параметры некоторых компонентов (например, модели входа, выхода или их частей), чтобы обнаружить наилучший набор параметров и/или увидеть, как поведение модели меняется со сменой параметров. Возможно проведение нескольких видов оптимизации параметров модели. При ручной оптимизации пользователь задает параметр, который будет варьироваться, и пределы его изменения; причем пользователь может одновременно управлять двумя или более параметрами, получая результаты в виде таблицы, показывающий влияние значений параметров на показатели системы. Другой метод — лобовая оптимизация, существующая в нескольких разновидностях: наиболее часто — это прогонка каждого из параметров через все возможные значения. Если параметров много и их границы широки, прогонка может растянуться на годы. При этом лобовая оптимизация может быть вполне приемлема при малом количестве параметров и узких пределах их значений. Другие методы лобовой оптимизации не столь полны и не всегда способны найти оптимальный набор параметров, но работают гораздо быстрее. Последний из методов, используемый для мощной оптимизации (а в неумелых руках — для подгонки параметров под выигрыш в прошлом), — это генетические алгоритмы. Подходящий генетический алгоритм может быстро обнаружить хороший ответ (пусть даже не общий оптимум) даже из большого числа параметров с широкими пределами значений. Генетический оптимизатор — важный инструмент в арсенале разработчика торговых систем, но использоваться он должен осторожно, поскольку существует возможность подгонки, т.е. получения набора параметров, подогнанного под исторические данные, который имеет небольшую ценность для торговли в будущем. В данной книге приведены методики статистической оценки результатов, тесты за пределами выборки и методики, фокусирующиеся на анализе целых портфелей, которые обеспечивают защиту от подгонки вне зависимости от используемого метода оптимизации.