d9e5a92d

Фитерман М. - Анализ и настройка торговых систем в условиях нестационарного рынка

Кандидат технических наук, доцент в Санкт-Петербургском государственном Горном институте (СПбГГИ). С 2004г применение математических методов моделирования и автоматического управления в макроэкономике.

С 2007г - разработка методов, структуры и алгоритмов систем торговли на рынке Форекс. Для изучения поведения рынка пытаюсь применить теоретический аппарат теории автоматического управления и теории случайных процессов.
Первоочередная задача каждого трейдера, намеревающегося применить новую торговую систему - тестировать эту систему и сравнить ее с другими системами по показателям прибыльности. Причем это следует делать самостоятельно, не полагаясь на результаты тестирования от других рыночных деятелей. К сожалению, сегодня на рынке и около него гнездится множество рыночных умельцев и учителей.

Выбрать из них честного и отвечающего за свои обещания - это большое искусство. Рыночные умельцы обещают Вам предоставить готовую торговую систему, по которой можно за полгода получать $270,000 прибыли (а за следующие полгода накопить новый депозит).

Другие обещают сами торговать по своей системе, но на Вашем депозите, и гарантируют прибыль такого же порядка. Наконец, третьи предлагают курсы обучения трейдингу, после которых Вы станете профессионалом. (А если не получится, то Вам предложат следующий мастер-курс.) Беда здесь не столько в потере своих денег, сколько в потере времени. Но, так или иначе, чтобы анализировать торговые системы, выявлять и сравнивать их достоинства и недостатки, необходимы специальные знания.

Поэтому сформулируем основные вопросы, связанные с такой деятельностью, и последовательно их разберем. Вопросы:
1. Что такое нестационарный рынок и какие проблемы он порождает?
2. Что и как анализировать в торговой системе?
3. Для чего нужна настройка торговой системы?
4. Как с формулировать критерий настройки и что и как настраивать?
5. Как трактовать полученные итоговые результаты?

Что такое нестационарный рынок и какие проблемы он порождает.

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

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

Это следует понимать так, что хотя конкретные значения случайного процесса в каждый момент времени случайны, но характер, т. е. общий вид этих случайных изменений, подчиняется некоторому закону. Можно утверждать, что основной закон динамики рыночных цен - это колебательный характер их изменений. Если закон случайного процесса не изменен во времени, то такой случайный процесс называют стационарным.

В противном случае изменений самого характера случайного процесса, он называется нестационарным. Например, если периоды и амплитуды ценовых колебаний изменяются в ограниченном диапазоне и не меняются резко, то это свидетельствует о стационарности рынка.

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

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

Это обстоятельство общеизвестно.

Что и как анализировать в торговой системе.


Как же можно бороться с нестационарностью рынка при прогнозе цены. Есть два альтернативных подхода.

Один предполагает оперативное выявление характера движения рыночных цен в данный временной период и соответствующее переключение на другую модель прогноза. В простейшем случае можно оставаясь в рамках одной модели изменять только ее константы, главным образом, константу периода колебаний T. Неудобство этого варианта в том, что необходимо оперативно диагностировать изменение характера колебаний рыночных цен. В реальности такие изменения удается улавливать лишь с большим запаздыванием. Другой подход заключается в комбинации двух и более разных моделей с различными константами.



Это производится одновременным прогнозом цен в разных временных масштабах (с разными константами T). Затем результаты этих независимых прогнозов сравниваются и сочетаются в критерии сделки купли/продажи. Преимущество этого подхода в том, что нет необходимости оперативно выявлять подходящую модель движения рыночных цен.

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

Для чего нужна настройка торговой системы.


Из выше сказанного можно сделать вывод, что эффективность (прибыльность) торговой системы определяется точностью прогноза рыночных цен. Действительно, следующие функциональные блоки системы, такие как выработка критерия сделки, формирование сделки купли/продажи (открытие/закрытие позиций) и блок расчета прибыли подчиняются принятым на рынке правилам и алгоритмы этих блоков не варьируются. Поэтому настройке подлежит только принятая модель прогноза, а значит, ее алгоритм. Для этого в алгоритме прогноза можно и нужно менять его константы, из которых основная - расчетный период T. Правда в сложных, комбинированных торговых системах может быть более одной варьируемой константы.

Понятно, что подбирать численные значения варьируемых констант блока прогноза следует до достижения максимума показателя прибыльности, вычисляемого на истории системы. Надо сказать, что как формулировка такого показателя, так и его максимизация варьированием настроечных констант не является тривиальной процедурой. Так, если максимум выбранного показателя априори единственный и его зависимость от значений настроечных констант не имеет скачков и разрывов, то можно применить известные стандартные методы поиска. Эти методы, в частности метод градиентного поиска, весьма экономны и могут применяться регулярно во все время работы системы.

Такая настройка торговой системы по определению является оперативной. Но, в силу особенностей рыночной торговли, общепринятый показатель прибыльности на основе суммарной прибыли всех сделок на истории не отвечает указанным требованиям неразрывности и гладкости.

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

Как сформулировать критерий настройки и что и как настраивать.

Желательно, чтобы настройка системы производилась по единственному, глобальному показателю эффективности. Это означает, что максимум такого показателя должен однозначно отвечать наилучшему качеству настраиваемой системы. Но на практике качество системы чаще определяется набором показателей, каждый из которых раскрывает одну сторону работы системы. Так обстоит дело и с торговыми системами, реализующими маржинальную торговлю на рынке через посредство брокера.

Неоднозначность здесь в том, что кроме суммарной прибыли системы за фиксированный период не менее важен уровень риска маржинальной торговли, зависящий от заложенного депозита и объема торговых сделок. Этот показатель определяется просадками системы, а точнее максимально возможной просадкой ее за фиксированный период.

В статистике такая величина называется гарантированной просадкой. Гарантированная просадка системы - это гипотетическая величина, зависящая от вероятности серии убыточных сделок. Эту гипотетическую величину невозможно вычислить непосредственно, но можно найти статистическими приемами на достаточно представительной истории системы.

Такой расчет составляет существо проблемы управления капиталом трейдера. Теорию такого управления я описывал в журнале Forex Magazine 384, 310 и в более ранних статьях, а также в учебном пособии на сайте
Для обеспечения желаемого уровня риска маржинальной торговли гарантированная просадка в сумме с дилерским залогом не должна превышать депозит трейдера. При обеспечении этого условия суммарная прибыль системы становится глобальным критерием ее эффективности.

В связи с этим удобно в качестве глобального критерия эффективности торговой системы принять отношение годовой прибыли к депозиту (в процентах). В банковском деле такой показатель называется % годовых. (Естественно, что суммарная прибыль системы на ее истории должна быть пропорционально пересчитана на период в один год.) При этом задача настройки торговой системы формулируется как поиск максимума критерия эффективности в виде % годовых при условии удержания суммы гарантированной просадки и залога ниже депозита. Математически - это задача на условный максимум. Заметим, что указанный %годовых показывает фактическую прибыльность данной системы, но не безусловно.

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

Ясно, что эти показатели совпадают в случае поддержания заданного уровня риска. Но при этом отношение прибыли к гарантированной просадке не зависит от объема торговли, так как и числитель и знаменатель пропорциональны этому объему и сокращаются. Поэтому такой показатель естественно назвать потенциальным % годовых, который совпадает с фактическим % годовых при регулировании уровня риска. Удобство же использования потенциального % годовых в том, что настройка констант системы по потенциальному % годовых и настройка уровня риска подбором объема торговли становятся взаимно независимыми процедурами.

Кстати, при программировании торговой системы в виде файла Excel, сформулированная задача на условный максимум фактического % годовых решается стандартной процедурой в Excel поиск решения.... Вторую задачу безусловной максимизации потенциального % годовых варьированием настроечных констант торговой системы можно запрограммировать макросом, прикрепляемым к Excel-файлу системы.

Таким образом, Excel-файл торговой системы включает две дополнительные процедуры, реализуемые стандартными средствами Excel.

Как трактовать полученные итоговые результаты.

Использование глобального показателя прибыльности торговой системы облегчает трактовку результатов ее тестирования, ибо не требуется обращать внимания на другие, вспомогательные показатели, такие как максимальная просадка системы или соотношение числа прибыльных и убыточных сделок. Но даже в этих условиях возникает некоторая неоднозначность и обусловлена она нестационарностью рынка.

Поскольку движение рыночных цен представляет собой случайный процесс, то важным критерием является статистическая достоверность итоговых результатов, полученных на истории системы. Как правило, эта достоверность тем выше, чем длиннее история. Но это правило нарушается в случае нестационарности данного случайного процесса.

Понятно, что настройка любой динамической системы строго оптимальна только для того исторического интервала, на котором эта система настраивалась. Однако, если модель, по которой работает система, адекватна действительности, а смоделированные закономерности сохраняются в будущем, то полученные итоговые результаты можно считать справедливыми и на будущее. Но для нестационарного рынка эти результаты постепенно устаревают в будущем.

Отсюда рождается парадокс: с одной стороны, чем короче история системы, тем результаты настройки более адекватны данному историческому интервалу, но тем скорее они устаревают в будущем. И напротив, чем длиннее история, тем более стабильны результаты настройки, но зато они адекватны не данному историческому периоду, а всей большой истории в среднем. Современная теория систем не дает ответа, как разрешить указанный парадокс. Основным параметром, по которому следует ориентироваться в выборе длины истории, является число сделок на истории.

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

Не менее важным является вопрос, как часто следует повторять настройку системы. Казалось бы, в условиях нестационарности рынка настройку следует делать как можно чаще.

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

Поэтому настройка системы не должна производиться слишком часто и желательно приурочивать ее к очередной штатной сделке.

Итоговые результаты торговой системы System 17.

Рассмотрим трактовку итоговых результатов на примере последней системы автора System 17. Эта система пока еще находится в тестировании и поэтому не представлена на авторском сайте. Данная система торгует по шести валютным парам с периодом 1 час (hi) и анализируется на истории в 2500 часов.

Торговля производится с депозитом 25000$ и брокерским плечом 1:100. Глобальный показатель прибыльности - средний за историю % годовых.

Кроме того, вычисляются вспомогательные показатели: гарантированная просадка + залог, процент прибыльных сделок и число сделок за историю. Прогноз цен торгуемых валютных пар производится по двум моделям: по стандартному апериодическому звену с настроечной константой T и по ценовому коридору с настроечной константой Tкор. Объем торгов по каждой валютной паре выбирается из диапазона 0 - 8 лотов. Конкретные объемы для каждой валютной пары - это также настроечные константы Zmi, i=1,2,..,6.

Значение Zmi=0 означает исключение данной пары из торговли. Тестирование системы началось 9.08.11г. В начале тестирования получены следующие показатели:
- % годовых =2700%;
- Zm1(пара ЕиК/Ц^В)=8лот, Zm2(пара ОВР/и^Б)=1лот, Zm3(пара AUD/USD)=0 лот, Zm4(пара ШЕ/СИР)=0лот, Zm5(пара USD/NOK)=8лот, Zm6(пара USD/SEK)=8лот;
- T=51, Ткор=37,8;
- % прибыльных сделок=90%;
- число сделок за историю=19.
% годовых сначала увеличивался до 4500% к 17.08.11г, а затем уменьшался до 2500% к24.08.11г. Остальные показатели за этот период менялись незначительно. Что касается глобального показателя % годовых, следует иметь в виду, что в силу нестационарности рынка этот показатель, максимально достигнутый при настройке системы, постепенно устаревает. Реально он оказывается меньше и это снижение расчетной прибыльности системы относительно факта объективно и должно учитываться трейдером.

В связи с этим в период тестирования, помимо расчетных показателей системы выводились свободные средства на платформе брокера. Они сначала росли от 11000$ 9.08.11г до 77000$ к 18.08.11r, а затем уменьшились до 63000$ к24.08.11г. ( Минимум свободных средств=51000$ оказался 22.08.11г.) Заметим, что при среднем числе сделок за историю 25, длительность одной сделки составляет 2500/25= 100 часов=100\24 ~ 4 дня.

Поэтому обращаться к платформе брокера за новыми котировками и формировать приказы на открытие/закрытие позиций трейдеру достаточно с частотой 100/8=12,7 часов, т. е. примерно дващды в сутки.



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