5.1.1. Поставщики данных
Большинство брокерских платформ, предоставляющих онлайн-доступ к биржевой информации, дает возможность видеть текущие котировки опционов. Однако предоставление исторической информации достаточной глубины в прошлое не является частью обычного брокерского сервиса. Котировки текущего торгового дня для большинства опционных контрактов можно найти на популярных бесплатных сервисах finance.yahoo.com и finance.google.com. Гораздо сложнее дело обстоит с историей цен опционов.
Для создания и поддержания исторической базы данных необходимо обращаться к специализированным поставщикам данных. При этом не все поставщики поддерживают достаточный объем и глубину данных. Это объясняется тем, что деятельность по созданию систем бэктестинга опционных стратегий достаточно сложна и пока еще не получила широкого распространения.
Многие поставщики данных предоставляют историю цен опционов только на небольшой спектр базовых активов, например основные валюты и индексы. Некоторые разработчики аналитических платформ для торговли опционами предоставляют доступ к истории непосредственно из собственных программных продуктов. Это удобно для построения простейших систем бэктестинга, реализуемых непосредственно на платформе, предоставленной разработчиком. Однако разработка и тестирование сложных стратегий, основанных на оригинальных инновационных идеях, на такой платформе невозможна.
Довольно широкий спектр базовых инструментов и более или менее серьезную глубину истории можно найти на интернет-сервисах Historicaloptiondata.com, IVolatility.com, Livevol.com, Optionmetrics.com, Stricknet.com. В частности, Livevol предоставляет не только данные закрытия дня, но и внутридневные цены. Сервис IVolatility, помимо истории цен, предоставляет богатый спектр специфических для опционов расчетных и аналитических материалов и программные продукты для разработчиков, с помощью которых можно получать онлайн-доступ к оперативной биржевой информации.
В случае если база данных приобретается у определенного поставщика в готовом виде, следует обратить особое внимание на проблему отсутствия в приобретаемой базе тех базовых активов, которые существовали ранее, но в настоящий момент уже не торгуются (так называемая проблема выживания – survival bias problem). Это может быть связано с банкротством компании либо с ее поглощением. При этом многие провайдеры данных предоставляют информацию только о тех компаниях, которые торгуются в настоящее время. Если этим ограничиться, то при бэктестинге стратегии будет упущено важное рыночное событие, и результат исследования нельзя будет считать полным и надежным. Например, в период, когда циркулировали слухи о возможном поглощении определенной компании, стоимость ее опционов могла быть очень высокой. Если бы в этот период стратегия, основанная на продаже волатильности, сгенерировала сигнал на открытие короткой позиции по этой акции, то в момент, когда событие реализовалось, могло произойти большое ценовое движение. Это привело бы к серьезным убыткам и, возможно, к полному разорению всего торгового счета. Если же база данных, на которой проводится тестирование, не содержит тиккер такой поглощенной компании, то в процессе бэктестинга это событие не получит никакого отражения. Поэтому использование при разработке стратегий полных списков всех тиккеров, существовавших в те дни, для которых производится моделирование торговли, является обязательным.
5.1.2. Структура базы данных
База данных должна содержать минимальный объем информации, относящийся к определенному временному интервалу (в большинстве случаев интервал принимается равным одному торговому дню). В отношении цены такой минимальный объем информации включает цены открытия и закрытия дня, а также максимальные и минимальные цены дня. Более подробные базы включают также внутридневные цены, фиксируемые с заданной частотой, а самые полные базы могут содержать полную информацию обо всех совершенных сделках.
Исторические цены опционов имеют свою специфику. Поскольку опционы являются производными финансовыми инструментами, их ценообразование неразрывно связано с текущей ценой их базовых активов. Возникает принципиально важная задача синхронизации. А именно: котировки опционов на определенный момент времени осмыслены только вместе с ценой их базового актива строго в тот же момент времени. Этот фактор необходимо учитывать при организации структуры базы исторических данных.
В виду больших спредов между ценами спроса и предложения и из-за низкой ликвидности опционов котировки их цен спроса и предложения имеют гораздо большее значение, чем цены совершенных сделок. Особое значение это приобретает при определении котировок закрытия торгового дня (или другого фрейма). Во многих случаях последняя сделка по опционам происходит не в момент закрытия дня, в то время как последняя сделка по базовому активу, как правило, приходится на закрытие торгов. Поскольку такая десинхронизация недопустима, приходится вместо цен закрытия торгового дня использовать соответствующие котировки спроса и предложения опционов.
Для тестирования большинства опционных стратегий в структуре базы данных необходимо предусмотреть следующий состав информационных разделов:
• История цен базовых активов, включая стандартный набор цен открытия, закрытия, максимумов и минимумов для поддерживаемого тайм-фрейма.
• История цен и котировок опционов. Каждый опцион является отдельным инструментом со своим тиккером, историей сделок и котировок. Для полноценного бэктестинга необходимо поддерживать их структурное описание, связывающее каждый отдельный опцион с базовым активом и параметрами серии – базовым инструментом, страйком, типом опциона, датой экспирации. Необходимо иметь возможность по тиккеру базового актива получить множество всех его активных на данный момент опционов и осуществлять по нему навигацию по двум измерениям – датам экспирации и страйкам.
• История данных по объемам торговли (как для базовых активов, так и для опционов) и открытому интересу (для опционов).
• История дивидендных выплат, сплитов и переименований тиккеров базовых активов.
• История квартальных отчетов. Необходимо помнить, что цель бэктестинга – смоделировать ситуацию принятия решения в прошлом, не заглядывая в относительное к этому прошлому будущее. Достаточно просто получить хронологию уже состоявшихся квартальных отчетов, предоставляемую многими бесплатными сервисами. Однако такая информация не должна быть использована в бэктестинге, поскольку может стать причиной принципиальных ошибок. Дело в том, что в реальной торговле принятие решения может опираться только на предполагаемые даты событий – причем событий, предполагаемых только на основании имеющейся в тот момент информации. Рынок может не знать о точной дате будущего отчета, и это радикально отразится на цене опционов (например, подразумеваемая волатильность будет ниже по сравнению с ситуацией точно известной близкой даты отчета). Либо ситуация может быть обратной – точная дата отчета известна, но в назначенный день отчет не публикуется. Реакция рынка в таком случае зависит от причины задержки отчета. В обоих случаях в процессе бэктестинга будет принято решение, которое было бы невозможно в реальности. Чтобы избежать подобного искажения результатов, необходимо хранить для каждого дня прошлого предполагаемые даты квартальных отчетов, доступные в открытом доступе в этот день. Эти данные можно накапливать, ежедневно автоматически сканируя популярные сайты типа MarketWatch.com, Earnings.com, Finance.Yahoo.com и другие.
• История нерегулярных корпоративных событий: слияния/поглощения, банкротства, судебные решения, заседания комиссий с одобрением или запрещением продукции. Информация подобного типа существенно осложняет бэктестинг. Все перечисленные события сильно влияют на подразумеваемую волатильность и, следовательно, на цену опционов. Однако информация о них становится достоверной только после фактического наступления события. В бэктестинге же необходимо учитывать только предположения и ожидания, которыми участники рынка могли руководствоваться в конкретный день до наступления события. Сбор, хранение и использование