Стохастический резонанс - страница 33

 
Prival, ты спец по ЦОС. Я заметил, что такие спецы обычно достигают хороших результатов на Форехе. Порекомендуй, пожалуйста, литературу, а? Ну там собственно ЦОС, теория информации, еще что-нибудь...
 

Кажется более или менее понятно.

Нам нужно два массива амплитуд - один для сигнала, другой для шума. Второй массив уже введен, поскольку из него нам нужна только одна величина просто запомним её, высвобождая тем самим массив для наших нужд. То есть разделение должно выглядеть как-то так:

double thr = data1[hmax];
for(i=0;i<N;i++) {
  if (data[i]<thr) {
    data1[i]=data[i]; 
    data[i]=0.0; 
  } else {
    data1[i]=0.0;
  }
}

Но скорее всего всё гораздо хуже. По той причине, что на самом деле порог нужно определять для спектральной плотности. Код для её расчёта можно извлечь из моего примера, но поскольку в ней сидят мнимая и реальная амплитуды для каждой частоты, разделять на два массива придётся не значения амплитуд а частоты (то есть индексы, причём каждой частоте соответствуют 2 индекса: i и i+1). То есть очень похоже понадобятся ещё 3 массива - один для спектральной плотности и два для индексов(частот): сигнала и шума. Одним словом придётся серьёзно поработать и прежде всего понять формат файла данных для FFT после преобразования. Поможет ссылка из шапки библиотеки klot'а.

Что касается медленности, то без визуализатора всё было бы гораздо скучнее, так хоть можно любоваться процессом :). Несколько ускорить дело может минимизация терминала.

P.S. Для частот можно обойтись одним массивом - скажем писать 1 для сигнальных частот и -1 для шумовых.

 

to Mathemat

Озадачил :)

  1. Хотя вижу что мат. уровень у тебя выше. Рекомендую начать с Юкио Сато «Обработка сигналов первое знакомство». Там физика процессов. По крайней мере, для меня всегда было так. Если я не понимаю физику процесса, то и математику не могу приложить (она же прикладная :)).
  2. Классика. Марп-младший. Цифровой спектральный анализ. ИХМО лучшая книга, другие можно и не искать.

Что еще считаю нужным (полезным) для рынка форекс.

Для решения момента входа и выхода из рынка

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

Для прогноза движения цены

  1. Фарина. Цифровая обработка радиолокационной информации. Там особое внимание обрати на фильтр Калмана, математически доказано, что при определенных условиях, точнее его нет. Но вот с этими условиями часто возникают проблемы, у меня есть идеи как его использовать, тем более рынок Форекс сам по себе снимает много ограничений.

Статистика, различные виды распределений и их анализ.

  1. Левин Борис Рувимович. Теоретические основы статистической радиотехники. Единственное издание, где нам не удалось найти ошибку (опечатку). Настольная книга была, когда писал дисер.

Подбор книг немного специфичный, но просто там слово цель (самолет) заменяй на цена (Close[0]), обнаружение маневра (на разворот цен) и тогда станет понятнее что куда можно приложить :)

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

Еще раз обращаюсь ко ВСЕМ, если у вас есть возможность и желание поработать командой, найдите меня в Skype (privalov-sv). Вод ссылка на прогу http://www.skypeclub.ru/skype.htm . Очень удобна для общения.

Идей много, хватит всем, нехватает времени и сил. Одному все не поднять.

Черт остальные не влезают, не пропускает php. Так что у Вас 1 выход :) кому нужны эти книги -> в скайп, я там почти всегда. Формат книг djvu

Файлы:
sato.zip  1353 kb
 

to lna01

"Но скорее всего всё гораздо хуже.. "

Вы правы, там гораздо будет хуже, это только первый этап. Главное понять, как правильно строить индикатор и оптимизировать по быстродействию, т.к. формул добавиться и очень хороших ИХМО. В дальнейшем нужно будет еще 2 буфера, для анализа фазы + обязательно хочу поэкспериментировать с окнами, по крайней мере с двумя точно. Хемминга и Батерворта. Первые результаты обнадеживают. Попробуйте просто построить амплитуду 1 гармоники спектра (без всяких порогов и сортировок). Красивая картинка получается, первое впечатление перегибы определяют момент времени установки Stop Lossов. Но это надо еще проверить, завтра постараюсь выложить картинку.

 

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

Рис.1

Рис.2

  1. Если поменять в строке знак сравнения, на противоположный, пропадает гистограмма (см.рис 2),

if (data[i]<porog) //сравнение с порогом в этом случае есть гистограмма

а если так

if (data[i]>porog) // тут пропала

  1. Энергия не может быть отрицательной, да и амплитуда тоже, тем более их сумма !! :(
  2. Но визуально очень красиво, я бы назвал это «Энергией тренда-кривых рук»

P.S. Единственное на вопрос что я хотел сделать в этой строчке кода не отвечу (если найдете ошибку), смотрите выше общий замысел индикатора, что хотел получить, там все в картинках. А вот если объясните в картинках, что я получил из-за своих кривых рук. С меня магарыч. Я просто взял индикатор MACD и вставил туда что хотел расчитать, но видно что то не так зделал.

Файлы:
pvf2.mq4  4 kb
 
Prival:

А вот если объясните в картинках, что я получил из-за своих кривых рук. С меня магарыч.


Вот это: for( i=hmax ;i<N;i++) - я продолжаю не понимать. То есть конечно не обязательно просматривать все частоты, но почему от hmax?

Во вторых в результате преобразования Фурье получаются комплексные амплитуды. Поэтому амплитуде для каждой частоты соответствует два числа: реальная и мнимая часть. Энергия равна модулю sqrt((Re+j*Im)*(Re-j*Im)). От себя добавлю, что Re и Im часто идут в противофазе. Резать всё не разбираясь по одному порогу - нетривиальное преобразование и физический смысл для него я придумать затрудняюсь. Во всяком случае энергия тут ни при чём.
Повторюсь: нужно понять формат файла данных для FFT после преобразования. Поможет ссылка из шапки библиотеки klot
 

lna01

Я разобрался, вчем тут все дело, единственное действительно формат данных попутал. Как узнаю формат данных (выложил вопрос klot в ветку) сяду с листком и ручкой проверю чтож там с чем складываеться. Привык я к маткаду. В этом и ошибка. По поводу for( i=hmax ;i<N;i++) точнее надо брать просто с 1 (или вообще зделать отдельной переменной). Просто подумайте, там ясный физический смысл если использовать sqrt((Re+j*Im)*(Re-j*Im)).

 
Prival:

вообще зделать отдельной переменной

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

P.S. Возможно я слишком часто упоминаю индикатор https://forum.mql4.com/ru/6275 :), но там работа с амплитудами сделана правильно - можно просто взять из него.
 
Так что же все-таки получилась за красная линия на Рис.2 ? Разность энергий реальной и мнимой частей ? Очень интересно. И что означают цифры в области значений индикатора ?
 
Похоже ошибка есть в библиотеке, или у меня снова кривые руки :( выложил свой вопрос тут 'Библиотека функций быстрого преобразования фурье FFT') если кто может проверте. Прав я или нет. Попробуйте в матлабе проверить.
Причина обращения: