Моделирование случайного блуждания - чего бы добавить для красоты?

 

Добрый день всем.

Один из алгоритмов генерации СБ, "похожего" на реальную цену - это обычное потиковое бросание монетки +1/-1 и группировка получившихся тиковых последовательностей в свечки в соответствии с реальными "тиковыми объемами". Это порождает последовательность с характерным "как бы реальным" затуханием волатильности ночью, всплесками днем - т.е. при беглом взгляде довольно похоже на родительский реальный график. Дополнительного сходства можно добиться, вспомнив про то, что в реальности цена склонна стучаться туда-сюда в границы коридора бидасков, что порождает приличную отрицательную автокорреляцию c лагом 1. Учтя это (т.е. просто увеличивая вероятность вероятность тика вниз, если перед этим был ап-тик, и наоборот), мы получаем более "правильно зазубренный" график

См. график, на котором показаны размеры high-low пятнадцатиминутных свечек евро. Отмечена малиновым реальная цена, синим - обычное СБ без учета автокорреляций и красным - СБ с учетом автокорреляций с лагом 1

 

Видно, что красный график куда приличней синего, однако же не идеален - дисперсия у него ниже, чем у реальной цены. Можно предположить, что это сказались тренды, которые создают "неожиданно" длинные свечки.

(понятно, что есть пара шагов для "тонкого тюнинга" - например, можно учесть автокорреляции с лагами > 1 или тики > 1. Но это на самом деле совсем крохотные копеечки - тиков +-2 пренебрежимо малое количество, дальних автокорреляций, если их тупо считать "с лагом N" - тоже. Т.е. не панацея.

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

 
quodlicet >>:

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

Новости.

 
TheXpert >>:

Новости.

Хех, тут как раз основной вопрос в том, как "новости" выразить численно, по возможности минимальным числом параметров )). Т.е. в целом понятно, что СБ не хватает "трендовости" - эффекта памяти, который на новостях включается и обеспечивает эту "персистентность" и размазывание графика на более высокие highlow. Но как именно это внедрить в генерацию? Может быть, куда-то в сторону извращений с GARCH начать думать? не копенгаген в garch, поэтому пока в растерянности.

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

Я могу только повторить свое сообщение TheXpert-у - вопрос заключается не в том, чем СБ отличается от реальности. Я ведь не зря написал в начальном посте о том, что у реальной цены дисперсия больше, это видно на графике. А дисперсия - это как раз мера флуктуаций случайной величины. Вопрос в том, как скорректировать генерацию СБ, добавив минимальное количество параметров, по возможности имеющих некоторую связь с "торговой реальностью". Т.е. можно, конечно, надобавлять автокорреляционных параметров для N<100 и с их помощью изнасиловать кривую как угодно. Но это вряд ли хороший выход.

Т.е. "флуктуаций" мы можем добавить самых разных. Но некоторые из них будут овер-фиттить цену и вообще не иметь отношения к торговым процессам (как эти N параметров), а некоторые - не окажут влияния на график (например, мы легко можем добавить "флуктуацию" уже существующего автокорреляционного параметра при лаге = 1, но ЦПТ сожрет все результаты и не подавится). Вопрос - в выборе оптимального варианта.

При этом я не гонюсь за идеалом - конечно, после грубой коррекции дисперсии все равно остается эксцесс, пресловутые "толстые хвосты", фибо и все такое, на чем люди зарабатывают деньги. Это как раз пусть остается. Т.е. в данном вопросе лучше недопилить, чем перепилить.

 

т.е. чего хочется:

В идеале я ищу какую-то математическую штуковину (по возможности элегантную типа преобразования Бокса-Мюллера), которая просто добавит какого-то неспецифического шума в поток. Как вариант, я начинаю даже примиряться с добавлением очень маленькой положительной автокорреляции в широком диапазоне лагов. Это, наверное, кривую подкосит в правильном направлении. Но это любительщина и опять риск оверфиттинга (равномерно ли распределять эту положительную автокорреляцию, или колоколообразной кривой, или экспоненциально убывать). Хочется именно какой-то generic-дисперсии, с одним-единственным параметром.

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

Еще более невнятными словами - накопим кучку тиков 01010010001010111 (для краткости написания 0 - тики вниз, 1 - тики вверх, короче, чем +1-1-1-1+1). Уже в этой кучке ЦПТ сделала свою черную работу. Теперь мы должны результаты этой работы частично нивелировать.Т.е. в данном случае - увеличить перекос. Было много нолей - добавим еще нолей. Было много единичек - добавим тоже. Все это - плавающим окном, т.е. "кучка" виртуальная. Это такой вариант автокорреляции, но не по одному лагу, а по сумме в плавающем окне. И хм, это достаточно generic.

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

 
Пуктуации - случайные пуки от среднего значения физических лиц, характеризующих систему из большого числа пищи; вызываются тепловым движением пищемассы или квантовомеханическими вздутиями.:D
 
quodlicet >>: Хочется именно какой-то generic-дисперсии, с одним-единственным параметром.

Сомневаюсь, что получится. Впрочем, спросите у Yurixx'a или у Neutron'a.

Есть еще возможность - присобачить фрактальное распределение, описанное у Питерса. Оно к тому же устойчивое (не путать со стационарностью!).

Рассуждая в режиме "брейн-штурма" (т.е. бреда) - проблема именно в том, что такой чудовищно дискретный поток, как +1/-1, мгновенно сжирается центральной предельной теоремой и "колокол" кривой там стандартный.

Поясните, пожалуйста, что такое "стандартный колокол" в применении к потоку +-1. Нам, кстати, известно, что этот поток точно не является бернуллиевым.

 
quodlicet >>:

В идеале я ищу какую-то математическую штуковину (по возможности элегантную типа преобразования Бокса-Мюллера), которая просто добавит какого-то неспецифического шума в поток. 


Любопытно, чего вы хотите от вашего СБ?


Перефразируя Математа, и судя по тому, как вы моделируете СБ, ваш поток из изменений цен является стационарным случайным процессом, что совсем не похоже на рыночные изменения цены. Из такой модели, кроме красоты радующей глаз, можно вытянуть не существующую в реальности прибыль, чем можно порадовать душу.

 

2Mathemat: - а там же как раз помечено, что "в режиме бреда", что подразумевает сугубую неточность определений )))). Имеется в виду нормальный (биномиальный, но пофиг) колокол опен-клоз, который получится при суммировании тиков в свечки. (хайлоу там получится какбэ с виду логнормальный, в реальности вроде бы какой-то более сложный, но в рамках рабоче-крестьянского подхода это непринципиально anyway). То же и насчет небернуллиевости реального ряда - да и бог бы с ней. Про фрактальное распределение - спасибо, попробую.

2Vita: ага, резонный вопрос, надо было мне сразу пояснять. Это для визуального анализа цены - собирая статистику поведения нетривиальных индикаторов одновременно на реальных ценах и на "похожем на цены" СБ, можно быстро отсеивать псевдограаальные закономерности. Т.е. если мы наблюдаем неожиданно красивый пик одновременно на реальных ценах и на заведомо стационарном и случайном СБ - это повод заподозрить ошибку алгоритма сбора данных, ошибку инструмента визуализации или особенность алгоритма индикатора. Такой подход значительно экономит время и нервные клетки. Я принимаю как аксиому ту идею, что на СБ заработать невозможно, поэтому и как раз опасаюсь "оверфиттинга", чтобы не добавить в генерацию каких-нибудь потенциально торгуемых красот.

Так что касается красоты СБ - красота эта холодная и глаз не радует. В этом ее предназначение и состоит - разочаровывать глаз, который уже увлажняется слезами умиления при взгляде на новонайденный грааль.

 
quodlicet >>:

Это для визуального анализа цены - собирая статистику поведения нетривиальных индикаторов одновременно на реальных ценах и на "похожем на цены" СБ, можно быстро отсеивать псевдограаальные закономерности (которые являются лишь особенностью алгоритма самого индикатора). Я бездоказательно принимаю как аксиому ту идею, что на СБ заработать невозможно, поэтому и как раз опасаюсь "оверфиттинга", чтобы не добавить в генерацию каких-нибудь потенциально торгуемых красот.

Так что касается красоты СБ - красота эта холодная и глаз не радует. В этом ее предназначение и состоит - разочаровывать глаз, который уже увлажняется слезами умиления при взгляде на новонайденный грааль.

Хм, пусть меня поправят, но на этом форуме найдутся несколько человек, которые покажут как на нормальном распределении изменений цены можно заработать. Поэтому, ваш способ отсеивания может принять такой алгоритм как работающий на вашем СБ, и наоборот отсеять работающий, в крови которого течет знание о нестационарности процесса изменений цены.