Элементы вероятностного анализа рынка Forex

English  Web-программирование Russian
 

Введение.

FOREX - это сокращение от английских слов FOReign EXchange market. Forex - самый крупный финансовый рынок в мире, дневной оборот которого составляет полтора триллиона долларов. В отличие от других финансовых рынков, для Форекс не существует центральной биржи. Он функционирует посредством электронной сети (включая Интернет), узлами которой являются банки, корпорации и частные лица, торгующие валютами друг с другом. Отсутствие центрального узла позволяет рынку Форекс работать круглосуточно.

В апреле 1997 года, лидер Forex on-line технологий - MG Financial Group выпустила первую версию своей он-лайн трейдинг платформы (Deal Station). Эта программа позволяет трейдерам просматривать котировки валют, производить транзакции и отслеживать открытые позиции в режиме реального времени. Особенностью DealStation является и то, что она постоянно обновляет всю свою информацию (ежеминутно). Последняя разработка - Deal Station 2000 построена на основе новейшей технологии "Push" Java, которая позволяет "протолкнуть" новую информацию на компьютер трейдера как только она становится доступной. Одним из конкурентов Deal Station является программный комплекс WinChart компании Straits Index. Одним из достоинств этой программы является возможность обучения элементам технического анализа.

На сегодняшнем этапе развития торговли на финансовых рынках набирает популярность язык программирования MetaQuotes Language 5 (MQL5) для быстрой разработки торгово-информационных терминалов. Язык программирования MQL5 разработан корпорацией MetaQuotes Software. MQL5 позиционируется совместно со средой разработки MetaEditor и предназначен для создания программных средств вычисления технических индикаторов, торговых роботов и различных приложений для автоматизации торговли на финансовых рынках.

Есть два подхода к анализу валютного рынка - фундаментальный и технический. С помощью фундаментального анализа определяются силы спроса и предложения на основе финансовых и экономических теорий, краеугольным камнем которых является политико-экономическая ситуация. Технический анализ рассматривает курсы и объемы трейдинга на основе графического представления котировок валют во времени и направлен на оценку тенденции в будущем. Технический анализ позволяет предсказывать движения курсов валют на основе исследования данных о прошлых курсах и объемах трейдинга. Этот тип анализа полагается на эвристические формулы для отслеживания тенденций движения курсов и позволяет оценить возможности для продажи или покупки валюты. Графики бывают с 5 минутным интервалом, 15 минутным, 60 минутным и 24 часовым. Также применяются графики с интервалами в неделю и месяц. Последние графики служат для оценки долгосрочных тенденций.

   Обменный автомат:


I. Примеры технического анализа.

1. Уровни относительного минимума и максимума.

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


Fig.1.

2. Прямые линии и каналы тенденции.

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


Fig.2.


Fig.3.

3. Текущие (динамические) средние.

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


где n, например, число дней.


Fig.4.

4. Полосы.

Текущие средние характеризуют процесс изменения котировок в среднем. Чтобы оценить статистику выбросов (максимумов и минимумов) относительно средних, вычисляют средний квадрат отклонений (RMS). На fig.5. представлен пример графиков RMS, образующих полосу. При этом RMS могут служить мерой вероятности. Ниже представлены формулы для расчета.



где D* - стандартное отклонение, число дней n,


Fig.5.

I I. Элементы вероятностного анализа рынка Forex.

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

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

1. Моделирование распределения котировок DM.


Fig.6.

На Fig.6 показано модельное распределение суточного графика котировок DM. На графике выделены три тренда: a, b, c. Тренды a, b - возрастающие, c - нейтральный. Красным квадратиком отмечено значение DM =1.8376 в области определения тренда b. На fig.7 показан график распределения вероятностей. Сразу следует отметить, что тренды представляют собой систематическую ошибку и в принципе их следует удалить. Однако, в контексте решаемой задачи, они являются полезной информацией. На fig.8 показана сглаженная кривая распределения вероятностей. Из анализа распределений на fig.7 и fig.8, видно четкое разделение (локализация) трендов. В традиционном техническом анализе это не возможно.


Fig.7.


Fig.8.

2. Локализация трендов реального распределения котировок DM.

На Fig.9 показан дневной график котировок DM с 30 апреля 1997 по 14 июля 1998 годов. Всего 297 отсчетов. На fig.10 показан график распределения вероятностей. Красным квадратиком отмечено значение DM=1.7646. На fig.11 представлен сглаженный график распределения вероятностей fig.10.


Fig.9.


Fig.10.


Fig.11.

Из рассмотрения распределений вероятности видно, что анализируемое значение DM=1.7646 принадлежит к группе трендов переходного периода от низких значений котировок к более высоким. Вероятность попадания в эту группу трендов незначительна. Для графического расчета вероятностей преобразуем распределение на fig.11 в интеграл вероятностей, который показан на fig.12.


Fig.12.

Из представленного выше графика следует, что вероятность котировок DM оказаться в интервале [1.6748; 1.7646] составляет около 30%.

3. Удаление “систематической ошибки”.

Для вычисления вероятностей с заданной (высокой) точностью нам все-таки потребуется удалить тренды (fig.13). Кстати, в традиционном техническом анализе, удаление трендов также практикуется. На fig.14 показано искомое распределение вероятностей случайного процесса абсолютного изменения котировок на fig.13. Внешний вид распределения с очевидностью указывает на то, что рассматриваемый случайный процесс является нормальным или по крайней мере квази-нормальным. Для получения более строгого доказательства необходимо применить критерий “хи-квадрат”.


Fig.13.


Fig.14.

Если на fig.14 подсчитать интеграл вероятностей в промежутке от -0.0370 до .0006(красный квадратик), то он будет равен 0.1986. Таким образом, можно утверждать, что изменение котировок DM в пределах от -0.0370 до .0006 ожидается с вероятностью около 20%. Если мы подсчитаем интеграл вероятностей для симметричного интервала DM, то общая вероятность составит около 38%. Последнее позволят утверждать, что изменение котировок DM в интервале [ – 0.0060; + 0.0060] следует ожидать с доверительной вероятностью 62%.

4. Применение марковских переходных вероятностей.

Процессы изменения курсов валют являются процессами стохастическими, т.е. представляют собой совокупность как детерминированных (тренды) так и случайных событий (fig.13, fig.14). Отсюда следует вывод о целесообразности применения переходных (марковских) вероятностей, которые характеризуют процесс переходов (например, во времени) случайной величины χ из одного состояния χi в другое состояние χj.

Если говорить о процессе изменения котировок валют, то переходные вероятности это условные вероятности pi,j того, что в момент времени t текущее значение курса валюты имеет значение j, при условии, что в момент t-1 оно было равно i. Пример марковского распределения вероятностей P(i,j) представлен на fig.15.




Fig.15.

Основное свойство марковских вероятностей это память о предшествующих переходах. Это свойство в контексте рассматриваемой задачи можно сформулировать следующим образом: распределение вероятностей Pt(i,j) характеризует вероятность того, что котировка валюты примет значение j, при условии, того что отстоящая на t шагов (например, t дней) котировка, имела значение i.

Формулировка реальной ситуации может выглядеть следующим образом. В распоряжении трейдера имеются данные о дневном изменения курса рубля (RUB) к курсу EURO за последние 1,5 - 2 года (например, курс закрытия)*. Последовательность значений RUB/EURO образует марковскую цепь P(i,j). Ежедневное изменение курса RUB/EURO будем интерпретировать как переход случайной величины χ из состояния χi в состояние χj. Совокупность всех переходов образует матрицу переходов (или частость Ni,j), например:



  [ 4  5  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 5 25  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  1 29  7  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  7 27  8  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  8 49 20  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0 21 67  6  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  6 26  2  0  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  1  5  2  0  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  1  5  1  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  8  2  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  1  9  1  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  2  1  0  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  5  6  0  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  5 48  8  0  0  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  7 17  3  1  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  3 16  2  0  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  2  5  2  0  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  4  3  0  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  2 17  4  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  3 54  0]
  [ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0].
Fig.16.

Задача. Требуется ответить на вопрос: если сегоднящий курс RUB/EURO находился в состоянии j=5, то в каком состоянии i=k он будет находиться завтра?

Решение. Воспользуемся матрицей переходов Ni,j и вычислим переходные вероятности pi,j исходя из условия:


M-1   
   Σpi,j = 1,
j =0   

где M - наибольшее значение перехода в системе RUB/EURO. Соответствующая матрица переходных вероятностей будет иметь вид:

  [ .4444  .5556      0      0      0      0      0      0      0      0      0 . . .
  [ .1613  .8065  .0323      0      0      0      0      0      0      0      0 . . .
  [     0   .027  .7838  .1892      0      0      0      0      0      0      0 . . .
  [     0      0  .1667  .6429  .1905      0      0      0      0      0      0 . . .
  [     0      0      0  .1026  .6282  .2564  .0128      0      0      0      0 . . .
  [     0      0      0      0  .2234  .7128  .0638      0      0      0      0 . . .
  [     0      0      0      0      0  .1765  .7647  .0588      0      0      0 . . .
  [     0      0      0      0      0      0   .125   .625    .25      0      0 . . .
  [     0      0      0      0      0      0      0  .1429  .7143  .1429      0 . . .
  . . .
  . . .
  . . .
Fig.17.

Состояние системы RUB/EURO в настоящий момент времени описывается вектром вероятностей:

s1 = [ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0].


Состояние системы RUB/EURO на завтра описывается выражением и вектором:

s2 = P2(i,j) = s1 x P(i,j) =

= [0 0 0 .02292 .2996 .5766 .0971 .0038 0 0 0 0 0 0 0 0 0 0 0 0 0 0].


Принятие решения. Если в качестве алгоритма принятия решения использовать поиск максимума вероятности, то с вероятностью 0.5766 можно утверждать, что состояние котировки RUB/EURO останется прежним, т.к. i=5.

Ниже представлена таблица суточных предсказаний (Predict.) RUB/EURO в период с 5 апреля по 21 мая 2003. Из таблицы исключены дни, в которые ЦБР (www.cbr.ru) не объявлял официальный курс EURO. В последней графе таблицы представлены значения ошибок предсказания (Err [%]) в процентах.



No.DateRealPredict.PmaxErr [%]
104/04/200333.7064.0 0.00100.00
205/04/200333.568533.7064 0.38 -0.41
308/04/200333.194133.7064 0.44 -1.54
409/04/200333.458633.4008 0.67 0.17
510/04/200333.637633.4586 0.39 0.53
611/04/200333.751133.7064 0.44 0.13
712/04/200333.725133.7511 0.33 -0.08
815/04/200333.608333.7251 0.32 -0.35
916/04/200333.562533.7251 0.41 -0.48
1017/04/200333.729433.7251 0.44 0.01
1118/04/200334.117433.7294 0.35 1.14
1219/04/200333.965834.1174 0.31 -0.45
1322/04/200333.839234.1174 0.24 -0.82
1423/04/200333.858233.8392 0.34 0.06
1524/04/200334.132633.8582 0.34 0.80
1625/04/200334.262934.1326 0.29 0.38
1726/04/200334.303334.2629 0.28 0.12
1829/04/200334.424634.6885 0.37 -0.77
1930/04/200334.144734.6885 0.38 -1.59
2001/05/200334.551334.1447 0.27 1.18
2106/05/200334.878034.5513 0.64 0.94
2207/05/200335.138934.8780 0.99 0.74
2308/05/200335.489235.1389 0.99 0.99
2409/05/200335.252035.4892 0.99 -0.67
2513/05/200335.851035.2520 0.99 1.67
2614/05/200335.686035.8510 0.99 -0.46
2715/05/200335.588035.6860 0.75 -0.28
2816/05/200335.434935.5880 0.78 -0.43
2917/05/200335.202535.5880 0.75 -1.10
3020/05/200336.156735.2025 0.99 2.64
3121/05/200336.042536.1567 0.99 -0.32
3222/05/200336.194035.8510 0.50 0.95


Значения реальных котировок и значения предсказаний иллюстрируются графиком (fig. 18).


Fig.18.

График ошибок предсказания показан на fig. 19.


Fig.19.

---------------------------------------------------------------------------------------------------

*) Здесь опускается вопрос точности представления входных данных для расчета матриц переходных вероятностей. Суточные значения котировок представляют собой в значительной степени прореженную выборку случайной величины. Последнее, без надлежащего выбора масштаба области определения случайной величины, может привести ко множеству нулевых строк матрицы переходных вероятностей. Это хорошо иллюстрируется графиком (Fig.19) ошибок предсказания - некоторые значения ошибок превышают 1%. В этом смысле, более надежным представляется использование по-часовых и даже по-минутных (5, 10, 15) выборок. Ошибки предсказания, в этом случае, могут уложиться в "коридор" менее 0.5%.



I I I. Предварительные выводы.

Представленные результаты исследования вероятностных распределений котировок валют для рынка Forex показывают следующее.

a. Как графическая форма представления распределений вероятностей, так и численные характеристики позволяют интерпретировать состояние рынка Forex.

b. Представленные численные характеристики вероятностного анализа (интегралы вероятностей и доверительные вероятности) носят обобщающий характер и могут использоваться для долгосрочных прогнозов. Программное обеспечение, в контексте долгосрочных прогнозов, может быть статическим, т.е. использовать некоторую базу данных котировок валют. База данных может пополняться пользователем в “ручном режиме”. Динамическое программное обеспечение должно включать в себя дополнительный функциональный блок для получения котировок валют в реальном времени без перезагрузки HTML-страницы. Например:
Интеграция Ajax-XMLHttprequest и Perl (пример I)

с. Применение аппарата марковских цепей целесообразно использовать для краткосрочных прогнозов, что является актуальным для трейдеров. Разработка исследовательской версии такой программы и проведение с ее помощью исследований вероятностных распределений потребует от 1,5 до 2 месяцев. Демонстрационную версию программного обеспечения CPS (Currency Prediction Software) можно посмотреть Здесь.