Блог им. SerSer

Случайность, Эффективность и ТехАнализ.

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

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

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

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


Условия испытаний. 
— Взяты часовые приращения за 2015-2016г.г.
— На каждое приращение выделено 2 байта для минимизации исходных данных и чистоты эксперимента.
— Для каждого инструмента сформирован файл размером 2 байта х кол-во приращений.
-
что бы не изобретать велосипед файлы были заархивированы программой WINRAR.

Результат испытаний.
Случайность, Эффективность и ТехАнализ.

Все последовательности были успешно сжаты.

ВЫВОД — ГИПОТЕЗА НЕВЕРНА. Колебания цен НЕСЛУЧАЙНЫ, а имеют закономерности, повторяющиеся последовательности и тенденции.
Соответственно изменения цен могут быть прогнозируемыми с помощью технического анализа.



Конец.
★11
95 комментариев
А. Г. А так?
avatar
Вообще то случайность — это когда наше лучшее знание о будущем, это набор событий с разными шансами их появления, как минимум два из которых ненулевые. Доказательством отсутствия случайности каких-либо последовательно происходящих событий может быть только построение точного прогноза всех этих событий ДО их появления.
avatar
А. Г., движения цен предопределены некими входными параметрами, при кажущейся случайности и непредсказуемости система детерминирована, просто нет аналитического аппарата. чтобы всё обсчитать. В человеческой терминологии случайно, но не случайно же, тем более нам точный прогноз не нужен, достаточно, если линеаризация даст указание на направление, куда оно всё скорее всего двинется… ;-)
avatar
Reshpekt Fund Russia, совершенно неважно, что мы предсказываем — направление или точное значение. Все вышесказанное относится к прогнозу направления: можно его точно предсказать или нет.
avatar
А. Г., хм, а тренды тогда что? 50% вероятность?
avatar
Reshpekt Fund Russia, а нет общепринятого определения «тренда». Для каждого «определения» мы можем получить долю встречаемости на случайном блуждании и уже «плясать» от отличия от этой доли в наблюдаемом процессе. А при статистическом совпадении долей и говорить нечего. 
avatar
А. Г., ну я не про определение, а про персистентность. Само великое троединство: тренд, бифуркация, контртренд говорит о детерминированости. Нелинейный процесс линеаризуется паттернами, тем же теханализом, остаётся только сделать ставку на то, что вероятнее всего (тренд начался и продолжится). Точный прогноз цены или ещё чего такое же точное не нужны.
avatar
Reshpekt Fund Russia, ну вообще то корреляция по модулю меньше 1, уже означает отсутствие точной линейной взаимосвязи, а отдельных случаях (многомерная нормальность) является необходимым и достаточным условием случайности. А ведь корреляцию существенно больше нуля считают свидетельством персистентности, а на точную связь указывает только одно ее значение — 1. В данной дискуссии мы вроде не искали ответ на вопрос: можно ли зарабатывать с положительным МО? А дискутируем относительно другого вопроса: можем ли точно знать что-то об этом МО с уверенностью в 100%?
avatar
А. Г., 0,5 < Н < 1,0 же.
avatar
Reshpekt Fund Russia, H вообще то плохой показатель для нестационарного случая вообще непонятно что показывающий. Но это так, немного «в сторону». Но для стационарного случая такое неравенство как  раз указывает на наличие случайности.
avatar
Reshpekt Fund Russia, Часто бывает что на разных таймфреймах бывает контртренд и тренд одновременно. Как можно говорить о существовании того что изменяется на противоположное в зависимости от формы отображения? Технический анализ это просто форма отображения информации, фильтр. Тренд-контртренд это просто словечки для описания СОБСТВЕННОГО восприятия рынка и к реальному распределению вероятностей не имеют.
avatar
nwtour, это не важно на каком тренде и в какую сторону, важна устойчивость/закономерность, следствием этой устойчивости будет ставка трейдера на том фрейме/фреймах, на которых распознан тренд, выигрывшая ставка упадёт в копилку, количество выигравших ставок даст посчитать вероятность, если годами ставка на тренд приносит выигрыш, вопрос закрыт с вероятностью. Если же плясать не от печки (не от трейдера и его фильтра восприятия), то тут задача совершенно другого толка, появляется Хёрст, появляется проблематика терминологии (что есть тренд), как там РЕАЛЬНО распределяются вероятности, и вероятности чего, я не знаю, пусть математики лоб морщат.
avatar
А. Г., точный прогноз можно построить на основе выявленных закономерностей, которые являются избыточной информацией в последовательности.
avatar
Маркин Павел, вопрос можно или нет точно предсказать в случае отсутствия точного прогноза  - это вопрос веры, а не знания.
avatar
Соотвественно ГСЧ генерирует нечто похожее, но не рынок?
avatar
а не говорит ли это, что чем ближе коэффициент сжатия к 1 тем, более не предсказуем процесс, или более эффективен данный инструмент?
avatar
Igr, да чем меньше коэффициент тем более эффективен инструмент и изменения его случайны
avatar
Маркин Павел, а не могли бы вы привести расчёты для большего количества акций? ну хотя б для тех на кого есть фьючи, интересны результаты 
avatar
Kapral, из того что данные можно сжать следует что они содержат избыточные данные в виде повторяющихся последовательностей и закономерностей. А раз есть повторы и закономерности, то они будут и в дальнейшем повторятся.
avatar
 Поясню на примере из той же дискуссии. Если в результате 250 независимых бросаний монетки выпало 200 орлов, то мы можем утверждать, что с большой вероятностью монетка кривая и шансы выпадения орла гораздо выше решки, но в силу той же независимости мы не сможет точно предсказать, что на следующем испытании выпадет орел, а лишь можем констатировать то, что сформулировано выше.
avatar
А. Г., но мы можем предсказать что на последующих 25 бросаниях будет ~ 20 орлов, что предопределяет выигрыш.
avatar
Маркин Павел, это говорит лишь о большой вероятности выигрыша при ставке на орла, но не отменяет случайности этого выигрыша.
avatar
Kapral, конечно может, поэтому я брал данные за 2 года, а не за сегодняшнюю сессию.
avatar
Kapral, Вы привели пример как раз неслучайной последовательности - http://smart-lab.ru/blog/369456.php#comment6609333
avatar
Kapral, да все ГСЧ генерируют случайные, но зависимые последовательности.
avatar
Kapral, да сжать можно, но при условии что последовательность другой длинны не существует, а это терминальная длинна. тогда: 3 бита кол-во серий, 4 бита длительность серии, 1 бит — значение серии.=8/12

Но если алгоритм сжатия должен действовать для всех вариантов, то например (101010101010) или (1001 1001 1001)то минимально требуемый размер под хранение информации будет уже больше.

 3бита кол-во серий 4бита длина серии 4бита серия и получаем на выходе 11 бит. и сжатия уже нет.

avatar
Kapral, не забывай, что в сжатой информации должны содержаться признаки для восстановления
avatar
можете скрин открытого файла показать, который вы жали?
avatar
Press, 

avatar
Маркин Павел, исходный имел ввиду
avatar

Различная энтропия последовательностей газпрома и usdeur ну никак не означает что данные последовательности формируются неслучайными процессами.

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

avatar
Чувак, ты гений!
Я прям охренел от такого нестандартного подхода!
прикольно получилось

причем я думаю, реально вывод относительно EURUSD получился в точку!
Тимофей Мартынов, Вывод чем больше участников и больше ликвидность тем менее эффективен инструмент.
avatar
    По идее все процессы случайные, потому как простой прогноз протянуть руку и взять стакан, может не сбыться, ибо за это время можно успеть вдруг протянуть ноги, прилетит метеорит, внутреннее напряжение стакана его разрушит… и со 100% вероятностью нельзя сказать, что прогноз сбудется, другими словами это случайность!
Машковский Евгений, Все верно. Если человеку предложить игру — тебе дают монету за то что ты делаешь самое популярное действие, а если не угадал то забирают. То распределение между людьми которые «протянули руку и взяли стакан» и «одёрнули руку» станет случайным и примерно равным 50%.
avatar
Машковский Евгений, тогда так. Два трейдера ставят свои противоположные ставки на то, что ты будешь каждые 5 секунд протягивать руку и брать стакан. Один ставит 100 долларов на то, что ты возмёшь, а второй (математик) 100 долларов на то, что не возьмёшь (внутренне натяжение, смерть, метеорит). Кто там разбогатеет через пару часов на такой случайности?
avatar
Reshpekt Fund Russia, Думаю математик будет считать, что не известно, ибо случайно, а противник, думаю этот вечер не забудет никогда!))))))))
Машковский Евгений, ))) точно. Постоянно берущийся стакан — это тренд, а математик — это сливающий против тренда бабло лох ибо думает, что всё случайно, хаос, броуновское движение, никаких перекосов вероятности, никакой детрминированности, подумаешь, 20-ый раз взял, скоро метеорит прилетит.
avatar
Reshpekt Fund Russia, ))))))))))
Kapral, если это биты, то случайная последовательность очень плохо будет сжиматься, а если это символы 0 и 1 каждый по байту, то в 8 раз сожмётся легко!
«Гипотеза — если колебания цен есть случайный процесс то сжатие данных последовательности приращений не возможно и коэффициент сжатия не должен превышать 1. »

"Коэффициент сжатия — основная характеристика алгоритма сжатия. Она определяется как отношение объёма исходных несжатых данных к объёму сжатых, то есть:k=\frac{S_o}{S_c}, где k — коэффициент сжатия, So — объём исходных данных, а Sc — объём сжатых. Таким образом, чем выше коэффициент сжатия, тем алгоритм эффективнее. Следует отметить:
  • если k = 1, то алгоритм не производит сжатия, то есть выходное сообщение оказывается по объёму равным входному;
  • если k < 1, то алгоритм порождает сообщение большего размера, нежели несжатое, то есть, совершает «вредную» работу."
 
avatar
Press, Вы развёрнуто повторили то что я написал, забыли только скопировать, что 
Сжатие данных, не обладающих свойством избыточности (например, случайный сигнал или белый шум, зашифрованные сообщения), принципиально невозможно без потерь.
avatar
А если взять для хранения «приращений» три байта, то рынок станет еще более неслучайным. Я уж промолчу, что будет, если взять int32_t или int64_t. В общем постановка эксперимента не то что бы некорректна, но требует отдельного обоснования в части размера данных.

PS: для тех, кто не понял — поясню, в данных могут присутствовать биты/байты, которые не несут информации, и поэтому будут сжиматься в десятки раз.
avatar
Displacer, в один байт приращения без потерь точности не уместить, соответственно 2 байта минимально необходимый размер. а три и более это преднамеренная фальсификация результата.
avatar
Маркин Павел, вообще то количество байт не обязано быть целым это раз. Во вторых, приращения на рынке изначально имеют минимальное фиксированное приращение, задаваемое биржей. Т.е. данные требуют нормализации.
avatar
Displacer, у меня, как бывшего программиста под DOS, минимизация использования ресурсов памяти, идёт на генетическом уровне ;)
avatar
Маркин Павел, короче, скорее всего вы данным экспериментом выяснили, во сколько раз надо сократить размер данных ;) Т.е. приблизительно надо полтора байта :)
avatar
Displacer, «поясню, в данных могут присутствовать биты/байты, которые не несут информации,» — ты мой ГЕРОЙ! 

avatar
Методология эксперимента вызывает сомнения. Во-первых, нужно применять кодирование данных во всех случаях, иначе возникает избыточность связанная с хранением данных определенного типа. Во вторых, нужно строить разные выборки с разным количеством данных и смотреть. В третьих, не хватает того же самого коэфициента для случайного блуждания желательно разных типов для того чтоб удостоверится, что исходная гипотеза верна и сжатие случайного блуждания реально показывает 1.
avatar
Press, Простите в чём ересь???
Определение случайности по Колмогорову и Мартин-Лефу: чтобы строка была признана случайной, она должна:
  • Быть несжимаемой — компрессия подразумевает поиск представления информации, которое использует меньше информации. К примеру, бесконечной длинная двоичная строка 0101010101…. может быть выражена более точно как 01, повторенное бесконечно много раз, в то время как бесконечно длинная строка 0110000101110110101… не имеет четко выраженного паттерна, а значит ее нельзя сжать до чего-либо короче, чем эта же самая строка 0110000101110110101 … Это значит, что если Колмогоровская сложность больше или равна длина строки, тогда последовательность алгоритмически случайна.
  • Проходить статистические тесты на случайность — существует множество тестов на случайность, которые проверяют разницу между распределением последовательности относительно ожидаемого распределения любой последовательности, которая считается случайной.
avatar
Больше года наблюдаю за дискуссиями с «математическим» уклоном.
Новых мыслей относительно того, что мы изучаем в рынке и какими средствами — не заметил, может пропустил. Правда, сегодня увидел маленький-маленький намек, но он остался без развития. Можно даже было бы сделать генератор вариантов для таких дискуссий, загрузить его чем-то, к устройству рынка отношения не имеющего и запустить.

— Почему вы ищете потерянные ключи под фонарем?
— Потому, что здесь светлее.

Есть такая математическая дисциплина — теория хаоса, ее можно применять к рынку. Один из постулатов — малые изменения в начальных данных могут привести к большим последствиям (многие слышали про «эффект бабочки»). Этот постулат можно попробовать перенести на методологию — немного не то исследуем, немного не тем инструментарием — и на выходе получаем что-то сомнительное. Даже при всей аккуратности в выкладках. Про неаккуратность (математическую) уже не говорю. 

Недавно ТС публиковал пост про фрактальную размерность.
Дал известное определение через предел (ПРЕДЕЛ!), а потом привел программу, которая считает эту фрактальную размерность по нескольким свечкам. В чем ошибся тогда ТС?
В том, что связал фрактальную размерность с трендом, в количестве свечек, забыв, что такое предел, в том что не ответил на вопрос про 64 свечки или в том, что не заметил, как Старченко осторожно высказывался относительно своего алгоритма?
Ну, да, есть сомнения. Ну, неаккуратность, сводящая пост в 0.
Но главное было не в этом.

А есть ли смысл применять фрактальную размерность к рынку?

Вопрос на понимание.
Найдите хотя бы 3 причины, делающие такое применение бессмысленным, бесполезным.

P.S. ТС горы бы свернул, определись он точнее с предметом,  инструментарием и методологией. А так он просто тратит свое время и фантазию.  

С уважением к ТС.



 
avatar
Борис Гудылин, ТС, уже давно болт забил горы, предмет, инструментарий и методологию. ТС ленится.
Соответственно ТС старается переложить предварительную работу по отсеву идей на «коллектив». При этом ТС иногда на 90% не согласен с идеями которые описывает, но Ведь «ТС может ошибаться», поэтому ТС занимается провокацией через «неаккуратность»
ТС ищет что нибудь нестандартное (на его взгляд) и «кидает камушки в озеро понаблюдать за рябью».

по поводу 64 — старая привычка втыкать везде 2^n, мне так проще считать и запоминать.
avatar
Маркин Павел, ну, ладно, я — пытаюсь увидеть во всем двойное-тройное дно, но есть же неокрепшие умы. Они то могут и не разобраться. И долго потом идти во вроде понятную и привлекательную, но сомнительную сторону.
avatar
:), для приращений +1 и -1 я бы использовал всего один бит. И конечно жаль что реальные приращения не помещаются в 1 байт ;)

avatar
Рошалю пора открывать хэдж фонд. )
А если пожать сиплого что получится? Да, и втб интересно посмотреть ))
avatar
Надо входные данные представить двумя потоками: первый поток — число бит в каждом приращении, второй поток — сами приращения без избыточных данных. Сжимать только второй поток. Так будет точнее.
avatar
Очень красивый и оригинальный подход.
Но, проблема в том что, вывод не правильный. Приращения сами по себе могут оставаться случайными, при этом модули их — отнудь не случайные величины. Они несут в себе закономерности сохранения волатильности, как суточной так и общей. Именно эту закономерность эксплуатирует винрар, когда хорошо сжимает Газпром (где волатильность легко предсказуема) и тяжело сжимает евродоллар, где волатильность ровная.
avatar
Для грамотных математиков, любящих ...
Грамотный математик, подставил отсутствующую запятую.
avatar
MS, по русскому и литературе было 3
avatar
 Степень сжатия зависит не от случайности, а от распределения приращений. Минимальное сжатие будет у равномерного распределения, гораздо большее — у нормального (например).
avatar
MS, 
Определение случайности по Колмогорову и Мартин-Лефу: чтобы строка была признана случайной, она должна:
  • Быть несжимаемой — компрессия подразумевает поиск представления информации, которое использует меньше информации. К примеру, бесконечной длинная двоичная строка 0101010101…. может быть выражена более точно как 01, повторенное бесконечно много раз, в то время как бесконечно длинная строка 0110000101110110101… не имеет четко выраженного паттерна, а значит ее нельзя сжать до чего-либо короче, чем эта же самая строка 0110000101110110101 … Это значит, что если Колмогоровская сложность больше или равна длина строки, тогда последовательность алгоритмически случайна.
avatar
Маркин Павел, здорово. Так и посчитайте значения характеристики Колмогорова, а не WinRar. Снимутся вопросы.
avatar
MS, 1. Показатель колмогоровской сложности является невычислимой функцией.
2.Для вычисления верхней границы Показателя колмогоровской сложности применяется любой метод компрессии для исследуемой последовательности.
avatar
Маркин Павел, ОК. Утверждение статьи может быть получено множеством других способов. Как ещё одна иллюстрация разве что.
1. Практического применения нет.
2. Что понимать под случайностью. Представим модель: двумерное распределение приращений. Направление — биномиальное, размер — Пуассон. Есть подозрение, что коэффициент сжатия будет всегда больше 1, если p<>1/2 в биномиальном. А обе размерности при этом случайны.
На практике это модель для направленного тренда за 10 лет. Нет ответа насколько он случаен.
3. Эта модель с p =1/2 и детеминированной функцией размеров приращений тоже невозможно торговать. А сжатие у неё будет близко к 2.
avatar
MS, сгенерируйте обе модели пожалуйста и давайте проверим
avatar
Маркин Павел, пока не буду этого делать. А продолжу теоретически.
Итак, пусть знаки приращений распределены биномиально с p=1/2, размеры приращений — константа.
Алгоритм упаковки: записываем длины серий положительных и отрицательных последовательных приращений. 
Пусть n — количество приращений. Тогда с вероятностью 1-2^(-n) упакованное слово будет короче исходного. Матожидание же коэффициента сжатия — e.
Если p > 1/2, то это матожидание ещё возрастает.

«О! Мы взяли какой-то алгоритм сжатия, какие-то данные и всегда получаем коэффициент сжатия >1. Данные неслучайны! По Колмогорову!»
avatar
MS, 
Итак, пусть знаки приращений распределены биномиально с p=1/2, размеры приращений — константа.

«О! Мы взяли биноминальное распределение, но распределяем знаки, и получили равномерное дискретное распределение — конечное число значений с равными вероятностями — дискретный белый шум/подкидывание монеты»

Алгоритм упаковки: записываем длины серий положительных и отрицательных последовательных приращений. 

«О! мы забыли что, при сжатии в архив добавляется информация для восстановления»
Так если Вашу последовательность сжимать по Вашему алгоритму, то:
1. на признак серия/не серия выделяется 1 бит,  то коэффициент сжатия = 1/(1+доля несерийных значений) — всегда меньше 1
2. на признак серия/не серия 2 бита — чтобы коэффициент сжатия был не меньше 1, кол-во несерийных значений должно быть меньше 1/3 от всей последовательности, при условии что все серии будут равны по длине четырём, иначе, что никак не соответствует равномерному дискретному распределению.
3. дальше только хуже.
Если p > 1/2, то это матожидание ещё возрастает.
Ну при p=1 это же тоже случайный процесс по Вашему ;)

«О! Мы пукнули мозгом! Так красиво и высокомерно пошутили!»
avatar
Маркин Павел, мне сложно догадаться к чему Вы эти пункты написали. 
Вот пример результата предложенного алгоритма.
 Последовательность приращений: +d+d+d-d+d-d-d-d-d-d-d+d
Сжатая строка: +31161
avatar
MS, (+d+d+d-d+d-d-d-d-d-d-d+d) = (111010000001) 12 бит
(+31161) =(+ (1) 3 (011) 1(001) 1 (001) 6(110) 1 (001) получаем (1011001001110001) 16 бит
Сжали с приращением на 4 бита — оригинально!
avatar
MS, Лови 10 рандомов, каждый по 800000 битных знаков, попробуй упакуй, ссылка.
avatar
В общем, я решил проблему избыточности кардинально, выдавая в битовый поток только знак приращения.

Понятно, что будет небольшой перекос из-за того, что нулевые приращения нужно приравнять либо к 0, либо к 1. Чтобы уменьшить его влияние, я взял часовые цены закрытия с 2010-го года для сбера и газа и с 2013-го для EURUSD.

Дополнительно сформировал псевдослучайную выборку такой же длины, как и данные сбера/газпрома.

Результаты:

газпром - 1.2598
сбер - 1.2602
eurusd - 1.1964
рандом - 1.2595
avatar
bstone, В споре рождается истина, поэтому без комментариев невозможно, Лови 10 рандомов, каждый по 800000 битных знаков, попробуй упакуй, ссылка.
Может у тебя именно псевдо-рандомы? многие реализации языков программирования грешат некачественной реализацией ГПСЧ
avatar
Маркин Павел, нет, в споре рождается тупость вроде моей. Твои сомнения заставили меня перепроверить код и я увидел, что лажанулся в упаковке битового потока. Но… результаты тем не менее, тебя не обрадуют:

сбер - 0.9647
газпром - 0.9647
eurusd - 0.9386
псевдо-рандом (длина сбера) — 0.9648
псевдо-рандом (длина евро) - 0.9404
avatar
Ну и для пущей важности взял атмосферные флуктуации с random.org, длина серии соответствует котировкам eurusd. Коэффициент сжатия 0.9403. Так что псевдо-рандом довольно хорош.
avatar
bstone, обрадуют, понимаешь когда ты перешёл на битовый знак ты изменил нормальное распределение приращений инструментов на равномерное, чего и рандом взял равномерный. а равномерное распределение = белый шум = несжимаемость.
А вот если брать рандом с нормальным распределением то ...

В любом случае спасибо за конструктивные идеи.
avatar
Маркин Павел, ну смысл в том, что эффективное сжатие должно было бы намекать на наличие повторяющихся паттернов… так вот, если этих паттернов нет в знаках приращений, то их не будет и в последовательности приращений. Очевидно?
avatar
Маркин Павел, и все-таки считаю конструктивной идею анализа не коэффициента сжатия как такового, а сравнение его с образцом случайной серии такой же длины. Архиваторы как ни крути работают с байтовым потоком, а не битовым, и это ломает границы потенциальных паттернов. 
avatar
bstone, архиваторы уже лет 15-20 работают и с битовым потоком и большими числами (например 16,32,64 байта).
avatar
Маркин Павел, специализированные режимы допускаю вполне, попробуйте. Но Huffman, LZ, арифмитическое кодирование и их вариации в архиваторах четко ориентированы на байтовые потоки.

Я, кстати, выдал знаки приращений в байтовый поток, используя три состояния (0, +1, -1), чтобы не было биаса от нулевых приращений. Так вот, коэффициент сжатия получился около 5. Почувствуйте разницу относительно битового потока. Но газпром и сбер сжался даже чуть хуже, чем псевдо-случайная последовательность :)
avatar
bstone, Не скатывайся в поиск мелочей и не зацикливайся.

эффектный и эффективный пример сжатия бесконечного ряда — фракталы — красивая картинка с множеством мандельброта размером 64000х64000 пикселей будет весить ~ 4 гигабайт, а в виде программного кода не более 50 килобайт.
avatar
Маркин Павел, не надо путать сжатие с генерацией. 
avatar
bstone, как раз не путаю, на этом и основана колмогоровская сложность
avatar

теги блога Маркин Павел

....все тэги



UPDONW
Новый дизайн