Сравнение двух графиков котировок с нелинейными искажениями по оси X - страница 11

 
gpwr:

Система основана на предположении что существуют повторяющиеся паттерны в котировках. На 9-й странице этой ветки мною описан метод нахождения этих паттернов (разряжённое кодирование). Существуют другие методы. Можно также сравнивать цены методом ближайщих соседей. Читайте мои предыдущие посты. Не хочется повторяться.
конечно читал. вот и говорю.
 
gpwr:

Чтобы не открывать отдельную ветку, решил здесь описать результаты моих изысканий по паттернам. Может это сэкономит кому-то время, а кому-то даст новые идеи.

В 2006 году, когда я только заинтересовался форексом, первой идей было сравнивать последние N бары (текущий паттерн) с со всеми прошлыми паттернами той же котировки используя коэффициент корелляции как меру похожести. Это тот же метод ближайщего соседа (БС). Превосходство коэффициента корреляции над Евклидовой длинной в том что он учитывает искажение по оси цен. Соорудил советник по этому методу, который показал необычайную профитность за 2-3 месяца форвард теста (10к в 10М, или что-то в этом роде), но потом 2-3 месяца слива. И так чередой: громадный профит, потом полный слив. Я несколько раз возвращался к этому методу БС, делал комитеты соседей, и т.п., но результат был тот же. В конце концов разочаровался и выложил код индюка по методу БС в базу на 5-ке.

Где-то в 2007-2008 году, теперь уж и не помню когда точно, заинтересовался PNN, в частности GRNN. Суть та же что и БС, но вместо выбора какого-то одного (или нескольких, как в комитете) похожих соседей, автоматически выбираются все прошлые паттерны и их влияние на предсказание взвешивается экспоненциальной функцией типа exp(-мера_различия). Таким образом более-схожие участки истории взвешиваются экспоненциально более сильно. Можно брать цены паттерна (минус средняя) и расчитывать Евклидово расстояние как меру различия, либо брать разницу векторов показаний каких-то индюков. Точность предсказаний была слегка выше чем по методу БС, 52% вместо 50.5% (точно не помню).

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

цена[i] = сумма (a[k]*функция[i][k], k=1..L) i=1..N

Можно конечно не искать базисы а взять тригонометрические функции и тогда у нас получится преобразование Фурье. Но более перспективно это найти базисные функции по истории используя метод разряжённого кодирования. Суть этого метода заключается в вписывании упомянутой линейной модели в цены на разных исторических промежутках времени длинной N методом МНК таким образом чтобы заданная ошибка достигалась при наименьшем количестве ненулевых коэффициентов a[k], k=1..L. В идеальном случае, в каждый исторический вектор цен вписывается только одна базисная функция (или паттерн). На каждом шагу оптимизируются коэффициенты и сами функции. Тут много заранее неизвестных параметров. Например, длинна паттерна N, количество базисных функций в словаре L, количество ненулевых коэффициентов в нашем разложении (я выбрал 3, типа каждый участок цен состоит из хвоста старого паттерна, текущего паттерна и начала нового паттерна). Важно чтобы N*L было намного меньше чем вся длина истории иначе алгоритм найдёт паттерны равные самим прошлым ценам и тогда у нас получится что-то вроде метода ближайщих соседей. Например, словарь 64 паттернов каждый длинной в 64 бара для EURUSD H1, обученный методом разряжённого кодирования на истории 1999-2010 года (74к баров), выглядет таким образом

Заметил такую закономерность, чем дольше паттерн и больше их количество в словаре, тем выше профит в бактесте, что вполне объяснимо переучением. Но в любом случае, при разных N и L, форвард тест выглядит болтанкой около нулевого профита. Начинаю разочаровываться в паттернах. Видимо они не постоянны на форексе, или, иначе говоря, у форекса нет памяти на патерны - каждый раз создаются новые.


Есть ли у вас опыт работы с Echo State Network? http://www.scholarpedia.org/article/Echo_state_network
 
yacoov:

Есть ли у вас опыт работы с Echo State Network? https://www.mql5.com/go?link=http://www.scholarpedia.org/article/Echo_state_network

У TheXpert спросите. У него есть опыт.
 
gpwr: О корреляции между бинарными сигналами не слышал. Кстати, я пробовал кодировать паттерны бинарной последовательностью используя зигзаг. Брались 6 последних колен верх и 6 вниз.

погуглил про корреляцию бинарных сигналов, казалось, что проще XORить и считать число 1 в получившемся результате

вот Вы брали жестко 6 колен ЗЗ, дык в этом то и вся проблема: неизвестно сколько баров(я бары с фракталами использую, от 8 до 16) использовать для анализа

gpwr:Система основана на предположении что существуют повторяющиеся паттерны в котировках.

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

ЗЫ: чет собирался бросить изыскания для евро, но пока никак - может быть кроссы имеют больше закономерностей?

 
sever32:
конечно читал. вот и говорю.


Тогда я не понял Вашего вопроса: "какого- либо обоснования, почему должна работать Ваша система, для себя, не нашел". Обоснования чего:

1. Обоснования предположения что есть повторяющиеся паттерны? Или

2. Обоснования метода разряжённого кодирования для нахождения этих паттернов?

3. Или обоснования чего-то другого?

 
IgorM:

погуглил про корреляцию бинарных сигналов, казалось, что проще XORить и считать число 1 в получившемся результате

вот Вы брали жестко 6 колен ЗЗ, дык в этом то и вся проблема: неизвестно сколько баров(я бары с фракталами использую, от 8 до 16) использовать для анализа

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

ЗЫ: чет собирался бросить изыскания для евро, но пока никак - может быть кроссы имеют больше закономерностей?


6 колен верх и 6 вниз было вполне достаточно на H1 таймфрейме. Судите сами. Допустим у нас самое последнее колено зз это колено верх. Нумеруем колена цифрами 1в-6в, 1н-6н. Тогда у нас такая последовательность битов:

бит 1: -1 = 1в < 2в, 1 = 1в > 2в

бит 2: -1 = 1в < 3в, 1 = 1в > 3в

...

бит 5: -1 = 1в < 6в, 1 = 1в > 6в

бит 6: -1 = 2в < 3в, 1 = 1в > 3в

и так далее, для всех колен верх и вниз. В целом 30 битов. Количество паттернов, которые можно описать 30-ю битами, = 2^30. Но не все биты важны. Например сравнивание самого последнего колена 1в с коленами 4в, 5в, и 6в в большинстве случаев не важно. Но заранее определить какие биты важны, а какие нет, нельзя. Нужно оптимизировать по истории таким образом чтобы каждый паттерн описывался наименьшим количеством ненулевых ("важных") битов. Вот это как раз занимает очень долгое время. Добавление больше колен в описание паттернов ведёт к переобученному словарю паттернов и отсутствию обобщения.

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

 
gpwr:

В целом 30 битов. Количество паттернов, которые можно описать 30-ю битами, = 2^30. Но не все биты важны. Например сравнивание самого последнего колена 1в с коленами 4в, 5в, и 6в в большинстве случаев не важно. 

занялся вновь статистическими исследованиями по паттернам, ищу соответствия на истории "8-мибитным паттернам", в принципе не важно как...

заметил интересную особенность: на истории имеются повторяющиеся (по моему алгоритму) последовательности баров, менее 30 % истории попадают под кодирование, сразу напрашивается озвученный ранее вывод, мол торговля по паттернам тяжело реализуема из-за редкого возникновения оных....

примерно так: 

  №№ паттерна    кол-во   №№ паттерна   кол-во   №№ паттерна   кол-во 
1 83 11 3 21 2
2 34 12 3 22 2
3 19 13 3 23 2
4 12 14 3 24 2
5 6 15 3 25 1
6 5 16 3 26 1
7 5 17 2 27 1
8 4 18 2 28 1
9 4 19 2 29 1
10 4 20 2 30 1
 

   но если паттернов и не много на истории по моему алгоритму кодирования, то ведь более 60% истории вообще не содержат повторяемых участков истории и можно предположить, что эти 60% информации не появятся в дальнейшем

кактотак пока сумбурно, поразмышляю еще 

 
IgorM:кактотак пока сумбурно, поразмышляю еще 

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

 

высота столбика индикатора это № паттерна, пустоты это отсутствие на истории аналогичных комбинаций, пока к чему пришел - по видимому паттерны  это так называемые аттракторы, из Вики подходят под описание: ".... и странные (нерегулярные — зачастую фрактальные и/или в каком-либо сечении устроенные как канторово множество; динамика на них обычно хаотична)." Действительно на начальном этапе проектирования алгоритма поиска паттернов я использовал канторовы множества

ЗЫ: кактотак пока сумбурно, поразмышляю еще :)

 
wmlab:

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

Пики и впадины, хоть и повторяют рисунок, но не совпадают по времени. Например, вчера падение в середине дня началось в 14:15, а сегодня в 13:00. Критериев похожести много - по Спирмену, по Пирсону, методом наименьших квадратов, но не знаю ни одного, который бы сравнивал графики, подверженные небольшим искажениям по оси X. Никто не знает таких методов?



Вы не одиноки в этом мире.
Файлы:
 
IgorM:

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

 

высота столбика индикатора это № паттерна, пустоты это отсутствие на истории аналогичных комбинаций, пока к чему пришел - по видимому паттерны  это так называемые аттракторы, из Вики подходят под описание: ".... и странные (нерегулярные — зачастую фрактальные и/или в каком-либо сечении устроенные как канторово множество; динамика на них обычно хаотична)." Действительно на начальном этапе проектирования алгоритма поиска паттернов я использовал канторовы множества

ЗЫ: кактотак пока сумбурно, поразмышляю еще :)


паттерны на основе DTW?
Причина обращения: