3D-индикаторы + нейротехнологии = прогноз будущего

 

Доброго времени суток!

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


Ну так вот. Есть желание эту картинку подать на вход нейросети, ибо этот способ анализа видится самым подходящим. Совершенно ясно, что в растровом виде это сделать малоэффективно. Хотя, может и нет. Вот это как раз и хочется обсудить со знатоками нейросетевых технологий и вообще с людьми имевшими опыт (или желание его приобрести) с распознаванием растровых образов.

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

Если кто знает КАК эффективно распознавать растровые образы, плиз, поделитесь :)

 

C точки зрения особенностей человеческой физиологии, несомненно, что 3D картинки визуально несут больше информации, чем 2D. C другой стороны, в процессе торговли мы сталкиваемся с 2 параметрами - ценой и временем. С ценой допустим всё ясно, время тоже "применяем" в лоб, то есть считаем его общепринято постоянной (постоянно и равномерно меняющейся) величиной. Попытки же обобъёмить двухпараметричную систему ИМХО в чистом виде не есть конструктив. Даже в приведённом вами скрине нет чёткой ясности. Это же моё мнение обусловлено и тем, что я видел много предложений такого рода, и ни одного гениального. 

Что же касается невросеток, то им несмотря на их неформальную логику, какой-никакой исходный материал на вход нужно подготовить. То есть изначальное позиционирование идеи и её формализация, а никак не тезисность, должна иметь место.

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

А из программных продуктов, тот же Neuro Solutions 5 вполне умеет распознавать образы и картинки. В примитивном смысле-да, а вот над вышеуказанной "графикой" придётся потрудится, не исключено что посредством старого доброго Neuro Shell 2, хотя с этого бока, в смысле работы с картинками,

я его не знаю.

 

Согласен. С тем, что с математической точки зрения введение третьей координаты к первичным двумерным данным не добавляет информации. Но.

Именно человеческая 3D физиология и движет многими писателями индикаторов. Желание взглянуть на того же слона, только сбоку - так или иначе, - способ найти неявные закономерности, желание отыскать признаки хоть какой-нибудь стационарности. И уж если не удается увидеть желаемое в координатах XY, то это можно попытаться разглядеть в координатах XZ или YZ... Что, собственно, как вариант, и дает 3D-картинка того же стохастика. Тут местами очевидны признаки как горизонтальной, так и "диагональной" стационарности. Задача именно это и формализовать. Если например, пытаться дорисовать приведенную картинку в будущее, то моск будет использовать для этого оба типа цветовых "стационарностей", а может и чего-то еще. Ведь несложно видеть где, например, будет проходить в будущем белая граница незавершенного синего полуэллипса справа. И опять же - выгляди 3D-история менее стационарно, то вряд ли дорисуешь умозрительно так уверенно, как это можно сделать сейчас.

 

Это даже не концепция, а скорее предположение. Я глубоко убеждён, что гораздо более интересные результаты получатся, если поработать с квантами времени, как с нелинейным показателем, вспомнить дуалистичную природу частиц, может те же волны приплести. 

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

 
tigravk писал(а) >>

...По ссылке можно посмотреть...

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

 
Попробую. :) Уже только тот факт, что попытался описать это все словами, натолкнул на идею формализации. Чуть позже думаю будет что выложить как первичный результат. Спасибо за участие! :)
 
Integer >>:

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

Поправил

 
tigravk >>:

Тут местами очевидны признаки как горизонтальной, так и "диагональной" стационарности. 

то что кажется некой диагональной стационарностью есть просто напросто спректральное представление линии тренда

это то что еще называют плывущим спектром, также можно сравнить с эффектом доплера

тренд зарождается с импульса малого периода который плавно переходит в крупный

точки зарождения тренда отчетлевы но их много т е часть ложные

а точки конца тренда размыты

не все то золото что блестит

я рисовал отчасти для баловства 'А такой рисунок видели?'

 

Добродень всем!

В продолжение развития темы выкладываю новую свою поделку. Пока без исходников. В CodeBase разместить не удалось, поскольку размещение только компилированных вариантов противоречит местным правилам. Наверное это правильно..

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


Скрипт является реализацией идеи "повторяемости прошлого". Построен на основе и принципах 3D-стохастика, опубликованного и описанного мной ранее.

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

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

Координата Х на диаграмме - время в формате графика торгового инструмента

Координата Y на диаграмме - сверху вниз последовательное отображение стохастиков с различными параметрами

Координата Z отражена цветовой градацией в зависимости от текущего значения стохастика в данной временнОй точке

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

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

Оптимизация кода:

1. Ресурсоемкие функции написаны на C++ и вынесены в отдельную библиотеку PatFinderProj.dll

2. Ранее расчитанные и используемые индикатором в дальнейшем прогнозные значения вынесены в файл "подкачки" (описание формата в коде)

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

Внешние параметры скрипта(индикатора):

extern datetime HistoryDepth = D'13.01.2009 00:00:00'; //глубина истории по которой производится поиска совпадения с шаблоном

extern int FutureMode = 0; //Отображение (0 - только абсолютное знач. осциллятора; 1 - еще и дисперсия в суммируемых слоях, общее совпадение с похожим историческим врагментом, диаграмма экстремумов)

extern int HistoryShiftStart = 10; //Смещение в историю начала отрисовки (0 - если Realtime). Типа, для этого момента и производится расчет будущего

extern int FutureBars = 40; //глубина отрисовки в будущее, в барах

extern int ViewHistoryBars = 100; //глубина отрисовки в прошлое, в барах

extern int TemplateWidth = 40; //ширина шаблона которых ищем в истории, в барах

Параметры стохастиков используемых для отрисовки 3D-диаграмм:
стартовый %K = 3 с инткрементом +3 для последующих строк;
стартовый Slowing = 1 с инткрементом +1;

ELEMENTS_DATA = 20 //количество строк в 3D-диаграмме (анализируемых периодов стохастика)
ELEMENTS_TEMPL = 5 //высота шаблона, в строках
FUTURE_LAYERS_COUNT = 3 //количество запоминаемых состояний в матрице будущего. Новый слой формируется с каждым новым баром.

Принцип работы скрипта:

1. Скрипт в 2D-массив построчно собирает за период HistoryDepth абсолютные значения стохастического осциллятора линейно увеличивая от строки к строке его период

2. От момента HistoryShiftStart выделяется окно-фрагмент размером (TemplateWidth х ELEMENTS_TEMPL) и ищется максимально близкое к нему совпадение в истории за период HistoryDepth. От найденного совпадения берется его продолжение размером (FutureBars х ELEMENTS_TEMPL) и копируется. Это действие повторяется (ELEMENTS_DATA-ELEMENTS_TEMP) раз проходами по строкам общего 2D-массива с шагом = одной строке с суммированием в конечном массиве с последующим усреднением. Таким образом вормируется СЛОЙ.

3. Чтобы прогноз не был скачущим, при переходе на новый бар проводится усреднение текущего слоя с FUTURE_LAYERS_COUNT слоями ближайшего таким же образом рассчитанного прошлого. Это и есть получаемая картина "прогноза".

4. Поскольку в тестер засунуть этот скрипт мне почемуто не удалось, то я решил что ручного сдвига по барам и визуальной оценки того, что с этим всем делать дальше, на данном этапе, вполне достаточно. Эта операция проделывается кнопками <ALT> и <CTRL>. Чтобы не было скучно ждать продолжительных ресурсоемких вычислений скрипта, все рассчитанные прогнозы свопируются в бинарный файл в папку /files терминала. Однажды рассчитанный прогноз для конкретного бара с легкостью оттуда дастаётся автоматически. По этому первоначальный расчет может занять времени до минуты. Все последующие сдвиговые манипуляции занимают около 3-8 секунд, а если пройтись по уже посчитанным барам снова, то можно наблюдать мультфильмоподобную картину смены рыночных тенденций и динамическую подстройку под нее "прогноза".

Скрипт во время работы валит в лог (в окне "Терминал" вкладка "Эксперты") основные свои действия и их результаты. Из их анализа станет понятнее больше о том чем скрипт занимается. Все возможные ошибки во время расчетов тоже должны попадать в лог.

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

Во вложенных файлах - .ex4 положить в папку /scripts, а библиотеки .dll в папку /libraries
Файлы:
 
tigravk писал(а) >>

Добродень всем!

В продолжение развития темы выкладываю новую свою поделку. Пока без исходников. В CodeBase разместить не удалось, поскольку размещение только компилированных вариантов противоречит местным правилам. Наверное это правильно..

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

Скрипт является реализацией идеи "повторяемости прошлого". Построен на основе и принципах 3D-стохастика, опубликованного и описанного мной ранее.

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

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

Координата Х на диаграмме - время в формате графика торгового инструмента

Координата Y на диаграмме - сверху вниз последовательное отображение стохастиков с различными параметрами

Координата Z отражена цветовой градацией в зависимости от текущего значения стохастика в данной временнОй точке

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

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

Оптимизация кода:

1. Ресурсоемкие функции написаны на C++ и вынесены в отдельную библиотеку PatFinderProj.dll

2. Ранее расчитанные и используемые индикатором в дальнейшем прогнозные значения вынесены в файл "подкачки" (описание формата в коде)

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

Внешние параметры скрипта(индикатора):

extern datetime HistoryDepth = D'13.01.2009 00:00:00'; //глубина истории по которой производится поиска совпадения с шаблоном

extern int FutureMode = 0; //Отображение (0 - только абсолютное знач. осциллятора; 1 - еще и дисперсия в суммируемых слоях, общее совпадение с похожим историческим врагментом, диаграмма экстремумов)

extern int HistoryShiftStart = 10; //Смещение в историю начала отрисовки (0 - если Realtime). Типа, для этого момента и производится расчет будущего

extern int FutureBars = 40; //глубина отрисовки в будущее, в барах

extern int ViewHistoryBars = 100; //глубина отрисовки в прошлое, в барах

extern int TemplateWidth = 40; //ширина шаблона которых ищем в истории, в барах

Параметры стохастиков используемых для отрисовки 3D-диаграмм:
стартовый %K = 3 с инткрементом +3 для последующих строк;
стартовый Slowing = 1 с инткрементом +1;

ELEMENTS_DATA = 20 //количество строк в 3D-диаграмме (анализируемых периодов стохастика)
ELEMENTS_TEMPL = 5 //высота шаблона, в строках
FUTURE_LAYERS_COUNT = 3 //количество запоминаемых состояний в матрице будущего. Новый слой формируется с каждым новым баром.

Принцип работы скрипта:

1. Скрипт в 2D-массив построчно собирает за период HistoryDepth абсолютные значения стохастического осциллятора линейно увеличивая от строки к строке его период

2. От момента HistoryShiftStart выделяется окно-фрагмент размером (TemplateWidth х ELEMENTS_TEMPL) и ищется максимально близкое к нему совпадение в истории за период HistoryDepth. От найденного совпадения берется его продолжение размером (FutureBars х ELEMENTS_TEMPL) и копируется. Это действие повторяется (ELEMENTS_DATA-ELEMENTS_TEMP) раз проходами по строкам общего 2D-массива с шагом = одной строке с суммированием в конечном массиве с последующим усреднением. Таким образом вормируется СЛОЙ.

3. Чтобы прогноз не был скачущим, при переходе на новый бар проводится усреднение текущего слоя с FUTURE_LAYERS_COUNT слоями ближайшего таким же образом рассчитанного прошлого. Это и есть получаемая картина "прогноза".

4. Поскольку в тестер засунуть этот скрипт мне почемуто не удалось, то я решил что ручного сдвига по барам и визуальной оценки того, что с этим всем делать дальше, на данном этапе, вполне достаточно. Эта операция проделывается кнопками <ALT> и <CTRL>. Чтобы не было скучно ждать продолжительных ресурсоемких вычислений скрипта, все рассчитанные прогнозы свопируются в бинарный файл в папку /files терминала. Однажды рассчитанный прогноз для конкретного бара с легкостью оттуда дастаётся автоматически. По этому первоначальный расчет может занять времени до минуты. Все последующие сдвиговые манипуляции занимают около 3-8 секунд, а если пройтись по уже посчитанным барам снова, то можно наблюдать мультфильмоподобную картину смены рыночных тенденций и динамическую подстройку под нее "прогноза".

Скрипт во время работы валит в лог (в окне "Терминал" вкладка "Эксперты") основные свои действия и их результаты. Из их анализа станет понятнее больше о том чем скрипт занимается. Все возможные ошибки во время расчетов тоже должны попадать в лог.

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

Во вложенных файлах - .ex4 положить в папку /scripts, а библиотеки .dll в папку /libraries

Вот я залил все как написал ты, зашел в терминал в раздел скрипты и нажал на #_s_3D_OSC_LAYERSframeMatch но он не открывает как у тебя на скрине сделано, почему?

 
Один момент - вроде за прошлый за год не выяснили, что собственно даёт этот подход, где показывает настроения рынка, так как кроме красивой картинки ничего не видно.