Пересечения скользящих

 
Обычно пересечение описывают как одна MA была ниже другой а потом становится выше тогда это считается пересечением , вопрос все так описывают пересечение?
 

Да. А также обратный вариант когда МА сначала была выше, а потом стала ниже другой.

 
)
 

а еще произведение разностей отрицательное например :)

 
Блок присваивания:

o0=iMA(NULL,0,5,0,MODE_SMA,PRICE_HIGH,1);
o1=iMA(NULL,0,5,0,MODE_SMA,PRICE_HIGH,2);
M0=iMA(NULL,0,15,0,MODE_SMA,PRICE_HIGH,1);
M1=iMA(NULL,0,15,0,MODE_SMA,PRICE_HIGH,2);

Логика:

if(M1>o1 && M0<o0)//buy
{
Трам па пам Ваш код!
}
 
// ----------------------------
 
if(M1<o1 && M0>o0)//sell
{
Трам па пам Ваш код!
}


Если тяжеловато воспринимается, обращайтесь, у нас вы сможете не только заказать, но и обучиться MQL. Наши программисты проводят обучающие семинары и консультации подстраиваясь под клиента.

 
MH_pro:
Блок присваивания:

o0=iMA(NULL,0,5,0,MODE_SMA,PRICE_HIGH,1);
o1=iMA(NULL,0,5,0,MODE_SMA,PRICE_HIGH,2);
M0=iMA(NULL,0,15,0,MODE_SMA,PRICE_HIGH,1);
M1=iMA(NULL,0,15,0,MODE_SMA,PRICE_HIGH,2);

Логика:

if(M1>o1 && M0<o0)//buy
{
Трам па пам Ваш код!
}
 
// ----------------------------
 
if(M1<o1 && M0>o0)//sell
{
Трам па пам Ваш код!
}


Если тяжеловато воспринимается, обращайтесь, у нас вы сможете не только заказать, но и обучиться MQL. Наши программисты проводят обучающие семинары и консультации подстраиваясь под клиента.






А если на предыдущем баре значение двух скользящих равно, пересечение происходит, но не фиксируется таким кодом, а если при этом требуется закрыть ордер..... Если это МА, то это может быть не часто, а если осциллятор с сигнальной линией....

Надо на предыдущем проверять на равенство, но при этом может произойти отскок и он тоже зафиксируется как пересечение. Ну и на этот случай имется решение, если потребность в нем актуальна.

А еще, при сравнении на равенство требуется нормализация до одинакового количества знаков (8) . Со скользящими может не обязательно, а при сравнении цены и скользящей может быть казус, проходил такое. Есть на графике пересечение, а эксперт его не определяет, в комментарий выводится как равенство цены и МА. После нормализации цены и МА до восьми знаков все стало работать правильно.
 
Integer:
MH_pro:
Блок присваивания:

o0=iMA(NULL,0,5,0,MODE_SMA,PRICE_HIGH,1);
o1=iMA(NULL,0,5,0,MODE_SMA,PRICE_HIGH,2);
M0=iMA(NULL,0,15,0,MODE_SMA,PRICE_HIGH,1);
M1=iMA(NULL,0,15,0,MODE_SMA,PRICE_HIGH,2);

Логика:

if(M1>o1 && M0<o0)//buy
{
Трам па пам Ваш код!
}
 
// ----------------------------
 
if(M1<o1 && M0>o0)//sell
{
Трам па пам Ваш код!
}


Если тяжеловато воспринимается, обращайтесь, у нас вы сможете не только заказать, но и обучиться MQL. Наши программисты проводят обучающие семинары и консультации подстраиваясь под клиента.






А если на предыдущем баре значение двух скользящих равно, пересечение происходит, но не фиксируется таким кодом, а если при этом требуется закрыть ордер..... Если это МА, то это может быть не часто, а если осциллятор с сигнальной линией....

Надо на предыдущем проверять на равенство, но при этом может произойти отскок и он тоже зафиксируется как пересечение. Ну и на этот случай имется решение, если потребность в нем актуальна.

А еще, при сравнении на равенство требуется нормализация до одинакового количества знаков (8) . Со скользящими может не обязательно, а при сравнении цены и скользящей может быть казус, проходил такое. Есть на графике пересечение, а эксперт его не определяет, в комментарий выводится как равенство цены и МА. После нормализации цены и МА до восьми знаков все стало работать правильно.




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

 
Кстати , тема достаточно актуальна , кто -нибудь опытный тиснул бы обобщающую статью о ошибках сравнения и способах решения нестандартных ситуаций - был бы ему баальшой респект.
 
Через поиск (сравнение значений) сразу нашел тему И снова о сравнении двух double
Причина обращения: