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

Функция статистической модели

Модель выполняет функцию индикатора, предсказывающего тенденцию изменения цены. На входе модель принимает обработанную историю котировок, а на выходе оценку вероятности движения цены вверх. Формализуем вышесказанное. Модель есть функция вероятности , где -отсчет дискретного времени, — значение цены закрытия бара в момент времени , — все значения бара в момент времени , — функция обработки истории котировок. Зная оценку вероятности движения цены вверх, можем легко оценить вероятность движения цены вниз как . В качестве могут использоваться функции определения наклона линейного тренда, поиска пиков, детектирования пересечения линий скользящих средних и т. п.

Варианты моделей и анализируемые данные

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

Поведение Forex крайне хаотично и трудно предсказуемо. Бороться с высоким уровнем случайного шума лучше всего увеличением количества обрабатываемых исторических данных. Однако здесь имеются ограничения:

· Фундаментальное поведение Forex меняется. Forex до 2000 года заметно отличается от Forex после 2003 года. В связи с этим нет смысла анализировать исторические данные, полученные до 2000 года.

· По одному суточному графику начиная с 2000 года можно получить примерно 2000 примеров для статистической оценки параметров модели. Этого мало для надежных оценок в условиях крайне высоких шумов в данных.

В тоже время можно предположить, что имеются фундаментальные зависимости, действующие на протяжении многих лет и наблюдаемых в той или иной степени на всех основных валютных парах. Действительно, вряд ли психология трейдера, работающего на EURUSD, радикально отличается от психологии трейдера, работающего на GBPJPY. Оба трейдера это люди, которые верят в тренд, понимают, что тренд не может продолжаться вечно, начинают волноваться при резком увеличении выигрыша или проигрыша по открытой позиции и т. п. В связи с этим при создании модели ROBUSTDM[1] совместно анализировались суточные исторические данные по 10 валютным парам начиная с 2000 года. То есть строилась модель, учитывающая зависимости, наблюдаемые все последние 8 лет на всех 10 валютных парах! Конечно, при этом теряются некоторые индивидуальные особенности валютных пар. Но отчасти учет особенностей выполняется при настройке параметров стратегии для конкретной валютной пары (смотри раздел «Приложение результатов моделирования»). Дополнительно, из желания все-таки попытаться максимально учесть индивидуальность валютных пар, был создан ряд моделей, объединенных под псевдонимом DM. DM – это набор моделей, каждая из которых оценивает свои параметры по суточным историческим данным только одной валютной пары. Про DM можно утверждать, что с ее использованием может быть получена положительная средняя прибыль, что фактор прибыльности больше 1. Но, к сожалению, более точные оценки характеристик стратегий на основе DM дать пока нельзя. По прошествию некоторого времени (ведется демо-торговля) для DM можно будет дать более точные оценки. И ROBUSTDM, и DM прогнозируют направление движения цены закрытия по прошествию суток.

Специально для трейдеров, предпочитающих часовые графики, была создана модель ROBUSTDM HOUR. Параметры этой модели оценивались на почасовых исторических данных, начиная с 2000 года по 10 валютным парам (примерно 500000 примеров для оценки параметров!). ROBUSTDM HOUR прогнозирует направление движения цены закрытия по прошествию часа.

Выбор типа и структуры статистической модели

Прежде чем начать оценивать параметры моделей, необходимо определить их количество и как эти параметры будут использоваться. Арсенал прикладной статистики предлагает на выбор линейную регрессию, деревья решений, искусственные нейронные сети и др. Из статистики известно, что чем сложней модель, тем лучше она ведет себя на обучающих данных[2] и тем менее надежно она себя ведет на новых данных (в нашем случае при демо или реал-торговле). С другой стороны совсем уж простая модель не позволит обнаружить полезные зависимости. С точки зрения авторов этой работы и многих других специалистов по прикладной статистике, лучшим способом оценки характеристик выбранного типа модели являеться следующий прием. Все примеры разделяются случайным выбором на два набора, набор обучающих примеров и набор тестовых примеров[3]. С использованием обучающих примеров выполняеться оценка параметров модели, а с помощью тестовых примеров оцениваются характеристики полученной модели. Причем рекомендуеться выполнять данную процедуру несколько раз[4], всякий раз меняя случайным выбором состав обучающих и тестовых примеров. Результаты тестов осредняют.

Оценка параметров статистической модели

Метод оценки параметров модели зависит от выбранного типа модели. Разработано немало методов оценки параметров моделей. Для линейной регрессии, например, имеются методы MSE, M, MM, LTS и S оценки параметров. Добавьте к этому различные методы выбора значимых переменных (BACKWARD, FORWARD, STEPWISE) и методы оптимизации (сопряженные градиенты, квазиньютоновский метод, метод Ньютона-Рафсона и др.) и станет ясно, какое здесь имеется обширное поле исследований. Конечно, поле исследований будет обширным только при наличии развитого современного пакета статистических программ. Таких, как SPSS, STATISTICA, SAS, KXEN и др. Легальные копии этих программ стоят в районе 50000$-500000$. Но, даже приобретя такой пакет его еще надо освоить в совершенстве, а без глубоких теоретических и практических познаний в статистике это практически невозможно. Для выбора типа модели и оценки ее параметров в данной работе использовался SAS (SAS/STAT и SAS Enterprise Miner). Авторы этой работы уже несколько лет профессионально работают с программным обеспечением SAS.

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

Приложение результатов моделирования

Модель предоставляет возможность оценивать вероятности тенденций, но сама по себе она не формирует торговые решения. Здесь мы покажем один из возможных вариантов использования модели в эксперте. Исходный текст программы составлен на языке MQ4[5], используемого в распространенном торговом терминале MetaTrader.

Введем следующие функции, процедуры и глобальные переменные.

· double Model() Вычисляет вероятность движения цены вверх

· void OpenPosBuy() Если нет открытых длинных позиций по валютной паре, то открывает длинную позицию. Иначе никаких торговых операций не выполняется.

· void OpenPosSell() Если нет открытых коротких позиций по валютной паре, то открывает короткую позицию. Иначе никаких торговых операций не выполняется.

· void ClosePosBuy() Если есть открытая длинная позиция по валютной паре, то закрывает ее. Иначе никаких торговых операций не выполняется.

· void ClosePosSell() Если есть открытая короткая позиция по валютной паре, то закрывает ее. Иначе никаких торговых операций не выполняется.

· double P1_cut Глобальная переменная определяющая порог принятия решения об открытии или закрытии длинной позиции.

· double P0_cut Глобальная переменная определяющая порог принятия решения об открытии или закрытии короткой позиции.

В случае игры на повышение эксперт работает следующим образом:

1. Вычисляется вероятность движения цены вверх

2. Если , то открывается длинная позиция (открыто всегда не более одной длинной позиции)

3. Если , то длинная позиция закрывается

В случае игры на понижение эксперт работает аналогично. Эксперт работает только при появлении очередного сформировавшегося бара (эксперт с явным контролем открытия баров). Приведем код основной процедуры эксперта для торгового терминала MetaTrader.

int Main(){

double P1 = Model();

double P0 = 1 – P1;

if(P1 < P1_cut)

ClosePosBuy();

Else

OpenPosBuy();

if(P0 < P0_cut)

ClosePosSell();

Else

OpenPosSell();

return(0);

}

Конкретные значения пороговых переменных P1_cut и P0_cut определяются оптимизацией стратегии средствами торгового терминала или другими вспомогательными средствами.

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

1.

2.

3. Каждый оптимизируемый параметр должен повлиять на не менее чем на 100 сделок, среди которых прибыльных сделок должно быть не менее 60%.

Приведем пример на основе вышеприведенной структуры эксперта. Допустим, мы выбрали для валютной пары AUDUSD период оптимизации 2004-2007 год. Лучший вариант настроек эксперта обеспечил на периоде оптимизации 234 сделки. Из них длинных позиций было 165, а коротких 69. Прибыльных длинных позиций 102 (62%). Прибыльных коротких позиций 48 (70%). Мы видим, что эксперт удовлетворяет первому правилу. Однако параметр P0_cut повлиял только на 48 сделок. Хотя процент прибыльных сделок по коротким позициям достаточно высок, количество сделок не позволяет утверждать, что высокий процент не является чистой случайностью. Поэтому, лучше полностью запретить для данного эксперта открытие коротких позиций. Этого можно добиться, жестко установив P0_cut = 2.

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

Рисунок 1 – Прогноз не обязательно должен исполняться немедленно. Реализация прогноза может быть немного отодвинута вперед по времени.

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

Рисунок 3 – Прогноз не является гарантией точного следования цены за основной тенденцией. Необходимо методичное следование прогнозам, несмотря на порой существенные колебания выигрыша при немедленном закрытии позиций.

Оценка прибыльности стратегии и рисков

Основными характеристиками любой торговой стратегии являются прибыльность и риск. Под прибыльностью в данном исследовании понимается процент увеличения депозита за 1 год торговли от значения на начало года (процент годового дохода).

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

Необходимо учитывать, что максимальная просадка в действительности зависит, среди прочих факторов, и от продолжительности торговли. Чем дольше мы торгуем, тем выше вероятность хоть раз случайно получить продолжительную серию убыточных сделок даже при самой замечательной торговой стратегии, и соответственно тем будет больше абсолютное значение максимальной просадки. Давайте вспомним статистику. При подбрасывании монеты вероятность выпадения “орла” равна 0.5. Чем больше мы сделаем бросков, тем больше вероятность обнаружить в серии исходов подбрасывания «неожиданно» большое кол-во подряд следующих выпадений «орла». Таким образом, можно добиться и 2 подряд выпадений «орла», и 10, и 100 и даже 1000. Вероятность таких событий подчиняется распределению Бернулли. И ни один, даже самый сложный, математический метод не сможет отменить этого закона. Мы можем только снизить вероятности катастрофических убытков до приемлемого уровня. В приведенных исследованиях максимальная просадка рассчитывалась исходя из 4-х лет (2004-2007) торговли по валютной паре.

Формулы, по которым оцениваются характеристики торговых стратегий

Где , — коэффициенты, зависящие от торговой стратегии и валютной пары, — объем совершаемых сделок, — значение депозита на начало года.

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

Приведем пример расчетов. Пусть на депозите имеется 10000$ и требуется обеспечит в среднем 5% годовых при торговле на паре EURUSD по стратегии ROBUSTDM[6]. Определяем по таблице 1 соответствующие коэффициенты и . Так как = 10600, следовательно . При этом, максимальная просадка составит или в абсолютном выражении 600$. Если захотим увеличить средний годовой доход до 10%, то надо быть готовым к просадке в 1200$. В принципе, при использование в своей практике торговли на Forex только сигналов от одного ROBUSTDM, можно достичь 80% годового дохода при максимальной просадке 15%.

Таблица 1 — Характеристики прибыльности и рисков для одного варианта стратегии на основе модели ROBUSTDM. Приведенные данные верны для ранее приведенной простой стратегии с фиксированным объемом сделок и двумя пороговыми параметрами.

Symbol

AUDUSD

12000

14600

EURCHF

2900

5400

EURJPY

13800

9700

EURUSD

10600

13300

GBPCHF

8000

7800

GPBJPY

13800

13800

GBPUSD

8800

15600

USDCAD

6300

4900

USDCHF

4100

20500

USDJPY

5600

9200

Методы повышения прибыльности и снижения рисков

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

Для наглядного пояснения идеи снова приведем пример с подбрасыванием монеты. Пусть мы подбрасываем монету 2 раза. Хотя реальная вероятность выпадения «орла» равна вероятности выпадения «решки», мы легко можем получить ситуацию, когда все два раза выпал «орел». Если быть точным, то вероятность такого события равна 0.25. Если же мы подбросим монету 100 раз и посчитаем отношение количества выпавших «решек» к количеству выпавших «орлов», то оно будет в пределах 1.1 и 0.9. Если же, мы подбросим монету 1000 раз, то подсчет уже даст 1.01 или 0.99. Таким образом, увеличивая количество подбрасываний монет, мы будем неуклонно стремиться к истинному значению 1. Читатель спросит, какое это имеет отношение к торговым стратегиям? Самое прямое. Если стратегия реально дает 60% прибыльных сделок, то это далеко не значит, что за 10-20 сделок мы получим эти 60%. Но если мы выполним 100 сделок, то на 60% прибыльных сделок уже можно надеяться. Сделать 100 сделок за короткий промежуток времени (например, 3 месяца), и при этом не разориться из-за спрэда, можно одновременно торгуя на нескольких валютных парах несколькими стратегиями. При этом объем одной сделки необходимо пропорционально уменьшить.

В идеальном случае валютные пары и стратегии должны вести себя независимо. В реальности это не выполняется. Но отчасти независимость все-таки наблюдается. Наш опыт показывает, что при торговле только одной стратегией на 10 валютных парах максимальная просадка снижается в 3 раза по сравнению с торговлей той же стратегией, но на одной валютной паре с удесятеренным объемом сделок!

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