PDA

Виж пълната версия : Ентропия



bvg
15.07.2020, 18:15
Имам следната идея, (няма да навлизам в детайли надявам се достатъчно интелигентните хора ще ме разберат, от останалите нямаме нужда.) тестване на числова редица(разбирай поредица от котировки) за нивото на ентропия. Според теорията, ниската ентропия може да бъде описана с патърн напълно или частично, системите с висока ентропия не могат да бъдат описани със патърн(шаблон). И така какво ми дойде наум, нещо което можем да ползваме наготово. При компресия на дании(методите без загуба) файловете които имат висока ентропия немогат да бъдат компресирани или компресията им е много слаба. Сега остава да изберем най-подходящия алгоритъм. Стръва ми се алгоритъма на Хъфман е добър кандидат.

bvg
15.07.2020, 20:43
Как може да бъде извършен теста? Изчисляват се процентните/промилните изменения за всеки тик. В един тесктов файл без никакви раздели се въвеждат числата последователно(може би да се допълнят от дясно с нули, виж примера: ), след което с 7zip се компресира файла, ако имаме добра компресия, значи имаме ниска ентропия.
Пример: 001007015011033201... формат на числото: ХХХ

bvg
15.07.2020, 20:55
Разсъждавайки струва ми се, числата трябва да са двоични и файла трябва да е в двоичен формат.

Mateev
16.07.2020, 09:01
Правилно разсъждаваш, но подхода ти според мене е малко странен. Има си много по-лесни начини за детектиране на висока ентропия.

Какво означава висока ентропия?
Ами това означава висока степен на случайноста и ниска степен на подреденоста. От тука идва и прякото следствие, че ако една точка в равнината (напр. цената) е създадена от RANDOM генератор с 50% вероятност, то тогава имаме възможно най-високата ентропия (възможно най-ниската предсказуемост).

Доказателство за това мое твърдение е, че ако запишем числата във файл, и се опитаме да го компресираме, ще установим, че това е невъзможно. Нито един алгоритъм за компресия не е в състояние да намали дължината на файла дори и с един единствен байт.

В моята концепция се използва същия принцип, само където аз говоря за вероятности, а ти за ентропия, но по принцип при Random Walk това е едно и също нещо. Тоест трябва да разсъждаваме така - ако внимателно изучим всички свойства на чистата случайност (50%), то тогава изследвайки числовите редици, ще знаем къде и какво да гледаме, за да открием някаква зависимост, различна от 50% или тайничко вградена в тези 50%.

Мога много да напиша по този въпрос, ако някой проявява интерес, но ако твоето е нещо по-различно, ще те оставя да си развиваш темата.

bvg
20.07.2020, 10:20
Матеев ще се радвам, да чуя твоето мнение по въпроса, както и на всеки един останал. Идеята ми беше да споделя, лесен инструмент с който можем да мерим ентропията, като един първоначален бърз тест

zezo
13.08.2020, 12:02
За мен също ще бъде много интересно.

alphaomega
14.10.2020, 08:28
Аз правя нещо подобно в момента само че не ползвам компресията като индикатор за ентропия а просто като инструмент и част от процес за преформатиране на ценовата крива във формат подходящ за бързо сканиране и анализ.

След като имам получен новия формат, сканирам цялата история по всички валутни двойки и търся повтаряеми модели като всичко това се записва и се прави статистика.
За всеки един модел знам колко пъти се е появявал в историята при различни процентни нива на съвпадение.
Накрая установявам каква е прогнозната стойност на всеки модел при отваряне на сделка в различните часове от денонощието и при различни размери на стоп/таргет.

Може би трябва да направя една отделна тема и да ви разкажа за това какво открих в следствие на тези експерименти. Но не знам дали си струва писането надълго и нашироко тъй като резултатите така или иначе не са много оптимистични и вместо да открия нещо ревулюционно по скоро само потвърдих предишните си очаквания че в тея ценови криви няма нищо от което да може системно да се извлеча стабилно дългосрочно ПМО над 1 пипс.

zezo
14.10.2020, 14:07
Изключително интересно.. Преди да търсиш зависимости превърна ли цената в сегменти? Това ще намали трудността на задачата поне 1000 пъти, защото се игнорира времето или по-точно по този начин изследваме само и единствено истинското движение на цената и нищо друго. Аз направих нещо подобно с индикатора по идеята на bvg в другата тема, но при мен се появиха доста зависимости намерени по ценовите криви, включително и такива по часове от денонощието и дени от седмицата като започнем от двойката EURUSD, EURCHF любимия на Матеев AUDCAD. Ако направиш тема можем чрез двата метода да потвърдим и изключим или намерим нови зависимости, което мисля, че ще е полезно за всички.

alphaomega
14.10.2020, 18:38
Изключително интересно.. Преди да търсиш зависимости превърна ли цената в сегменти? Това ще намали трудността на задачата поне 1000 пъти, защото се игнорира времето или по-точно по този начин изследваме само и единствено истинското движение на цената и нищо друго. Аз направих нещо подобно с индикатора по идеята на bvg в другата тема, но при мен се появиха доста зависимости намерени по ценовите криви, включително и такива по часове от денонощието и дени от седмицата като започнем от двойката EURUSD, EURCHF любимия на Матеев AUDCAD. Ако направиш тема можем чрез двата метода да потвърдим и изключим или намерим нови зависимости, което мисля, че ще е полезно за всички.

Не, не превръщам цената в сегменти. Моят подход е друг.
Техническите модели ги вземам така както са на обикновената графика OHLC и ги компресирам така че да се запази само информацията за общата им форма. При крайния формат отпадат всички дребни детайли които не ме интересуват.
Вземам една поредица от N барове и премахвам всичко от тях като оставям само информацията за локацията (x,y) на H и L върху една равнина. Реално ползвам метод подобен този който се ползва при биометричните скенери за разпознаване на лица, пръстови отпечатъци, и др. тоест софтуера който го има на всеки смартфон. Само че тука алгоритъма съм го изчистил от всичко ненужно и съм го направил да разпознава 2D графични форми.

zezo
15.10.2020, 16:37
Звучи ми сложно, но щом си успял да го направиш страхотно. Ако искаш направи тема за търсене на зависимости и можем да прверяваме дадени зависимости с двата метода с цел по-голяма сигурност.

bvg
23.10.2020, 09:46
Обрат в разсъжденията ми за ентропията. Приложения файл не може да бъде компресиран повече от текущото си състояние, според 7zip и сходните му програми, няма ентропия в изображението. Въпреки това човешкият мозък е способен да разграничи тренда в изображението.
10335

Mateev
24.10.2020, 09:38
Малките по размер файлове няма как да бъдат компресирани добре, защото служебната информация е повече от самите данни. Във всеки един ZIP или RAR файл има таблици с побитовото кодиране, има директорийна структура, имена на файлове и т.н. Така че ако искаш обема на данните да превъзхожда обема на мета-информацията поне 100 пъти, трябва да компресираш файлове с размер поне 20-30 килобайта.

За малки файлове архивиращите програми прилагат друга хитрост - опитват се да компресират, но ако компресираното съдържание + таблицата с побитово кодиране се окажат по-големи от оригиналните некомпресирани данни, то тогава в ZIP-а се слага некомпресираното съдържание.

Mateev
24.10.2020, 09:49
По начало аз не одобрявам този метод, който прилагаш, защото в него има много недостатъци, които могат да те подведат. Обсега на "видимост" на компресиращия алгоритъм е само няколко байта. При това положение ако направиш повтаряемост (зависимост) с цикъл например 100 байта, компресиращият алгоритъм въобще няма да се усети.

Можеш да го провериш това като се опиташ да компресираш например данните за една синусоида. Ами ето - имаме 100%-на зависимост, която може да се опише само с 3-4 байта, но компресиращия алгоритъм ще генерира мегабайтови архиви на повтарящата се синусоида и въобще няма да се усети.

Има си други начини и методи за детектиране на чиста случайност, или за определяне на вероятност, различна от 50%, но нито един от тях не е надежден при малък брой данни. Искат се десетки хиляди числа, за да се стесни диапазона на доверителния интервал, и за да може изчислената вероятност да е с много малка грешка.

За съжаление в трейдинга рядко разполагаме с десетки хиляди сделки, и затова повечето трейдери често се бъркат и си мислят, че са намерили нещо печелившо, а в действителност то е флуктуация на чистата случайност.

Ако пък направим стратегия с десетки хиляди дребни сделки, или пък директно тестваме десетки хиляди барове, то тогава почти винаги получаваме 50% +/- 2-3 десети, което всъщност си е чиста случайност.

alphaomega
24.10.2020, 15:13
По начало аз не одобрявам този метод, който прилагаш, защото в него има много недостатъци, които могат да те подведат. Обсега на "видимост" на компресиращия алгоритъм е само няколко байта. При това положение ако направиш повтаряемост (зависимост) с цикъл например 100 байта, компресиращият алгоритъм въобще няма да се усети.

Можеш да го провериш това като се опиташ да компресираш например данните за една синусоида. Ами ето - имаме 100%-на зависимост, която може да се опише само с 3-4 байта, но компресиращия алгоритъм ще генерира мегабайтови архиви на повтарящата се синусоида и въобще няма да се усети.

Има си други начини и методи за детектиране на чиста случайност, или за определяне на вероятност, различна от 50%, но нито един от тях не е надежден при малък брой данни. Искат се десетки хиляди числа, за да се стесни диапазона на доверителния интервал, и за да може изчислената вероятност да е с много малка грешка.

За съжаление в трейдинга рядко разполагаме с десетки хиляди сделки, и затова повечето трейдери често се бъркат и си мислят, че са намерили нещо печелившо, а в действителност то е флуктуация на чистата случайност.

Ако пък направим стратегия с десетки хиляди дребни сделки, или пък директно тестваме десетки хиляди барове, то тогава почти винаги получаваме 50% +/- 2-3 десети, което всъщност си е чиста случайност.

Аз открих че в ценовите криви по минутните графики и нагоре до H1 има много модели които се повтарят особено в диапазанона 60-70% съвпадение. За съжаление обаче тези модели нямат абсолютно никаква способност да прогнозират статистически бъдещето и от тях не може да се извлече нищо. Моите тестове показват точно това което и ти казваш. Абсолютно всички модели които съм тествал досега (а те са десетки хиляди) имат средна познаваемост 50% +/- 2-3 десети. Само при някой модели които се срещат по рядко има познаваемост достигаща до към 60% но това вероятно е чиста случайност и се дължи на малката бройка. Пробвах да направя стратегии върху моделите с най висока познаваемост но се оказа че абсолютно всичките имат пмо под 1 пипс. Тоест дори не могат да се покрият разходите.

Теорията за ефективните пазари ще се окаже вярна.
Имам подозрения че вероятно всички "печеливши" технически стратегии са случайно напаснати към данните. Strategy Quant на практика произвежда такива напаснати стратегии в индустриални количества. Всичките до една са безполезни. Тестването in sample vs out of sample също е една голяма заблуда. Това че една стратегия е преминала този тест не значи абсолютно нищо и аз вече многократно се убедих в този факт.

bvg
29.10.2020, 15:23
не е точно така, съвременните алгоритми ползват речници от по няколко стотин МБ като им създават хеш, една поредица от котировки за 10-20 години на минутна база е под размера на речника. За картинката, сложих я за пример, не толкова заради размера от 15-20к, колкото заради идеята, че jpg-a не подлежи на компрасия, това обаче не ни пречи да виждаме патърни вътре.

Mateev
30.10.2020, 09:37
Виж тази статия и подробно я осмисли: https://www.mql5.com/ru/articles/8184

В нея автора прави това, което и ти се опитваш, но по почти правилен начин. Всъщност методът му е правилен, но има няколко забележки за доусъвършенстване на това, което той е постигнал. Ще ги обсъдим, когато се запознаете със статията и вникнете в нея. Основно достойнство на статията е богатият илюстративен материал. Едно е да приказваш с много думи и съвсем друго е да го покажеш нагледно. В тази статия нагледните катринки са повече от перфектни.

Освен всичко друго в края на статията има и готов код, с който сами да си създадете всичко, което се показва и в статията.

От същия автор има още 2-3 статии, всяка една от които е направо бестселър. Всичко, което той е описал, е почти същото на това, което и аз правя от години, и се опитвам да го обясня по форумите, но без картинките, които този автор има в изобилие.

Mizzo
30.10.2020, 23:59
Сетих се, че лятото гледах някаква статия по вашите интереси, ако не сте я видели: https://www.mql5.com/ru/articles/8038 Дори не съм я чел, тогава само я прегледах по диагонала. Самата концепция е напълно неприемлива за мене, но щом вас ви влече - това се сетих че съм виждал и го споделям.

alphaomega
31.10.2020, 22:07
Виж тази статия и подробно я осмисли: https://www.mql5.com/ru/articles/8184

В нея автора прави това, което и ти се опитваш, но по почти правилен начин. Всъщност методът му е правилен, но има няколко забележки за доусъвършенстване на това, което той е постигнал. Ще ги обсъдим, когато се запознаете със статията и вникнете в нея. Основно достойнство на статията е богатият илюстративен материал. Едно е да приказваш с много думи и съвсем друго е да го покажеш нагледно. В тази статия нагледните катринки са повече от перфектни.

Освен всичко друго в края на статията има и готов код, с който сами да си създадете всичко, което се показва и в статията.

От същия автор има още 2-3 статии, всяка една от които е направо бестселър. Всичко, което той е описал, е почти същото на това, което и аз правя от години, и се опитвам да го обясня по форумите, но без картинките, които този автор има в изобилие.

Хубава статия но това което е написал човекът ние си го знаем отдавна. Няма нова информация поне за мен.
До някъде пак се опитваме да търсим сложни решения на прост проблем.

Основното което ни интересува за всеки инструмент е какъв процент от времето цената се намира в трендово състояние. И другото което ни интересува е нивото на гладкост на кривата. Колкото е по гладка кривата толкова по подходящ е инстументът за търговия по посока на движенията и пробивите на рейнджа. А при рошава крива трябва да се търгува обратно на движенията и на пробивите.

И за двете неща си има формули които са елементарни. Мисля че сме ги обсъждали доста пъти и по другите форуми.
То дори и без формулите всеки нормален човек като погледне една гола графика веднага с просто око може да забележи дали има гладки трендове или не. Не са нужни кой знае какви статистически умения за това.

В крайна сметка проблемът не е във нашата методика за анализ а е в самите пазари които явно са достатъчно ефективни че да не ни позволяват да ги победим нито с трендова стратегия нито с противотрендова. Причината за това е че двете състояния се сменят постоянно и имат случайно променлива дължина във времето. Никога не знаеш къде започва тренда и къде свършва. Същото и за рейнджа. Ако извадим разходите, печалбите които се генерират по време на трендово състояние са абсолютно равни на загубите които се генерират когато трендовото състояние приключи. Същата работа и при рейндж. При първия силен пробив връщаш всички печалби обратно.
Казано накратко, ако имаше някакви силни зависимости в ценовите криви те щяха да са видими и с просто око. Щом такива зависимости не са видими с просто око значи дори и да ги има те са много слаби и добре скрити в потокът от случайност което пък ги прави почти безполезни за нас.

Специално по въпросът със гладкостта на кривите силно препоръчвам работата на математикът Benoit Mandelbrot и неговата теория за фракталната геометрия. Там има някой много полезни идеи. Той самият с години е изследвал ценовите криви по различни пазари и даже има написана книга (https://www.amazon.com/Misbehavior-Markets-Fractal-Financial-Turbulence/dp/0465043577)със изводите които си е направил докато е работил със суперкомютър в лабораторията на IBM.

Голяма заблуда е да си мислим че точно ние ще открием нещо ново и то точно във сфера която е претършувана от много велики умове и хора разполагащи с какви ли не технологии и супер компютри.

-------------------------------------------------------------------------------------

Ето тук може да видите очевадната разлика между гладка и рошава крива. Този индикатор го написах миналата година. Чудесно засича трендовете и рейнджовете, но не може да ги прогнозира! Той просто ти казва какво се е случило през последните N бара.
В случая съм го настроил да анализира последните 24 часа на M1 и в ляво в таблицата виждате резултатът за 28 валутни двойки.
Колкото по ниско е числото толкова по гладка е кривата. За наистина добър тренд смятам крива с число 20 и надолу. А Хубавите рейнджове са с число 50 и нагоре.

10337

10338

bvg
31.10.2020, 22:37
Виж тази статия и подробно я осмисли: https://www.mql5.com/ru/articles/8184

В нея автора прави това, което и ти се опитваш, но по почти правилен начин. Всъщност методът му е правилен, но има няколко забележки за доусъвършенстване на това, което той е постигнал. Ще ги обсъдим, когато се запознаете със статията и вникнете в нея. Основно достойнство на статията е богатият илюстративен материал. Едно е да приказваш с много думи и съвсем друго е да го покажеш нагледно. В тази статия нагледните катринки са повече от перфектни.

Освен всичко друго в края на статията има и готов код, с който сами да си създадете всичко, което се показва и в статията.

От същия автор има още 2-3 статии, всяка една от които е направо бестселър. Всичко, което той е описал, е почти същото на това, което и аз правя от години, и се опитвам да го обясня по форумите, но без картинките, които този автор има в изобилие.
Много добра статия. Самия аз стигнах до същите резултати, но по друг път, доста по-дълъг и с много проби грешки. Като цяло забелязах, че малките промени имат тенденция на тренд, а по-големите на рейндж. За това си има обаче логично обяснение и то е, че повечето учстници задържат по-дълго време позицията за да могат да избят спреда и да намалят съотношението между риск/спред. Друга зависимост е, че колкото по-голям е спреда за някой инструмент, толкова повече има склонност да образува тренд. Имам малко работа още върху тестването на кърв-фитнга. Правя софтуера да тества стратегията в множество различни входни точки/т.е. логигата е същата но реже началните 1000-10к точки от даннните/, за да се убедя, че това няма да превърне стратегията от печеливша в губеща.

Mateev
02.11.2020, 12:05
Автора на статията изследва блоковете (сегментите) на целия финансов инструмент, в търсене на трендовост, но не прави изследване какво би се получило, ако филтрираме сегментите например по час от денонощието или ден от седмицата/месеца. При такава филтрация ще се добави някаква нова дребна познаваемост, която ще се сумира с предишната.

Също така при анализа се използва само един сегмент назад и спрямо него се тъси статистиката на бъдещето (следващия сегмент). Би трябвало обаче ако се анализират например 5 сегмента назад, правейки по този начин 32 различни комбинации, също да получим повишена познаваемост, която колкото и да е дребна, също ще се сумира с предишните две.

Също така може да се ползва мнението на друг експерт от друг таймфрейм или от много други таймфреймове и да се организира гласуване, което със сигурност също ще добави малко познаваемост към вече наличните 3-4 такива.

Може да се ползва мнението и на други гласуващи експерти от други символи. Може да се ползва и всяка една друга външна или вътрешна информация. Въобще вариациите са безкрайно много и аз не мисля, че някой на света ги е преровил всичките. Дори и да го е направил, едва ли търгува с милиарди, щото да обере всички зависмиости за себе си и да не остави нищо за нас.

K_W
15.11.2020, 13:01
Аз открих че в ценовите криви по минутните графики и нагоре до H1 има много модели които се повтарят особено в диапазанона 60-70% съвпадение. За съжаление обаче тези модели нямат абсолютно никаква способност да прогнозират статистически бъдещето и от тях не може да се извлече нищо. Моите тестове показват точно това което и ти казваш. Абсолютно всички модели които съм тествал досега (а те са десетки хиляди) имат средна познаваемост 50% +/- 2-3 десети. Само при някой модели които се срещат по рядко има познаваемост достигаща до към 60% но това вероятно е чиста случайност и се дължи на малката бройка. Пробвах да направя стратегии върху моделите с най висока познаваемост но се оказа че абсолютно всичките имат пмо под 1 пипс. Тоест дори не могат да се покрият разходите.

Теорията за ефективните пазари ще се окаже вярна.
Имам подозрения че вероятно всички "печеливши" технически стратегии са случайно напаснати към данните. Strategy Quant на практика произвежда такива напаснати стратегии в индустриални количества. Всичките до една са безполезни. Тестването in sample vs out of sample също е една голяма заблуда. Това че една стратегия е преминала този тест не значи абсолютно нищо и аз вече многократно се убедих в този факт.


Звучиш доста обез куражаващо, но аз не мога да се съглася с това коато казваш. Моят опит показва, че печеливши системи има, такива които работят с години напред след откриването им има.

Всички системи, които позлвам и общо взето съм виждал да дават добър резултат работят от M5 до H1, Честно казано нагоре нямам и интерес да търся поради няколко причини, от разлика баровете до значително по-малкият им брой което може да доведе до недостатъчно значими от статистическа гледна точка резултати от бектестове.

K_W
15.11.2020, 13:23
Хубава статия но това което е написал човекът ние си го знаем отдавна. Няма нова информация поне за мен.
До някъде пак се опитваме да търсим сложни решения на прост проблем.

Основното което ни интересува за всеки инструмент е какъв процент от времето цената се намира в трендово състояние. И другото което ни интересува е нивото на гладкост на кривата. Колкото е по гладка кривата толкова по подходящ е инстументът за търговия по посока на движенията и пробивите на рейнджа. А при рошава крива трябва да се търгува обратно на движенията и на пробивите.

И за двете неща си има формули които са елементарни. Мисля че сме ги обсъждали доста пъти и по другите форуми.
То дори и без формулите всеки нормален човек като погледне една гола графика веднага с просто око може да забележи дали има гладки трендове или не. Не са нужни кой знае какви статистически умения за това.

В крайна сметка проблемът не е във нашата методика за анализ а е в самите пазари които явно са достатъчно ефективни че да не ни позволяват да ги победим нито с трендова стратегия нито с противотрендова. Причината за това е че двете състояния се сменят постоянно и имат случайно променлива дължина във времето. Никога не знаеш къде започва тренда и къде свършва. Същото и за рейнджа. Ако извадим разходите, печалбите които се генерират по време на трендово състояние са абсолютно равни на загубите които се генерират когато трендовото състояние приключи. Същата работа и при рейндж. При първия силен пробив връщаш всички печалби обратно.
Казано накратко, ако имаше някакви силни зависимости в ценовите криви те щяха да са видими и с просто око. Щом такива зависимости не са видими с просто око значи дори и да ги има те са много слаби и добре скрити в потокът от случайност което пък ги прави почти безполезни за нас.

Специално по въпросът със гладкостта на кривите силно препоръчвам работата на математикът Benoit Mandelbrot и неговата теория за фракталната геометрия. Там има някой много полезни идеи. Той самият с години е изследвал ценовите криви по различни пазари и даже има написана книга (https://www.amazon.com/Misbehavior-Markets-Fractal-Financial-Turbulence/dp/0465043577)със изводите които си е направил докато е работил със суперкомютър в лабораторията на IBM.

Голяма заблуда е да си мислим че точно ние ще открием нещо ново и то точно във сфера която е претършувана от много велики умове и хора разполагащи с какви ли не технологии и супер компютри.

-------------------------------------------------------------------------------------

Ето тук може да видите очевадната разлика между гладка и рошава крива. Този индикатор го написах миналата година. Чудесно засича трендовете и рейнджовете, но не може да ги прогнозира! Той просто ти казва какво се е случило през последните N бара.
В случая съм го настроил да анализира последните 24 часа на M1 и в ляво в таблицата виждате резултатът за 28 валутни двойки.
Колкото по ниско е числото толкова по гладка е кривата. За наистина добър тренд смятам крива с число 20 и надолу. А Хубавите рейнджове са с число 50 и нагоре.

10337

10338

Видях едни стар пост на Матеев нещо от който много ми хареса


Интуитивните трейдери се опитват да намерят визуални графични зависимости, но такива на практика няма. Всички зависимости са прикрити и са на статистическо ниво, което няма как да се открие с просто гледане на графиката. Иска си тестове в исторически план, за да може да се детектират минимални разлики от само 2-3% отклонение от чистата случайност на идеалния генератор.
Напълно съглсден съм.
Идеята да търсиш някакваи зависимости на око и така да ги преценяваш ми се струва безмислена и нелепа идея. Честно казано аз като си гледам моите системи как търгуват и не гледам баланса и кривата на системите или примерно си пусна тестера да изгледам 10-20 години със всичките тредове по графика (правя го за всяка система която ползвам) ще си кажа че търгува случайно или дори губещо. Релно като погледнеш дългосрочната крива и цифрите картинката е съвсем различна.

Колко до идеята, че видиш ли някой по умен е открил всичко което има да се открива, защото разполага с нещо си и тн ме подсеща за тази фраза
"everything that can be invented has been invented."
Charles H. Duell Commissioner of US patent office in 1899!