Михаил Яковлевич Фитерман - Применение автоматизированных торговых систем в режиме советчика
Михаил Яковлевич Фитерман

Кандидат технических наук, доцент в Санкт-Петербургском государственном Горном институте (СПбГГИ). С 2004г применение математических методов моделирования и автоматического управления в макроэкономике. С 2007г - разработка методов, структуры и алгоритмов систем торговли на рынке Форекс. Для изучения поведения рынка пытаюсь применить теоретический аппарат теории автоматического управления и теории случайных процессов.
На валютном рынке сегодня фактически эксплуатируется, а еще больше предлагается множество ТС, претендующих на автоматическую торговлю, вплоть до торговых роботов. Это свидетельствует о переходе на новый виток спирали человеческой цивилизации. К сожалению, в плане человеческой морали эта тенденция свидетельствует об опускании на предыдущий виток спирали эволюции. В терминах мирового блага (один из основных терминов мировой экономики) желание выиграть на валютном обмене эквивалентно стремлению урвать у ближнего, что противоречит главным заповедям «возлюби ближнего» и «не укради». Но это - лирическое отступление. Наша же задача выяснить, какие возможности сулит современному трейдеру автоматизация ТС. Эти возможности я буду рассматривать применительно к разработанным мной ТС вида System..., в частности от System_11.6 до System_14, выложенным на сайте .
В каждой ТС алгоритмизированы ввод рыночной информации, прогноз изменения цен (котировок) на один временной такт вперед, выработка торговых критериев с учетом степени их достоверности, расчет потенциальной и фиксируемой прибыли от сделки, расчет итоговых показателей системы и настройка констант алгоритма на истории системы. В этом алгоритмическом обеспечении не полностью автоматизированы только процедуры взаимодействия трейдера с его брокером через дилерскую платформу. А именно, ввод рыночных данных из платформы автоматизирован частично и не автоматизирована передача брокеру приказов на открытие/закрытие позиций, так как этот интерфейс трейдера с брокером не поддерживается программно средствами Excel. Но даже такой уровень автоматизации может показаться пользователям и в особенности консервативным трейдерам излишним. Дело в том, что сегодня индустрия обучения трейдеров ориентирована в основном на логические и графические методы исследования рынка. Строго математические приемы, основанные на математическом моделировании динамики рынка, не в ходу. Единственное, что применяется из арсенала этих приемов - это индикаторы и осцилляторы, основанные на процедурах скользящего усреднения текущих котировок. Конечно, такой обучающий материал относительно легко усвоить, не имея базовых знаний таких научных дисциплин, как теория автоматического управления (ТАУ) и теория случайных процессов (ТСП). Кроме того, данный подход обусловлен изначальным пониманием причин ценовых движений на рынке как проявлений человеческой логики - ожиданий и реакций трейдеров и их сообществ. Феноменологически это действительно так, но такое понимание не приближает к научному анализу и синтезу поведения рынка, как некоторого динамического объекта. Продвинуться в этом направлении можно только с помощью указанных выше общефизических теорий. Тем более что при надлежащем объяснении положений этих теорий на уровне здравого смысла, необходимые знания будут доступны и неподготовленным трейдерам.
В литературе ТС, работающие по определенным математическим алгоритмам, называют механическими, хотя это определение неудачно. Более правильно называть их автоматизированными системами. Коренное отличие автоматизированных систем от полностью автоматических (автоматов или роботов) в том, что торговые решения (открытие/закрытие позиций) окончательно реализует, а возможно и корректирует, человек - пользователь ТС. Это и естественно на данной стадии общественных отношений хотя бы потому, что детальный механизм любого рынка слишком сложен для точного математического моделирования. Именно поэтому алгоритмы прогноза будущих цен осторожно называют индикаторами. Признается, что их сигналы не всегда однозначны и их принято подтверждать из альтернативных источников. Понятно, что эффективное взаимодействие автоматизированной ТС с ее пользователем -трейдером возможно лишь при глубоком понимании трейдером результатов, выдаваемых системой на каждом такте ее работы. Это - главная мысль и цель данной статьи. В теории автоматического управления любыми объектами такой режим взаимодействия автоматизированной системы и человека называется режимом советчика. Ниже приводится подробное описание и трактовка расчетных результатов ТС на примере System_14.
Структура ТС и взаимодействие ее блоков.
Данная ТС реализует комбинированную торговлю по нескольким рыночным инструментам по релейной стратегии. Технология торговли по каждому отдельному инструменту образует свою технологическую нитку, содержащую блок прогноза, блок сделки, блок прибыли и блок настройки. Структурная схема такой ТС приведена на рисунке 1. Для простоты на рисунке показаны только две технологические нитки.

Рис.1. Структурная схема комбинированной ТС с двумя технологическими нитками.
Комбинированная торговля предполагает алгоритмическую связь ниток между собой. В данной системе такое связывание ниток производится на уровне торговых критериев в блоках сделки. Помимо индивидуальных блоков каждой нитки в системе имеются общие блоки: блок корреляции, блок настройки и блок ассортимента инструментов.
Блок ассортимента инструментов. В этом общем блоке подбирается ассортимент торгуемых инструментов по принципу достаточно большой их взаимной корреляции. В рассматриваемой ТС System_14 предусмотрен следующий исходный ассортимент рыночных инструментов в виде восьми валютных пар: EUR/USD, GBP/USD, AUD/USD, USD/CHF, USD/DKK, USD/NOK, USD/SEK, USD/ZAR. Степень корреляции определяется не по входной рыночной информации (котировкам), а по уже сформированным по ним торговым критериям Ясді (і - номер торгуемого инструмента). Эти критерии формируются позже по технологии, в блоках сделки (см. схему). Алгоритм вычисления степени корреляции описан ниже в блоке корреляции. В процессе торговли ассортимент торгуемых инструментов не остается фиксированным, а оперативно отбраковывается по величине коэффициентов корреляции. Эти коэффициенты вычисляются в общем блоке корреляции. Трейдер, наблюдая визуально корреляцию разных инструментов на их графиках, может вмешиваться в результаты отбраковки: либо сохранять отбрасываемые инструменты, либо добавлять новые по своему усмотрению.
Взаимодействие трейдера с системой. В части подбора ассортимента рыночных инструментов и их отбраковки у трейдера имеются большие возможности применить свое чутье рынка и интуицию. Дело в том, что формально производить эти действия только на основе взаимной корреляции инструментов - это весьма грубая математическая процедура. Известно, что коэффициенты корреляции хорошо реагируют на большие отклонения котировок от их среднего и слабо чувствительны к относительно небольшим колебаниям котировок. Поэтому вычисление коэффициентов корреляции в реальном времени указывает степень связи котировок разных валютных пар с существенным запаздыванием (подобно запаздыванию рыночных индикаторов на основе скользящего усреднения). Правда, можно попытаться выровнять чувствительность коэффициентов корреляции математическими приемами, но это пока не опробованный путь. С другой стороны, наметанный взгляд опытного трейдера на графики котировок, да еще с учетом новостной информации, позволит трейдеру более оперативно отбраковывать ассортимент инструментов и тем самым уменьшить указанное запаздывание. Таким образом, здесь взаимодействие человека с автоматизированной системой сулит заметный эффект.
Блок прогноза. В каждом і-м блоке прогноза прогнозируются экстремумы котировки. Это делается по двум моделям прогноза: по стандартному колебательному звену и по ценовому коридору. Каждый из этих прогнозов выдает значение своего локального критерия Ятр (для колебательного звена) и Якор (для ценового коридора). Возможные значения этих критериев: +1 для роста будущей котировки, -1 для ее снижения. Данные прогнозы производятся независимо для двух различных периодов ценовых гармоник. Для гармоники 1 диагностируется новый знак тренда котировки в случае, если сигналы обоих локальных критериев Ятр и Якор совпадают. В противном случае знак остается прежним. Получаемый прогноз фиксируется в результирующем критерии А1. Таким образом, критерий А1 сигнализирует направление тренда котировки по гармонике 1. Ясно, что моменты смены сигнала А1 означают прогноз экстремума котировки (смена +1 на -1 означает прогноз момента максимума, а смена -1 на +1 означает прогноз момента минимума). Аналогично формируется критерий А2 для прогноза гармоники 2. Но эти прогнозы еще не являются окончательными. Они далее проверяются на достоверность в блоке сделки.
Взаимодействие трейдера с системой. Здесь также имеются большие возможности вмешательства трейдера в действия автоматизированной системы, ибо прогноз такого нестационарного объекта как рынок трудно формализуем. Ведь представление динамики рыночных цен моделями апериодического или колебательного звена или моделью ценового коридора - это весьма упрощенное описание действительности. Поэтому здесь также имеют место чутье и интуиция трейдера, вооруженного к тому же новостной информацией. Здесь трейдер может применить взгляд на рынок в различных временных масштабах, что часто предлагается мэтрами рынка. В данной Т С это моделируется прогнозом котировок по двум гармоникам с существенно разными периодами.
Блок сделки. Здесь окончательный прогноз знака тренда формируется комбинированием обоих результирующих критериев R1 и R 2 по принципу их согласованности. Окончательный критерий Лрез равен этим критериям, если они совпадают. В противном случае сохраняется значение Rрез на предыдущем временном такте. Но и это еще не окончательный сигнал для сделки. Дополнительно к указанному совпадению тренда котировки по двум гармоникам, формируется и проверяется показатель достоверности прогнозов. Именно для этого в данной ТС производятся однотипные прогнозы для выбранного ассортимента торгуемых инструментов. Одноименные прогнозы по всему ассортименту торгуемых инструментов сопоставляются по значениям критериев Rрез/' для всех i от 1 до 8. На каждом временном такте вычисляется среднее значение этих критериев D, которое может быть в диапазоне от -1 до 0 или от 0 до 1 и изменяется кратно 2/8=0,25. Для данного i-го инструмента, чем больше произведение Rрезi*D, тем достовернее данный прогноз тренда котировки. Эта величина и является показателем достоверности прогнозов. В связи с этим для каждой i-ой нитки данный показатель сопоставляется с заданным пороговым значением ?>пор. Окончательный прогноз считается достоверным и используется в блоке сделки, только если показатель его достоверности превышает данный порог. Т акой прогноз и фиксируется в блоке сделки в виде критерия сделки Rсд. Т аким образом, критерий Rсд окончательно сигнализирует знак тренда будущей котировки, а моменты смены этого знака сигнализируют моменты экстремума котировки. По принятой в этой ТС релейной стратегии торговли в эти моменты экстремума закрываются все открытые позиции и открываются новые позиции противоположного знака. В момент смены Ясд =-1 на Ясд =1 открываются короткие позиции (на продажу), а в момент смены Ясд =1 на Ясд =-1 открываются длинные позиции (на покупку).
Взаимодействие трейдера с системой. Главная логическая слабость примененных здесь алгоритмов заключается в игнорировании сигналов торговых критериев в случае их не совпадения или не подтверждения, ибо при этой неопределенности открытые позиции сохраняются. Некоторые трейдеры, тестировавшие мои ТС, замечали этот эффект издишнего протягивания открытых позиций. Конечно, можно было бы закрывать такие сомнительные позиции. Но оказалось, что это снижает глобальный показатель эффективности ТС - % годовых. Видимо причина здесь в том, что принудительное закрытие потенциально убыточных позиций чаще оказывается неэффективным. По этим же соображениям сомнительна традиционная стратегия торговли с периодическими входами и выходами на рынке. Еще она возможность корректирования результатов ТС - это варьирование объемов сделок и использование отложенных ордеров. Иначе говоря, можно отклоняться от принятой здесь релейной стратегии торговли.
Блок прибыли. В этом блоке рассчитываются итоговые и вспомогательные показатели эффективности ТС. Прибыль от каждой сделки вычисляется сначала в варианте потенциальной (кажущейся) прибыли Рпот, которая находится по формулам калькулятора трейдера через разность цен открытия позиции и текущей цены на данном временном такте. Для этого в алгоритме запоминается цена открытия позиции. В момент закрытия позиции потенциальная прибыль превращается в фиксируемую прибыль Р. Фиксируемая прибыль суммируется за выбранный исторический период
системы. Эта величина пропорционально пересчитывается за период в 1 год. Это и есть годовой доход для данной ТС. Естественно отнести этот годовой доход к величине заложенного депозита в %. Этот стандартный экономический показатель назван нами % годовых P%. Ясно, что этот показатель зависит от объема торговли Zm, а значит от риска торговли. Объем торговли (число одновременно открываемых позиций в лотах) определяется принятым риском торговли (риском потери депозита при маржин коле). В моих ТС этот важнейший показатель считается статистически через фактические просадки Рпр на истории системы. Статистическими приемами через эти просадки рассчитывается гарантированная просадка гарРпр. Гарантированная просадка - это по определению такая величина просадки, которая никогда не будет превышена в данной ТС. Точнее говоря, обыденный термин «никогда» следует заменить строго статистическим термином «с заданной вероятностью» ( у меня она выбрана на уровне 2 - 3%».)
Блок настройки. В этом блоке оптимизируются настроечные константы системы: параметры моделей прогноза для обеих гармоник котировок. Это производится поиском максимума глобального критерия эффективности ТС -%годовых Р% путем варьирования настроечных констант на истории системы. При этом понятно, что приемлемый риск торговли будет обеспечиваться до тех пор, пока расчетная гарантированная просадка плюс дилерский залог остаются меньше величины депозита. Из этого условия и рассчитывается оптимальный объем торговли Zm. Поэтому при настройке ТС удобнее вместо отношения годовой прибыли к депозиту оперировать отношением годовой прибыли к гарантированной просадке. Ясно, что эти отношения эквивалентны при выполнении условия равенства гарантированной просадки и величины депозита. При нарушении же этого равенства, указанное отношение к гарантированной просадке остается неизменным, а отношение к депозиту возрастает и одновременно возрастает риск потери депозита. Чтобы его вернуть назад (вернуться к выбранному уровню риска торговли), следует соответственно уменьшить объем торговли Zm. Переход же к итоговому показателю: отношение годовой прибыли к гарантированной просадке, позволяет избежать пересчета объема торговли при настройке ТС. Процедуры настройки констант автоматизированы стандартными средствами макросов в Excel.
Взаимодействие трейдера с системой. При анализе итоговых показателей трейдер должен учитывать важную особенность настройки ТС, обусловленную нестационарностью рынка, как динамического объекта. В силу нестационарности результаты настройки системы на ее истории оптимальны, строго говоря, только в пределах этой истории. При обновлении рыночных данных оптимальность постепенно исчезает, так как на новой истории закономерности изменения рыночных цен уже другие. Это количественно проявляется в результатах настройки: при старых значениях настроечных констант % годовых, как правило, снижается и на абсолютно новой истории это уменьшение может быть в разы. Может показаться, что противодействовать этому можно регулярно повторяя настройку ТС. Но, к сожалению, это не выход из положения. При каждом акте настройки сбивается динамика алгоритмов прогноза, вследствие чего могут возникать нештатные сигналы на открытие и закрытие позиций. Поэтому рекомендуется повторять процедуру настройки достаточно редко, скажем, при уменьшении % годовых в три и более раз. Кроме этого, не все константы системы подвергаются автоматической настройке. В частности, пороговый уровень достоверности торговых критериев Ппор выбирается самим трейдером. Этот уровень определяет и частоту сделок ТС на ее истории, что удобнее отдать на откуп самому трейдеру по его менталитету. Это же относится и к пороговому уровню корреляции Кпор, о котором говорится ниже, в блоке корреляции.
Блок корреляции. В этом блоке вычисляется показатель достоверности прогнозов, о котором уже говорилось в блоке сделки. Но главное назначение этого блока - вычисление коэффициентов корреляции для каждого инструмента Ki. По величине этих коэффициентов принимается решение о включении или отбрасывании данного инструмента в ассортименте торгуемых
инструментов. Чем ближе коэффициент корреляции Ki к единице, тем более подобно во времени поведение его котировки с котировками остальных инструментов. Степень этого подобия учитывается весовыми коэффициентами Wi, имеющими значение 0 или 1 (1 - означает включение данного инструмента в ассортимент, а 0 - отбрасывание его). Для формирования весов Wi коэффициент корреляции Ki для данного инструмента сравнивается с выбранным пороговым значением Кпор. Если оказывается К>Кпор, то принимается Wi=1, в противном случае полагается Wi=0.
Заключение.
Для достижения хороших результатов применяемой автоматизированной ТС возможно и желательно активное вмешательство трейдера в работу системы. Успех такого вмешательства зависит не только от квалификации трейдера, но и от степени его понимания логики работы системы. В результате, среднестатистическая эффективность автоматизированной ТС может быть заметно повышена.
Фитерман Михаил Яковлевич
Кандидат технических наук, доцент СПБГГИ(ТУ) (Горный институт)
Содержание раздела