торговая стратегия на базе Волновой теории Эллиота - страница 45

 
if((H[k-1]<H[k])&&(H[k]>H[k+1])&&(H[k]>curHi)) для минимума аналогично.

Остаётся только обосновать выбор достаточной области вокруг Хая для того, чтобы принять его за Хай данной выборки. Я так понимаю что этот Хай должен быть максимальной точкой в радиусе +-30% от длины выборки? В случае если это не так, то выборку наверное нужно увеличивать для определения 2х совместных вещей - экстремума и соответсвенно длины выборки? А у Вас какие соображения по этому?

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

Vladislav, предполагаете ли Вы откорректировать код индикатора Мюррея в свете появившейся новой информации? Ждём новой версии ;o)!


Да, там не сложно рихтануть. Впрочем если нужно отрихтую.

Удачи и попутных трендов.
 
Если просто выбирать на заданном интервале экстремальный экстремум (то есть наивысший хай (наинизший лоу)) из трех баров и выбрать самый такой наивысший (наинизший), то в принципе должны получить то, что нужно.


Найти то, что нужно можно очень просто с помощью сортировки двумерного массива.
В массиве 2 столбца: 1-й = High, а во 2-й пишем номер бара.
Сортировка (в MQL она идет по первому столбцу) ставит максимум на первое,
а минимум на последнее место (или наоборот, в зависимости от режима сортировки).
Номер бара считываем из второго столбца.

Не знаю, впрочем, сколько это будет есть времени.
 
Приветствую всех немногочисленных активных участников этой интереснейшей ветки :-)
В данный момент я пытаюсь разобраться в методе, который Владислав великодушно нам предоставил, а это означает поиск информации по всем 23м страницам. В процессе поиска я, само собой, изучаю те куски кода, которые участники обсуждения решили опубликовать. Я понимаю, что код, присутствующий на стр. 11 уже безнадёжно устарел, но тем не менее, на всякий случай, хочу обратить ваше внимание на тот факт, что функция для расчёта дисперсии ошибок на мой взгляд содержит ошибку, в результате которой расчёты не соответствуют формуле и возможно возникновение ошибки деления на ноль в рантайме.
double dispercia_oshibok(double data[], double centr)
{
   int k,size;
   double disper=0;
   size=ArraySize(data);
   
   for(k=size-1;k>=0;k--) disper=disper+MathPow((data[k]-centr),2);
   if(size>1) disper=disper/(size-2);
   return(disper);
}



Возможно строку if(size>1) disper=disper/(size-2); правильнее было бы записать как if(size>1) disper=disper/(size-1);

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

 
Чиатй дальше- там будет ответ на вопрос.
 
Ох... господа. Всего то сказать "так" или "не так". :-) Я прочитал всю ветку. Возможно пропустил, поэтому поищу ещё раз. В процессе поисков нашёл интересный сайт с различными алгоритмами: http://alglib.sources.ru/ Надеюсь не сочтут рекламой. :-)
 
В нашем случае size>=30 и формула будет disper=disper/(size)

ЗЫ Так лучше ? :)
 
В нашем случае size>=30 и формула будет disper=disper/(size)

ЗЫ Так лучше ? :)


Отнюдь. :-) Теперь мне надо срочно чинить "крышу", потому как у многострадального Булашева в "4.3. Оценка дисперсии и среднеквадратичного отклонения." в формуле вычисления дисперсии в делителе присутствует N-1.
Откуда дровишки, Rosh ??? :-)
 
дь. :-) Теперь мне надо срочно чинить "крышу", потому как у многострадального Булашева в "4.3. Оценка дисперсии и среднеквадратичного отклонения." в формуле вычисления дисперсии в делителе присутствует N-1.
Откуда дровишки, Rosh ??? :-)

На самом деле когда мы проводим оценку дисперсии ошибок аппроксимации, а не самой выборки данных, то в знаменателе конечно же должно стоять N-2. https://c.mql5.com/mql4/forum/2006/06/disp_oshibok.zip
У Булашева даже конкретный пример в книге приводится на этот счёт.
 

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


Ага. Спасибо. Теперь понял. Почитаю этот кусок внимательнее.
В таком случае условие лучше записать так "if(size>2)", дабы не искушать судьбу. Код должен быть устойчивым :-)
 
В таком случае условие лучше записать так "if(size>2)", дабы не искушать судьбу. Код должен быть устойчивым :-)

Это очевидно как белый день!:o)))
Тот сделанный на коленке скрипт был опубликован в качестве вопроса к Vladislavу, а не в качестве использования на практике.
В том коде, который у меня имеется в настоящее время расчёт дисперсии производится без вызова специальной функции для экономии расчётного времени, а также происходит проверка
if(size-2!=0) disper=disper/(size-2);
в общем я думаю, что подобные мелочи программировани совершенно не стоят обсуждения в этой ветке.
Причина обращения: