Этапы построения и тестирования торговой системы


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

Определите концепцию системы.

Запрограммируйте правила, чтобы генерировать сделки в соот­ветствии с этой концепцией.

Выберите небольшое количество рынков и исторических пери­одов для этих рынков.

Сгенерируйте торговые сигналы системы для данных рынков и исторических периодов при данном наборе параметров.

Создайте графики непрерывных фьючерсов для этих рынков и годов и сделайте несколько их копий.

Обозначьте на этих графиках торговые сигналы. (Удостоверь­тесь, что использовали одни и те же ценовые серии для созда­ния графиков и тестирования системы.) Этот шаг важен. Я на­хожу значительно более простым отлаживать систему, визуаль­но проверяя сигналы на графиках, а не работая лишь с распе­чатанными данными.

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

А. ошибки в программе;

Б. правила программы не предвидят некоторых обстоятельств или создают непредвиденные эффекты.

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

После того как сделаны необходимые исправления, повторите шаги 7 и 8. Обратите, в частности, внимание на изменения в сигналах по сравнению с предыдущим прогоном по двум причинам:


А. чтобы проверить, помогли ли изменения в программе устра­нить ошибки;

Б. чтобы убедиться, что изменения не привели к неожиданным эффектам.

После того как система заработала в соответствии с вашими ожиданиями, протестируйте ее на всем заданном списке набо­ров параметров по всей базе данных. (Предполагаемый торго­вый портфель должен быть определен до запуска этого теста.)

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

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

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



Содержание раздела