Блог им. AlexeyPetrushin |Регрессия на исторических данных дают слишком высокий риск премиум

Прогноз среднего значения цены акции через год, в зависимости от текущей безрисковой ставки и недавней волатильности. Средняя цена это E[S], если принять текущую цену за 1. Пробовал разными способами регрессию делать, прогноз на 365 дней напрямую в линейном пространстве. И в лог пространстве. Цифры получаются одинаковые, но на мой взгляд завышенные для высоко волатильных акций, как AMD. 

Расчеты дают прогноз средней цены через год для спокойной MCD 1.1 (что нормально) и волатильной AMD 1.23 (что на мой взгляд завышено, причем завышено сильно). Дополнительно проверил получив среднюю цену инверсией цен опционов, и они подтверждают мои ощущения, рынок опционов ожидает цену АМД через год где то вдвое ниже 1.12 а не 1.23.

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

Расчеты: данные и код в линейном пространстве и код в лог пространстве если кому то будет интересно посчитать.

( Читать дальше )

Блог им. AlexeyPetrushin |Риски алготрейдинга, нейтральной рыночной позиции и стоп лосс совершенно достаточно.

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

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

Второй момент, что корреляции небольшие, и соответственной — прибыль растет постоянно, но небольшими шажками. И чтобы сбалансировать прибыль/потери, потери также нужно ограничить, исключить большие и резкие потери.

И это дает нам три варианта: а) ограничить рабочий капитал на рынке до скажем 1/10, минус 9/10 лежат без дела. б) стоп лосс плюс выход из всех позиций после закрытия рынка (через ночь/выходные позиции не держать). в) риск нейтральная позиция, балансировать открытие позиции, открытием похожей позиции в противоход.

( Читать дальше )

Блог им. AlexeyPetrushin |Алготрейдинг, как вы определяете какой из множества предикторов выбрать?

Алгоритм трейдинга:

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

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

( Читать дальше )

Блог им. AlexeyPetrushin |Джим Сименс, Интервью

Он упомянул интересные моменты о фонде Медальен:

— Они не используют анализ финотчетности, а только анализ цен и других индикаторов.
— Тем не менее он считает анализ финотчетности рабочим подходом.
— Аномалии которые они используют небольшие (и в других интервью он упоминал что эти аномалии б) со временем исчезают в) поэтому требуется постоянный и ручной поиск новых и новых аномалий). Из этого следует (это уже мои мысли) поскольку аномалии маленькие, их требуется большое число, соотв. это высокочастотный трейдинга с огромным числом сделок, и наверняка скоростными каналами и льготными комиссиями, что недоступно обычным трейдерам.
— Огромные данные и вычисл мощности. В другом интервью 10 лет назд, Robert J Frey бывший глава исследований Медальен упоминал что каждый день Медальен получает и сохраняет порядка нескольких терабайтов (если не ошибаюсь) новых данных.  И в других интервью Джим Симонс также упоминал что они постарались получить все данные до которых только можно дотянуться, в том числе настолько старые насколько возможно, в ранние дни даже во время посещения какой то гос конторы вручную срисовав некий висящий та график со старыми данные.

( Читать дальше )

Блог им. AlexeyPetrushin |Ускорить симуляцию

В симуляциях важна производительность, можно ускорить вычисления за счет болшей памяти а) кеш, это отдельная тема б) приближенной функцией. Где вместо реально и сложной функции используется ее приближение из 100, 1000 или 10000 точек.

count = 1000
ys[i] = fn(x) for x in collect([xmin, xmax], { count })
last_i = count-1

И затем любое значение можно получить как

y = ys[trunc(last_i*(x-xmin))]

Со скоростью 4х операций и хорошей локальностью памяти.

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

Языки использующие структуры близкие к железу (C, Nim, и т.п) но часто достаточно JavaScript/Java они также работают достаточно быстро.

П.С. Python/Matlab используют векторизацию и многие типовые операции реализованы эффективно на C, но таки, не всегда удается уложиться именно в эти операции.


Блог им. AlexeyPetrushin |Калибровка Не Нормальных Моделей Распределения Цен

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

Калибровка — определение неизвестных параметров для известного распределения, двумя методами — Maximum Likelihood и Bayesian.

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

Тестовая модель, Гауссовский Микс:

weights = [0.5, 0.5], means = [0, 0], sigmas = [1, 2]

Результат, точнее его отсутствие, картина ниже (питоновский код):

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

Также попробовал другой подход, байесовский метод, и он также дает совершенно неверный результат.

П.С.

Гиперболическое Распределение

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



( Читать дальше )

Блог им. AlexeyPetrushin |Эргодичность, стационарность, нормальность

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

... Автор метода универсального кодирования и предсказания данных, порожденных стационарными источниками...Рябко Б.Я. открыл асимптотически оптимальные методы прогноза и проверки основных классов статистических гипотез для стационарных эргодических процессов...

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

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

И получается такое вот отличие прогнозов и ожиданий от реальности:

Эргодичность, стационарность, нормальность





Рецензии на книги |Б. Мандельброт, Непослушные Рынки

Книга бомба, целостностно обьясняет обрывки идей с котрыми я работал последние 2 года.

Дает 2 вещи: а) генератор случайного процесса отлично подходящего для финансовых процессов. б) позволяет взглянуть на мир финансов глазами гения, Б. Мандельброта, одного из лучших умов 20 века.

Генератор нужен для Симуляции Монте Карло, для более точного расчета цен опционов, стресс теста порфеля, или агрессивного теста портфеля посмотреть как он захватывает прибыль при возможных колебаниях рынка, для расчета страховки и т.п.

Распределение Парето, Нестационарность, Кластеры Волатильности, Долгосрочные зависимости.



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

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

Блог им. AlexeyPetrushin |Сэмплинг инверсией CDF

Увидел сегодня, компактно в двух строчках целая куча концепций.
Сэмплинг инверсией CDF



Блог им. AlexeyPetrushin |Почему дневные изменения цен акций не следуют Распределению Парето?

Я рассчитал распределение изменений цены акций (дифф). Имеются ввиду мультипликативны изменения (diff), во сколько раз меняется цена акции за каждый день, d(t) = p(t) / p(t-1)

Насколько я знаю, распределение должно выглядеть как распределение по Power law (распределение Парето). С CDF, являющейся линией на графике log-log.

Но CDF который я получил не похож на линию на графике log-log. Почему?

Mожет ли это быть вызвано тем, что распределение имеет два хвоста вместо одного? Поскольку имеются два редких событий: редкие огромные ежедневные падения цен с d <0,7 и редкие огромные ежедневные повышения цен d > 1,4

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

Пример

Ежедневные цены на 4 акции за пару лет, нормированные на 1 за первый день.

Почему дневные изменения цен акций не следуют Распределению Парето?



( Читать дальше )

....все тэги
UPDONW
Новый дизайн