Как программно найти пики MACD?

 
В этом и заключается вопрос....
 
Самый простой вариант по проценту отката. Как превысит, считайте что экстремум. Еще можно с зигзагом (индикатор) совместить.
 
CMEPTHiK писал(а) >>
В этом и заключается вопрос....

Макс = Бар 2 < Бар 1 бар 1 > бар 0

Билл Виллиамс даже сигналы на эту тему придумал.

Разве это не очевидно, в чем подвох то?

 
vasya_vasya >>:

Макс = Бар 2 < Бар 1 бар 1 > бар 0

Билл Виллиамс даже сигналы на эту тему придумал.

Разве это не очевидно, в чем подвох то?

Подвох, вероятно, в том, что при определенном соотношении бар2 / бар1 / бар0,

например, |бар1-бар2| <= 2 пункта или |бар1-бар0| <= 2 пункта,

при условии, что за бар2 / бар1 / бар0 не следует более высоких точек,

бар1 не может считаться максимумом.

 
vasya_vasya >>:

Макс = Бар 2 < Бар 1 бар 1 > бар 0

Билл Виллиамс даже сигналы на эту тему придумал.

Разве это не очевидно, в чем подвох то?

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

 
IlyaA >>:
Самый простой вариант по проценту отката. Как превысит, считайте что экстремум. Еще можно с зигзагом (индикатор) совместить.

опишите пожалуйста подробнее алгоритм о процентном отношении отката...

 
vasya_vasya писал(а) >>

Макс = Бар 2 < Бар 1 бар 1 > бар 0

Билл Виллиамс даже сигналы на эту тему придумал.

Разве это не очевидно, в чем подвох то?

CMEPTHiK
писал(а) >>

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

Часто бывает так, что что-то кажется чушью до тех пор, пока не пытаешься это понять.

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

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

 

Еще проще пропустить фракталы по МАСД..

 
CMEPTHiK >>:

опишите пожалуйста подробнее алгоритм о процентном отношении отката...


Вариант Forsage-а, мне тоже понравился. А откатный строится так. Движемся в направлении времени, фиксируем макс. и мин. Допустим находимся на верху и у нас есть максимум. Если цена прошла от этого максимума вниз скажем 20%, тогда он считается вершиной. И наоборот.
 
IlyaA писал(а) >>

Вариант Forsage-а, мне тоже понравился. А откатный строится так. Движемся в направлении времени, фиксируем макс. и мин. Допустим находимся на верху и у нас есть максимум. Если цена прошла от этого максимума вниз скажем 20%, тогда он считается вершиной. И наоборот.

Все намного проще. По фракталам определяються конкретные точки вершин или впадин и затем на основании дополнительного анализа определяем вершины верхней половины МАСДа или нижней, также еще можно использовать алгоритм поиска максимумов и минимумов с конкретным допуском расхождения.

iNoise допуск на игнорирование небольшого колебания 
ayTemp5 - исходные данные цены
ayTemp3 - исходные данные МАСД
int IxMax=iCount-1;
int IxMin=iCount-1;
IxLeft=0;
for (Rx=iCount-1;Rx>=0;Rx--){
if (ayTemp3[Rx]>ayTemp3[IxMax]) IxMax=Rx;
if (ayTemp3[Rx]<ayTemp3[IxMin]) IxMin=Rx;
if ((IxMax>IxMin)&&(IxMin>Rx)) {
if (((ayTemp3[Rx]-ayTemp3[IxMin])/Point)>iNoise){
ayTemp4[IxMax]=ayTemp5[IxMax]; // "+"  признак максимального значения функции
// сохранение самой левой позиии экстремума  в правом положении указателя
if (MathAbs(IxRight)<IxMax) IxRight=ayTemp5[IxMax];
IxMax=Rx;
}
}
if ((IxMax<IxMin)&&(IxMax>Rx)) {
if (((ayTemp3[IxMax]-ayTemp3[Rx])/Point)>iNoise){
ayTemp4[IxMin]=-ayTemp5[IxMin]; // "-"  признак минимального значения функции
// сохранение самой левой позиии экстремума  в правом положении указателя
if (MathAbs(IxRight)<IxMin) IxRight=-ayTemp5[IxMin];
IxMin=Rx;
}
}
}
ayTemp4[IxMax]=ayTemp5[IxMax];
ayTemp4[IxMin]=-ayTemp5[IxMin];
 

Народ, вы что хотите дивергенции автоматизировать?