Предсказание рынка на основе макроэкономических показателей - страница 56
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
3: доходности ценных бумаг разных сроков плюс ещё один
Buy & hold annual percentage rate, 1974 - present: APR = 7.35%
Buy & sell strategy using economic indicators: APR = 13.18%
Данная стратегия дала сигнал на продажу в декабре 2019. Пока сигнал на покупку не даёт. Видимо рынок пойдёт вниз.
Купил и держи.
Интересно было бы посмотреть на форвард-тест такой модели, но тут это невозможно.
Сейчас, насколько я понимаю, все ждут выборов.
3: доходности ценных бумаг разных сроков плюс ещё один
Buy & hold annual percentage rate, 1974 - present: APR = 7.35%
Buy & sell strategy using economic indicators: APR = 13.18%
Данная стратегия дала сигнал на продажу в декабре 2019. Пока сигнал на покупку не даёт. Видимо рынок пойдёт вниз.
Речь о конкретном инструменте или общий показатель?
Итак, задача предсказать S&P 500 индекс на основе имеющихся экономических показателей.
Шаг 1: Находим показатели. Показатели имеются в общем доступе здесь: http://research.stlouisfed.org/fred2/ Их там 240 тысяч. Самым главным является рост GDP. Этот показатель расчитывается каждый квартал. Отсюда наш шаг - 3 месяца. Все индикаторы на более коротком периоде перерасчитываются на 3-х месячный период, остальные (годовые) отбрасываются. Отбрасываем также показатели для всех стран кроме США и показатели, у которых нет глубокой истории (по крайней мере 15 лет). Итак кропотливым трудом отсеиваем кучу показателей и получаем порядка 10 тыс показателей. Формулируем более конкретную задачу прдесказать S&P 500 индекс на один или два квартала вперёд имея в наличии 10 тыс экономических показателей с квартальным периодом. Я делаю всё в МатЛабе, хотя можно и в R.
Шаг 2: Преобразуем все данные к стационарному виду путём дифференцирования и нормирования. Методов тут много. Главное чтобы из преобразованных данных можно было восстановить первоначальные данные. Без стационарности не одна модель работать не будет. S&P 500 ряд до и после преобразования показан внизу.
Шаг 3: Выбираем модель. Можно нейронную сеть. Можно много-переменную линейную регрессию. Можно много-переменную полиномную регрессию. После опробования линейных и нелинейных моделей приходим к выводу что данные настолько зашумлены что вписывать нелинейную модель смысла нет т.к. y(x) граф, где y = S&P 500 и x = один из 10 тыс показателей, бредставляет собой почти круглое облако. Таким образом формулируем задачу ещё более конкретно: предсказать S&P 500 индекс на один или два квартала вперёд имея в наличии 10 тыс экономических показателей с квартальным периодом используя много-переменную линейную регрессию.
Шаг 4: Выбираем из 10 тыс экономических показателей наиболее главные (уменьшаем размерность задачи). Это самый главный и трудный шаг. Допустим берём историю S&P 500 длинной в 30 лет (120 кварталов). Чтобы представить S&P 500 в виде линейной комбинации экономических показателй разного рода, достаточно иметь 120 показателей чтобы точно описать S&P 500 за эти 30 лет. Причём показатели могут быть совершенно любыми чтобы создать такую точную модель из 120 показателей и 120 значений S&P 500. Значит нужно уменьшать количество входов ниже количества описываемых значений функции. Например ищем 10-20 наиболее важных показателей-входов. Такие задачи описания данных небольшим количеством входов, выбранных из огромного количества кандидатов-базисов (словаря), называются разряжённым кодированием (sparse coding).
Методов отбора входов-предсказателей много. Я перепробовал их все. Вот главные два:
Вот первые 10 индикаторов с максимальным коэффициентом корреляции с S&P 500:
Вот первые 10 индикаторов с максимальной взаимной информацией с S&P 500:
Lag это задержка входного ряда по отношению к моделируемому ряду S&P 500. Как видно из этих таблиц, разные методы выбора наиважнейших входов приводят к разным наборам входов. Так как моей конечной целью является минимизация ошибки модели, то я выбрал второй метод выбора входов, т.е. перебор всех входов и выбор того входа который дал наименьшую ошибку.
Шаг 5: Выбираем метод расчёта ошибки и коэффициентов модели. Наипростейшим методом является метод СКО, поэтому линейная регрессия, использующая этот метод, так популярна. Проблема метода СКО в том что он чувствителен к выбросам (outliers), т.е. эти выбросы существенно влияют на коэфициенты модели. Чтобы уменьшить эту чувствительность, вместо суммы квадратов ошибок можно использовать сумму абсолютных значений ошибок, что ведёт к методу наименьших модулей (МНМ) или robust regression. Этот метод не имеет аналитического решения для коэффициентов модели в отличие от линейной регрессии. Обычно модули заменяются на плавные/дифференцируемые аппроксимирующие функции и решение ведётся численными методами и долго. Я пробовал оба метода (лин регрессии и МНМ) и особого преимущества МНМ не заметил. Вместо МНМ, я пошёл в обход. На втором шагу получения стационарных данных путём их дифференцирования, я добавил операцию нелинейной нормализации. То есть, исходный ряд x[1], x[2], ... x[i-1], x[i] ... сначала преобразуется в ряд разниц x[2]-x[1] ... x[i]-x[i-1] ... и потом каждая разница нормализуется путём её замены на sign(x[i]-x[i-1])*abs(x[i]-x[i-1])^u, где 0 < u < 1. При u=1, мы получаем классический метод СКО с его чувствительностью к выбросам. При u=0, все значения входного ряда заменяются на бинарные значения +/-1 практически без выбросов. При u=0.5, получаем что-то близкое к МНМ. Оптимальное значение u лежит где-то между 0.5 и 1.
Следует отметить что одним из популярных методов преобразования данных к стационарному виду является замена значений ряда на разницу логарифмов этих значений, т.е. log(x[i]) - log(x[i-1]) или log(x[i]/x[i-1]). Выбор такого преобразования опасен в моём случае так как в словаре 10 тыс входов много рядов с нулевыми и отрицательными значениями. Логарифм также имеет преимущетсво уменьшения чувствительности метода СКО к выбросамы По существу, моя функция преобразования sign(x)*|x|^u имеет ту же цель что и log(x), но без проблем связанных с нулевыми и отрицательными значениями.
Шаг 6: Расчитывем предсказание модели путём подстановки свежих входных данных и расчёта выхода модели используя те же коэффициенты модели, кторые были найдены линейной регрессией на предыдущем участки истории. Тут важно иметь в виду что квартальные значения экономических показателей и S&P 500 приходят почти одновременно (с точностью до 3 месяцев). Поэтому чтобы предсказать S&P 500 на следующий квартал, модель должна быть построена между текущим квартальным значением S&P 500 и входами задержанными по крайней мере на 1 квартал (Lag>=1). Чтобы предсказать S&P 500 через один квартал вперёд, модель должна быть построена между текущим квартальным значением S&P 500 и входами задержанными по крайней мере на 2 квартала (Lag>=2). И так далее. Точность предсказаний существенно снижается с увеличением задержки больше 2.
Шаг 7: Проверяем точность предсказаний на предыдущей истории. Первоначальная методика описанныя выше (вписываем каждый вход в предыдущую историю, выбираем вход дающий наименьшую СКО и рассчитывем предсказание по свежему значению этого входа) дала СКО предсказания, которая была ещё хуже чем случайные или нулевые предсказания. Задался таким вопросом: а почему вход, который хорошо вписался в прошлое, должен иметь хорошую предсказуемую способность будущего? Имеет смысл выбирать входы модели на основе их предыдущей ошибки предсказаний, а не на основе наименьшей ошибки регрессии на известных данных.
В конце концов, моя модель может быть пошагово описанa так:
Вкратце, выбор предсказателя зависит от его СКО предсказний предыдущих значений S&P 500. Заглядывания в будущее нет. Предсказатель может меняться по времени, но в конце тестируемого отрезка он в основном перестаёт меняться. Моя модель выбрала PPICRM с задержкой в 2 квартала как первый вхoд для предсказания Q2 2015. Линейная регрессия S&P 500 выбранным входом PPICRM(2) за 1960 - Q4 2014 показана внизу. Чёрные кружки - линейная регрессия. Разноцветные кружки - исторические данные за 1960 - Q4 2014. Цвет кружка означает время.
Предсказания S&P 500 в стационарном виде (красная линия):
Предсказания S&P 500 в исходном виде (красная линия):
Из графика видно что модель предсказывает рост S&P 500 во втором квартале 2015 года. Добавление второго входа увеличивают ошибку предсказаний:
1 err1=0.900298 err2=0.938355 PPICRM (2)
2 err1=0.881910 err2=0.978233 PERMIT1 (4)
где err1 это ошибка регрессии. Очевидно что она уменьшается от добавления второго входа. err2 это средне-квадратичная ошибка предсказания, делённая на ошибку случайных предсказаний. То есть err2>=1 означает что предсказание моей моделью не лучше чем случайные предсказания. err2<1 означает что предсказание моей моделью лучше чем случайные предсказания.
PPICRM = Producer Price Index: Crude Materials for Further Processing
PERMIT1 = New Private Housing Units Authorized by Building Permits - In Structures with 1 Unit
Описанная выше модель может быть перефразирована таким образом. Собираем 10 тыс экономистов и просим их предсказать рынок на квартал вперёд. Каждый экономист проходит со своим предсказанием. Но вместо того чтобы выбрать какое-то предсказание на основе количества написанных ими учебников или полученных Нобелевских премий в прошлом, мы ждём несколько лет, собирая их предсказания. После существенного количества предсказаний, мы видим какой экономист более точный и начинаем верить его предсказаниям до тех пор пока какой-нибудь другой экономист не превзойдёт его по точности.
Не прав. Хоть тема и называется "предсказание рынка на основе макроэкономических показателей", но показатели в этом анализе не имеют никакого значения. Просто переменные подставляемые в некую формулу после математического обезличевания и растождествления со всеми внешними смысловыми и логическими связями с Миром. Собранные в абстрактные числовые ряды сухие цифры служат моделью нейронной сети, по ним предсказывающей... нет, не рынок, а тот самый числовой ряд.
Получается технический анализ на фундаментальных данных.
Не всё так просто с фундаментальным анализом. Есть много факторов влияющих на цены не подпадающих под экономические показатели. Это выборы, тот же Брекзит, разного рода слухи и прочее. Они могут влиять на цену сильнее всех экономических показателей.
Получается технический анализ на фундаментальных данных.
Не всё так просто с фундаментальным анализом. Есть много факторов влияющих на цены не подпадающих под экономические показатели. Это выборы, тот же Брекзит, разного рода слухи и прочее. Они могут влиять на цену сильнее всех экономических показателей.
To Peter: Я не предсказываю S&P500 напрямую. Цель данной работы предсказать рецессии чтобы выйти из рынка до их наступления и улучшить прибыльность buy&hold стратегии. Хотя S&P500 содержит акции 500 компаний, двигается он институтными инвесторами, которые продают и покупают сам индекс (или его опции), а не его составляющие. 13% в год кажется не много, но достаточна для больших денег где текучесть важна. Берни Мадофф привлекал его клиентов обещая им скромные 10% в год, чего не смог достичь.
To Uladzimir: Согласен что флуктуации цен зависят от разных социально-политических событий, выборов, брекзитов, инфекций, и пр. В конце концов всё сводится к спросу и предложению на продукты производтсва/сервис, уровню безработицы, и другим показателям экономики. Мне каждодневные флуктуации рыночных цен не важны. Даже простая buy&hold стратегия зарабатывает 7.4% в год. Мне важно избежать долгих позиций во время рецессий и улучшить прибыльность этой стратегии. Кстати, другая стратегия это покупать недвижимость. Нот это даёт только 5% в год, в США.
Не прав. Хоть тема и называется "предсказание рынка на основе макроэкономических показателей", но показатели в этом анализе не имеют никакого значения. Просто переменные подставляемые в некую формулу после математического обезличевания и растождествления со всеми внешними смысловыми и логическими связями с Миром. Собранные в абстрактные числовые ряды сухие цифры служат моделью нейронной сети, по ним предсказывающей... нет, не рынок, а тот самый числовой ряд.
Так, какой прогноз по S&P500 ?
Извините, но всё это ради 5-13 % в год??? Овчинка выделки не стоит)