Пересечение графиков2

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

'Визуальное пересечение графиков индикаторов и число пересечений по значениям в эксперте'
'Пересечение графиков'
 

Способы осеивания шума:
1) Сгладить линии индикатора к.л. способом, например средней, либо отсечением экстремальных значений
2) Задать минимальное значение пересечений, например если пересеклись, и разница между линиями больше определенного значения.

Вверх или вниз --> если (инд1-инд2)>0 значит вверх, иначе вниз. .

Еще одна идея насчет сглаживания шумов - написать алгоритм в стиле ренко или Х0

 
4ebur:

Способы осеивания шума:
1) Сгладить линии индикатора к.л. способом, например средней, либо отсечением экстремальных значений
2) Задать минимальное значение пересечений, например если пересеклись, и разница между линиями больше определенного значения.

Вверх или вниз --> если (инд1-инд2)>0 значит вверх, иначе вниз. .

Еще одна идея насчет сглаживания шумов - написать алгоритм в стиле ренко или Х0

Раскажите поподробнее что за алгоритм в стиле Ренко или Х0?
 
Спасибо, обязательно почитаю...
Стив Нисон "За гранью японских свечей" Даже в бумажном виде нашёл у друзей....
 

Вверх или вниз --> если (инд1-инд2)>0 значит вверх, иначе вниз. .

Подскажите пожалуйста как правильно описать пересечение вверх или вниз на примере картинки,

т.е. в советнике берутся значения из пользовательского индикатора:
кривая С и линии А, В (линии не изменяются)

нужно описать логическим выражением:
пересечение отрезков А и Б кривой С в зеленых точках, т.е. на линии А - сверху вниз, а на линии В снизу вверх... (красные точки игнарируем)

 
Пересечение 2-х кривых на отрезке [x; x+dx) можно записать так:
f(x) <= g(x) AND f(x+dx) > g(x+dx)
f(x) >= g(x) AND f(x+dx) < g(x+dx)

f, g - кривые.
dx - некоторая положительная величина.
 

if(iCustom(i)>120 && iCustom(i+1)<120){
//пересечение верхнего уровня снизу вверх
}

 

А поточнее пожалуйста можно? не как не дойдет до меня...
Что это за (i) ? если можно, также куском кода на примере...

 

iCustom(i) - значение пользовательского индикатора на баре номер i, iCustom(i+1) - на баре номер i+1, т.е. на предыдущем баре. Куском кода на примере - я не знаю какой пользовательский индикатор вы используете и где ищете пересечение, в другом индикаторе или в эксперте.

 
Пересечение ищу в эксперте, ниже строчка подключения индикатора:

double snsup =iCustom(NULL, 0, "SmCCI",8,14,120,-120,0.7,0,"Alert2. wav", 0,1);

я так понимаю, последняя 1-ца в строчке это и есть i, вопрос...
помогите пожалуйста описать это в условии сигнала покупки например (график индикатора на картинке выше), когда кривая С пересекает линию В (-120) снизу вверх!

например:
// проверяем на возможность встать в длинную позицию (BUY)
if(.....условие пересечения линии -120 снизу вверх.........)
        {
         ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-stoploss*Point,Ask+TakeProfit*Point,"sxiCCI",16384,0,Green);
         if(ticket>0)
           {
            if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
               Print("BUY order opened : ",OrderOpenPrice());
           }
         else Print("Error opening BUY order : ",GetLastError()); 
         return(0); 
        }
 
double snsup1 =iCustom(NULL, 0, "SmCCI",8,14,120,-120,0.7,0,"Alert2.wav",0,1); double snsup2 =iCustom(NULL, 0, "SmCCI", 8,14,120,-120, 0.7,0,"Alert2.wav",0,2); if(snsup1>-120 && snsup2-120) Да. Последняя единица и есть i. Читайте методичку:-)
Причина обращения: