Стратегия «Trade 1»: сигналы на покупку или продажу валютной пары формируются из условия, что опубликованный показатель оказался выше или ниже ожиданий аналитиков с учетом того, к какой стране относится новость.
Рисунок 1. Генерация сигналов buy / sell для 1 стратегии
Стратегия «Trade 2»: сигналы на покупку или продажу валютной пары формируются из условия, что опубликованный показатель оказался выше или ниже его предыдущего значения с учетом того, положителен или отрицателен прирост / снижение для валюты страны.
Рисунок 2. Генерация сигналов buy / sell для 2 стратегии
Стоит отметить, если фактическое значение в обоих стратегиях совпадало с прогнозным (In Line with Expectation), или с предыдущим, то генерировалось значение “no signal”, и торговля не производилась.
Соответственно на каждом таймфрейме были сгенерированы доходности сделок в пунктах, чтобы оценить можно ли зарабатывать на данных новостях и в пределах какого количества пунктов на разных временных отрезках.
Таблица 3.
Описательные статистики доходностей с сигналов
|
Income_m5 |
Income _m15 |
Income _m30 |
Income _h1 |
Income _h4 |
Income _d1 |
||
|
Mean |
14,18 |
11,88 |
9,85 |
8.10 |
25,79 |
30,75 |
|
|
Median |
8 |
5 |
1 |
1 |
23 |
37 |
|
|
Maximum |
758 |
805 |
772 |
657 |
1436 |
1053 |
|
|
Minimum |
-696 |
-627 |
-639 |
-537 |
-667 |
-1130 |
|
|
Std. Dev. |
85,422 |
91,11 |
99,71 |
109,24 |
198,16 |
366,48 |
|
|
Observations |
607 |
607 |
607 |
607 |
607 |
607 |
Для стратегий были проанализированы диаграммы размаха (см. Приложения 2-25). Из текущего датасета были убраны моменты, когда выход новости не производил сигнала и заработка / убытка с него, по той же причине из исследования был убран Fed Interest Rate Decision (Решение ФРС по процентной ставке). Таким образом, исходя из анализа ящичковых диаграмм, наиболее прибыльными оказались новости, представленные в Таблице 4.
Таблица 4.
Новости генерирующие наибольшую прибыль с синалов
|
Trade 1 |
||
|
Новости |
||
|
M5 |
ADP Nonfarm Employment Change; GDP; ISM Non-Manufacturing PMI; ISM Manufacturing PMI; New Home Sales; PPI; Pending Home sales; Nonfarm Payrolls; Unemployment Rate; CPI; Employment Change; RBNZ Interest Rate Decision. |
|
|
M15 |
Core CPI; CB Consumer Confidence; Building Permits; ISM Manufacturing PMI; Pending Home sales; Nonfarm Payrolls; Unemployment Rate; CPI; Employment Change; RBNZ Interest Rate Decision. |
|
|
M30 |
Nonfarm Payrolls; Pending Home Sales; Unemployment Rate; CPI; Employment Change; RBNZ Interest Rate Decision. |
|
|
H1 |
Philadelphia Fed Manufacturing Index; Unemployment Rate; CPI; Employment Change; RBNZ Interest Rate Decision.. |
|
|
H4 |
ADP Nonfarm Employment Change; ISM Non-Manufacturing PMI; ISM Manufacturing PMI; Philadelphia Fed Manufacturing Index; Unemployment Rate; CPI; Employment Change; RBNZ Interest Rate Decision. |
|
|
D1 |
New Home Sales; CPI; GDP; RBNZ Interest Rate Decision |
|
|
Trade 2 |
||
|
M5 |
ADP Nonfarm Employment Change; New Home Sales; ISM Manufacturing PMI; ISM Non-Manufacturing PMI; Pending Home sales; Nonfarm Payrolls; Philadelphia Fed Manufacturing Index; PPI; Unemployment Rate; CPI; Employment Change; RBNZ Interest Rate Decision. |
|
|
M15 |
Building Permits; Core CPI; Unemployment Rate; CPI; Employment Change; RBNZ Interest Rate Decision. |
|
|
M30 |
Nonfarm Payrolls; Unemployment Rate; PPI; CPI; Employment Change; RBNZ Interest Rate Decision. |
|
|
H1 |
Philadelphia Fed Manufacturing Index; Unemployment Rate; CPI; Employment Change; RBNZ Interest Rate Decision. |
|
|
H4 |
ISM Non-Manufacturing PMI; ISM Manufacturing PMI; Philadelphia Fed Manufacturing Index; Unemployment Rate; CPI; Employment Change; RBNZ Interest Rate Decision. |
|
|
D1 |
New Home Sales; CPI; RBNZ; GDP. |
Убыточные торговые сделки не исключаются при моделировании, так как ухудшались метрики качества итоговых моделей и уменьшалась выборка, что может быть критично для XGBoost. Кроме того, опираясь на убыточные торговые сделки, можно выставлять соответствующие стоп-ордера, минимизируя потери.
2.3 Применения машинного обуения
Для моделирования в итоговый набор данных входили переменные, представленные в Таблице 5.
Таблица 5.
Переменные в модели XGBoost
|
Переменная |
Значение |
Тип |
|
|
Income (m5, m15, m30, h1, h4, d1) |
Доходность торговых сделок в пунктах |
Целевая переменная |
|
|
Country |
Тип экономической новости |
Категориальная переменная [1:23] |
|
|
Signal |
Сигнал buy / sell |
Категориальная переменная |
|
|
Standardized unexpected index |
Индекс неопределенности |
Предиктор, коэффициент |
|
|
Power |
Сила сигнала |
Категориальная переменная |
|
|
Volume (m5, m15, m30, h1, h4, d1) |
Тиковые объемы |
Целочисленный предиктор |
|
|
Announcement |
Публикации экономических новостей |
Категориальная переменная |
При построении логистической регрессии, где показатель income заменялся на class с бинарным выходом (1 - доход с сигнала, 2 - убыток с сигнала), (см. Приложения 26-28) было выявлено, что некоторые регрессоры не значимы для различных таймфреймов, однако для алгоритма машинного обучения их необходимо оставить, так как с этим набором переменных метрики точности были выше.
В рамках данной работы предлагается модель extreme gradient boosting в двух вариациях для двух торговых стратегий, позволяющая ответить на вопрос, можно ли заработать на торговле валютными парами на новостях и получить прогнозные оценки по прибыли с торговых сделок.
XGBoost - это оптимизированная распределенная библиотека повышения градиента, которая может быть использована для быстрого и точного решения многих проблем с данными. Известно, что он дает очень хорошие результаты по сравнению с другими моделями машинного обучения по многим задачам. Используемый метод известен как деревья с градиентным усилением решений. Дерево решений - это метод, используемый в классификации (чтобы определить, к какой группе принадлежит выборка) или регрессии (анализ временных рядов). Аспект машинного обучения этой модели работает путем оптимизации, которая измеряет, насколько «чист» узел. XGBoost - более устойчивая к перегрузкам и шумам, а также позволяет нам игнорировать стационарность в конкретном наборе данных.
В работе представлены результаты двух вариаций Xgboost с выходным параметром бинарной классификации и выходным параметром линейной аппроксимации.
Набор данных разделен на две части:
1. Обучающая выборка (с 03.01.2018 10:00:00 по 28.12.2018 11:00:00)
2. Тестовая выборка (с 03.01.2019 08:15:00 по 31.12.2019 10:00:00)
Таблица 6.
Xgboost с выходным параметром бинарной классификации
|
Торговая стратегия |
Модель |
Метрика точности |
Итерации |
profit |
loss |
|
|
Trade1_d1 |
XGBoost (log. reg.) |
0,525 (158/301) |
9 |
97 |
61 |
|
|
Trade1_h4 |
XGBoost (log. reg.) |
0,538 (162/301) |
7 |
95 |
67 |
|
|
Trade1_h1 |
XGBoost (log. reg.) |
0,508 (153/301) |
5 |
91 |
62 |
|
|
Trade1_m30 |
XGBoost (log. reg.) |
0,525 (158/301) |
19 |
75 |
83 |
|
|
Trade1_m15 |
XGBoost (log. reg.) |
0,488 (147/301) |
2 |
97 |
50 |
|
|
Trade1_m5 |
XGBoost (log. reg.) |
0,581 (175/301) |
5 |
122 |
53 |
|
|
Trade2_d1 |
XGBoost (log. reg.) |
0,528 (159/301) |
7 |
99 |
60 |
|
|
Trade2_h4 |
XGBoost (log. reg.) |
0,542 (163/301) |
5 |
91 |
72 |
|
|
Trade2_h1 |
XGBoost (log. reg.) |
0,508 (153/301) |
5 |
91 |
62 |
|
|
Trade2_m30 |
XGBoost (log. reg.) |
0,525 (158/301) |
19 |
75 |
83 |
|
|
Trade2_m15 |
XGBoost (log. reg.) |
0,488 (147/301) |
2 |
97 |
50 |
|
|
Trade2_m5 |
XGBoost (log. reg.) |
0,581 (175/301) |
5 |
122 |
53 |
Все модели градиентного бустинга, за исключением двух, которые работают на стратегии для 30-минутного таймфрейма показывают результат лучше, чем если бы это была модель «random choice». Наилучшая предсказательная сила у моделей на 4-х часовом и 5-минутном таймфрейме: на тестовую выборку в 301 наблюдение за 2019 год алгоритмы смогли успешно просчитать 163 и 175. Profit и Loss отвечают за количество прибыльных и убыточных сделок из подмножества тех, что смогла предсказать модель. Стоит отметить, что модели предсказывали сигналы, преимущественно приносящие положительный доход. В целом, если строго лимитировать возможные убытки и рассматривать прогнозы с точностью выше 50%, можно сделать вывод, что практически все модели дают положительный результат.
У каждой независимой переменной при проведении XGBoost есть веса, которые корректируются при очередном переобучении. Для моделей было установлено количество раундов - итераций, на каждой из которых вычисляются отклонения предсказаний уже обученного ансамбля в обучающей выборке.
Таблица 7.
Xgboost с выходным параметром линейной аппроксимации
|
Торговая стратегия |
Модель |
RMSE |
|
|
Trade1_m5 |
XGBoost (lin. reg.) |
58.27 |
|
|
Trade1_m15 |
XGBoost (lin. reg.) |
51.83 |
|
|
Trade1_m30 |
XGBoost (lin. reg.) |
75.07 |
|
|
Trade1_h1 |
XGBoost (lin. reg.) |
121.50 |
|
|
Trade1_h4 |
XGBoost (lin. reg.) |
174.33 |
|
|
Trade1_d1 |
XGBoost (lin. reg.) |
381.92 |
|
|
Trade2_m5 |
XGBoost (lin. reg.) |
47.03 |
|
|
Trade2_m15 |
XGBoost (lin. reg.) |
74.15 |
|
|
Trade2_m30 |
XGBoost (lin. reg.) |
65.77 |
|
|
Trade2_h1 |
XGBoost (lin. reg.) |
103.67 |
|
|
Trade2_h4 |
XGBoost (lin. reg.) |
118.48 |
|
|
Trade2_d1 |
XGBoost (lin. reg.) |
395.14 |
Для Xgboost с выходным параметром линейной аппроксимации при оптимизации гиперпараметров было необходимо разделить выборку на обучающую и тестовую в пропорциях 9:1 соответственно. По данным из таблицы можно сказать, что лишь на младших таймфреймах алгоритм может дать какой-либо качественный результат, если говорить о точных прогнозах доходностей с сигналов, так как функция похожа на мульти заданный кусочный сплайн, или она имеет слишком специфичную параметрическую форму. Так как XGBoost имеет линейный параметр, мы не можем добиться большей аппроксимации, необходима не линейная функция, которая будет носить в себе большее пространство гипотез.
Рассматривая графики с предсказанными доходностями и оригинальными значениями (см. Приложения 29-40) можно сделать вывод о том, что практически все модели далеки от идеала и требуют более тонких настроек: улучшения гиперпараметров, увеличения выборки или дополнительных предикторов. Однако в большинстве своем, если предсказанное значение имеет знак аналогичный оригинальному, то это может расцениваться как положительный результат предсказания, не очень точный, но двигающийся в направлении реальных значений прибыли или убытка.
Тем не менее на основе обоих подходов с использованием XGBoost можно получать полезные метрики в реальном времени.
Предположим в реальном времени после выхода новости Nonfarm Payrolls (см. Приложение 10) по стратегии Trade 1 опубликованное фактическое значение оказалось хуже предыдущего. Новость пришла и Соединенных Штатов, и, так USD считается котируемой валютой в паре NZD/USD, алгоритм сгенерировал сигнал на покупку пары. В этом случае, опираясь на исторические значения доходностей сигналов по Nonfarm Payrolls на диаграммах размаха, можно выставить ордер на покупку по рынку с потенциалом прибыли на четырехчасовом промежутке: максимальное значение в пределах 450 пунктов; 25% - вероятность прибыли в 200 пунктов, 50% - прибыль в 70 пунктов. Также, опираясь на нижние квантили «ящиков с усами», можно выставлять стоп-ордера немного ниже потенциальных убытков: максимально возможный убыток - около 50 пунктов, 25% - убыток в 75 пунктов.
Если в Новой Зеландии опубликовали актуальный индекс потребительских цен (CPI), значение которого хуже предыдущего, алгоритм опираясь на стратегию Trade 2, при учете других предикторов, может сгенерировать сигнал на продажу валютной пары NZD/USD. В таком случае, если рассматривается прибыль в течение первого часа после выхода новости, можно размещать stop-loss немного ниже максимально возможного убытка в 250 - 175 пунктов, рассчитывая на прибыль от 125 до 575 пунктов с максимально возможной прибылью около 675 пунктов.
Дополняя такую стратегию элементами машинного обучения, можно получать метрики прогнозируемой прибыли или убытка от сигнала, либо бинарный ответ, получится ли заработать на сигнале или нет - на основе этого принимать решение торговать или воздержаться от торговли.
Теперь рассмотрим показатели, на которых модель акцентирует внимание при предсказании цены (см. Приложения 29-40). Для каждого нумерованного столбца диаграммы соответствуют предикторы: 0 - 'power', 1 - 'sui', 2- 'volume', 3 - 'country', 4 - 'signal, 5 - 'announcement'. На более низких таймфреймах модель ориентируется больше на типы сигналов (выше 40% вхождение), показатели объемов и принадлежность стране держатся на уровне вхождения около 20%. С увеличением таймфрейма модель немного уравнивает показатели, но с явным отрывом отдает предпочтение стране, которая публикует показатель (от 40 до 50%). Это может быть связано с тем, что сигналы из США более варьируются в прибыльности / убыточности стратегий, причем зачастую с одинаковыми размахами доходности и убыточности. Новости из Новой Зеландии более однонаправленны.