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

 
В основе нелинейные по Х искажения, или чисто сравнение подобий?
 
IgorM:в оптимизаторе получил неплохие параметры за один месяц на ТФ Н1:
10 сделок - это несерьезно, Игорь. Хотя бы сотню покажи, что ли.
 
Mathemat:10 сделок - это несерьезно, Игорь. Хотя бы сотню покажи, что ли.

было сегодня время поэкспериментировать с кодом, вот держи как просил сотню :)

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

Файлы:
desktop.zip  19 kb
 

Не очень я верю в эти паттерны (хотя смотря какие, конечно; как бы это сказать... они не должны быть геометрически очевидными).

Но уже поинтереснее.

 
Я написал новый вариант WmiFor по алгоритму DTW. Как пройдет модерацию - появится в codebase.
 

Молодец. Ждем подробного описания именно математической кухни. Будет возможность - отпиши сюда о появлении в codebase

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

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

В 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, форвард тест выглядит болтанкой около нулевого профита. Начинаю разочаровываться в паттернах. Видимо они не постоянны на форексе, или, иначе говоря, у форекса нет памяти на патерны - каждый раз создаются новые.

 

если болтается возле нуля при постоянном лоте - это считай у тебя уже машинка для печатания денег под руками... Лоты - ММ прикручивай для отбоя убыточных серий...


вообще - любая ТС имеющая за 1000 и более сделок, убыток Не более чем (спред*1,5*кол-во сделок) есть Очень потенциально прибыльная система... (при постоянном лоте если такой результат кажет)

 
Aleksander:

если болтается возле нуля при постоянном лоте - это считай у тебя уже машинка для печатания денег под руками... Лоты - ММ прикручивай для отбоя убыточных серий...


вообще - любая ТС имеющая за 1000 и более сделок, убыток Не более чем (спред*1,5*кол-во сделок) есть Очень потенциально прибыльная система... (при постоянном лоте если такой результат кажет)


Есть уже ММ со стоп-лоссами и пропорцианальным наращиванием объёма с балансом. Вы о мартигейле, что-ли?