Проектирование торговых систем Известно, что «те, кто не знают историю, вынуждены ее повторять». Разработка механических торговых систем дает возможность изучить историю и найти способы использования этого знания в будущем. Необходимо при этом постоянно помнить о важности предотвращения подгонки истории под исторические данные. Мы подробно обсудим этот важный аспект в последующих статьях, посвященных тестированию на исторических данных. Есть семь ключевых элементов, о которых необходимо помнить при создании торговой системы: Идеология системыТехника фильтрацииВходы в позициюПервоначальные стопыСкользящие защитные стопыВыход из позицийПовторный вход и методика переворота Идеология системы Есть три типа систем, которые могут быть использованы для торговли: 1. Системы, следующие за трендом В этом случае нам надо сначала определить, куда идет рынок – вверх, вниз или вбок. Это может быть одно правило или набор из нескольких правил. 2. Пробойные системы Следующие за направлением пробоя после консолидации или торговли в диапазоне. 3. Системы, торгующие диапазоны Системы, извлекающие прибыль в периоды, когда рынки движутся в торговых диапазонах. Многие профессиональные трейдеры имеют набор торговых систем всех трех типов и, поэтому, готовы извлекать прибыль из любых рыночных условий. Технология фильтрации Простейший фильтр исключения поступившего торгового сигнала – если тренд или какие-то иные условия недостаточно благоприятны. В более сложных случаях фильтрация может включать выбор наиболее сильного сигнала из нескольких. Смысл простых фильтров состоит в уменьшении, насколько это возможно, поступления ложных сигналов. Довольно часть для построения фильтров используются стандартные технические индикаторы типа индекса относительной силы (RSI), объемы или стохастики. Входы в позицию Целью создания правил входа в позицию является получение однозначных правил, которые не нуждаются даже в минимальной интерпретации со стороны человека. Первоначальные стопы Выставляются в момент входа в позицию. Это может быть заранее определенный процент от первоначального капитала, единица волатильности и так далее. Мы подробно обсудим это далее. Скользящие защитные стопы Стопы, изменяющие свое значение по мере развития трейда. Мы их так же обсудим далее. Выходы из позиции Могут осуществляться как по достижению одного из стопов или цели или изменения тренда и т.д. Повторный вход и методика переворота Некоторые системы, к примеру, использующие скользящие средние, могут постоянно иметь открытые позиции. Сигнал к продаже является одновременно как сигналом к закрытию длинных позиций, так и к открытию коротких. Более сложные системы часто используют технологии повторного входа, то есть после закрытия длинных позиций находятся в кеше и ожидают повторного сигнала для создания следующей длинной позиции. Некоторые ловушки Простейшие ошибки при создании систем достаточно легко обнаружить. Прежде всего, важно количество правил в торговой модели и их сложность. Хорошие системы настолько просты, что вы можете за 5 минут объяснить их теще, перед тем, как оставить ее торговать за себя. Поэтому, если система включает в себя 20 страниц формул, то почти наверняка речь идет о подгонке под исторические данные. Во-вторых, фильтрация сигналов, будучи сама по себе очень полезной, может быть излишне сложной. Некоторые трейдеры продолжают добавлять фильтры, пока эквити торговой системы не превратится в линию без просадок. Нужно понимать, что, хоть мы и стремимся отфильтровать некоторые сигналы, приводившие к убыточным сделкам, но мы не можем отфильтровать их все. Слишком большое количество фильтров – это тоже разновидность подгонки. Многие опытные разработчики систем не применяют в системе более 5 фильтров. Важным фактором является учет ликвидности базового для торговой системы рынка. Не торгуйте биржевые контракты с объемом менее 5 тыс. лотов в день и открытым интересом менее 20 тыс. контрактов. Многие системы генерируют сигналы по ценам закрытия рынка. Хотя большинство торговых программ (Tradestation или Metastock) позволяют вам при тестировании открывать позиции по ценам закрытия дня, вам надо учитывать, когда в реальности вы сможете получить сигнал от своей торговой системы и когда – его исполнить. При исполнении сигналов «по закрытию» на следующий день «по открытию» могут возникать значительные расхождения с результатами тестирования с ценами исполнения «по закрытию». Хотя может быть возможно написать сигналы, которые генерируются на основе прогноза диапазона закрытия дня незадолго до закрытия рынка, их исполнение будет возможно только в пределах того лимита ликвидности, который проходит за этот остаток сессии. Некоторые трейдеры ошибочно предполагают, что они смогут продать, к примеру, тысячи контрактов на медь с прекрасным исполнением сразу перед закрытием LME. В реальности, однако, такие заявки вызовут колоссальное движение цен и все равно весь ордер не будет исполнен. Более того, исполнение собственных сделок сразу перед закрытием рынка в ожидании наступления сигнала «по ценам закрытия» может само по себе вызвать сдвиг цены закрытия в ту область, где сигнал не возникает. При учете таких моментов, связанных с окончанием торгового дня, важно учесть, что некоторые рынки не имеют точно определенного времени окончания работы (например, форекс). Просто к вечеру происходит постепенное исчезновение ликвидности, причем в разные дни это может происходить в разное время. Торгующим на таких рынках надо заранее определить точку, в которой они сами закрывают или открывают позиции. При оценке ценовых данных за день необходимо уточнять, включены ли в них данных о послесессиях. Максимумы регулярной торговой сессии могут быть значительно меньше, а минимумы – больше, чем максимумы и минимумы послесессии, не говоря уже о ценах закрытия дня.