Кохонен и Паттерны - страница 5

 
artem писал(а) >>
ANG3110 если не секрет как ты фльтровал данные сглаживал или что?

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

Вот как он выглядит без прогноза:

 
ANG3110 >>:
Для построения приведенных картинок я использовал сеть с Общей Регрессией (GRNN). Это модификация вероятностной сети PNN предназначенная для апроксимаций и предсказаний (prediction). А что за вариант довольно точной оценки прогноза сети сразу при прогнозировании? Опишите хоть что то, а то Вы уже 2-ю страницу на что то намекаете, но не написали ни одного слова по существу. Я работал с сетями почти всех основных видов и думаю понять о чем идет речь мне не будет сложно.

Надеюсь на продолжение беседы, когда Ваша занятость поуменьшится.

 
ANG3110 писал(а) >>

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

Фильтрация выглядит очень качественной. Можно получить более подробную информацию по алгоритму фильтрации?

 
Neutron писал(а) >>

Фильтрация выглядит очень качественной. Можно получить более подробную информацию по алгоритму фильтрации?

Берем 2 массива a[] и b[]. В них загоняем допустим Close[i]. Затем берется короткий период линейной регресии - N и гонится в одну сторону. На каждом следующем шаге данные суммируютя. Потом гонится в обратную сторону. И делается тоже самое. И так несколько раз (типа разглаживается). Потом прямой и обратный ход суммируются и усредняются (a[i]+b[i])/2. aa и bb - коэффициенты линейной регрессии.

for (m=1; m<=s; m++)
   {
      for(i=T-1; i>=0; i--) {af_LR(a,N,i); for(n=0; n<N; n++) a[i+n]=bb+aa*n;}
      for(i=0; i<T; i++)    {af_LR(b,N,i); for(n=0; n<N; n++) b[i+n]=bb+aa*n;}
   }
 

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

 
Neutron писал(а) >>

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

Ну это ж не мувинг как концевой указатель типа индикатора, - это фильтр. К тому же сети нужны реально центрированные данные, а любой неперерисовывающийся индикатор - типа мувинга или любого другого проходит-то не посередине данных, а со сдвигом, и к тому же конец всегда болтается. Для сети это некачественные данные, и она по таким данным и будет давать такую же нереальную картину. Обычный же мувинг сдвинут от центра на полпериода. EMA на треть, LWMA на четверть. Линейная регрессия свинута под углом, а горизонтальный сдвиг у нее переменный, но все-равно сдвинута. А вот такой фильтр хорошо центрирован именно по текущим данным которые подаются на вход сети. Но кстати, если его неперерисовывать и использовать как концевой, то он будет близок к обычной линейной регрессии, только чуть поглаже. Сети перерисовка до-фонаря. Если Вас интересует именно неперерисовывающийся индикатор с очень хорошей гладкостью, - то это T3, но он конечно несколько запаздывает, зависит от коэффициента b. А быстрый но уже с меньшей гладкостью это DCT.

 

Понятно всё.

Есть несколько мелких несогласий с моей стороны, типа:

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

Как раз тут болтаться не должен.

Обычный же мувинг сдвинут от центра на полпериода. EMA на треть, LWMA на четверть.

EMA и LWMA относятся к типу рекурсивных цифровых фильтров. Для этого типа, в принципе, нельзя определить понятие ширины окна сглаживания, поэтому, говорить о "центре" и "периоде" не коректно. Можно говорить о групповой и фазовой задержке.

Хотя, это я так - для собственной значИмости:-)

ANG3110, я тут в соседней ветке мусолил тему альтернативного варианта представления предиктных качеств алгоритма, может, заправим твою НС на это дело? Очень любопытные результаты у тебя получаются.

 

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

Насчет сдвигов разных типов мувингов...

Вот прикладываю скрипт, по нему видно какие реально сдвиги.

Болтанка конца - это я имел ввиду на 0-м баре, если к примеру Daily и период 5, то конец будет заметно болтать на 0-м баре в режиме индикатора.

Файлы:
 
TheXpert >>:

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

Кто-нибудь пробовал искать паттерны (на MACD например) с помощью сети Кохонена?


Если да, большая просьба поделитесь впечатлениями и опытом.

Если у кого-то схожие идеи -- приглашаю пообщаться. Желательно здесь, если серьезно, на мыло.


Большая просьба писать по теме и конкретно.

Результат новогоднего отдыха:

Символ EURUSD (Euro vs US Dollar)
Период 1 Час (H1) 2000.01.03 00:00 - 2009.01.09 22:59 (2000.01.01 - 2009.01.12)
Модель По ценам открытия (только для советников с явным контролем открытия баров)
Параметры Lots=0; RiskPercentage=0; Slippage=1; Fast=15; Slow=30; Signal=10; Price=3; Step=0.01; ProfitStep=0.04; Level=1.45; MaxOrders=1; IsClose=0; TrailingPeriod=10; UseTrailing=0; Enchancing=30; UseEnchancing=0;

Баров в истории 57136 Смоделировано тиков 113258 Качество моделирования n/a
Ошибки рассогласования графиков 0




Начальный депозит 10000.00



Чистая прибыль 11345.26 Общая прибыль 29781.57 Общий убыток -18436.31
Прибыльность 1.62 Матожидание выигрыша 26.45

Абсолютная просадка 343.01 Максимальная просадка 1504.88 (9.89%) Относительная просадка 9.89% (1504.88



Чуть попозжа выложу в базу.

Кто хочет присоединиться к изыскательству? Мысли прошу высказывать здесь.


Посты типа "а можно сюда стохастик прилепить" или "сделать фиксированные стопы с тралом в ... пунктов" мною будут игнорироваться.

Конструктивные предложения пожелания критика приветствуются.


Чуть подробней о советнике. Это обычный советник по сигналам. Сигналы дает индикатор AutoMACD.

Об индикаторе -- это простой вариант адаптивного сигнальщика.


Сигналы генерируются согласно статистики по паттернам.

Паттерны являют собой кластеры сети Кохонена.

сеть Кохонена(паттерны) обучается(реформируются) параллельно формированию цены, причем довольно шустро.

Более понятно станет когда заглянете в код. Сразу извиняюсь за немного запутанную логику, это рабочий черновой вариант.

Файлы:
 

if (Volume[0] == 1) а для чего это условие? 

я так понимаю вся обработка происходит в индикаторе?  очень интеренсно,  не совсем еще разобрался, Спасибо

Причина обращения: