MQL4. Уровень и МА

 

Подскажите пожалуйста. Какое условие прописать, чтобы было пересечение двух МА и они пересекали уровень, открывалась сделка на куплю?

 

 
Anna_89:

Подскажите пожалуйста. Какое условие прописать, чтобы было пересечение двух МА и они пересекали уровень, открывалась сделка на куплю?

 

КроссМА
 
Ivan Vagin:
КроссМА
То есть. И как его использовать?
 
Anna_89:

Подскажите пожалуйста. Какое условие прописать, чтобы было пересечение двух МА и они пересекали уровень, открывалась сделка на куплю?

 

Надо сравнивать позапрошлый бар с данными МА и прошлый.

MA_fast[2]>=MA_slow[2] && MA_fast[1]<MA_slow[1] 

 
Vasyl Nosal:

Надо сравнивать позапрошлый бар с данными МА и прошлый.

MA_fast[2]>=MA_slow[2] && MA_fast[1]<MA_slow[1] 

А как же уровни?

Да и пересечение проще по другому находить. Зачем же так топорно 

 
Victor Nikolaev:

А как же уровни?

Да и пересечение проще по другому находить. Зачем же так топорно 

Покажите пожалуйста вариант, очень интересно. То что топорно будет работать - это сто процентов, ибо опробовал уже такое в торговле.
 
new-rena:
Покажите пожалуйста вариант, очень интересно. То что топорно будет работать - это сто процентов, ибо опробовал уже такое в торговле.

Пересечения бывают довольно редко.

MA1=iMA(....);
MA2=iMA(....);
MA3=iMA(....);
if ((MA1-MA2)*(MA2-MA3)<0) // Пересечение
{
// Ваш код
}

 Скорость работы выше. Хотя не всегда можно использовать.

Умножение быстрее выполняется чем сложное логическое выражение.

Для работы в режиме оптимизации  актуально

 
Victor Nikolaev:

Пересечения бывают довольно редко.

 Скорость работы выше. Хотя не всегда можно использовать.

Умножение быстрее выполняется чем сложное логическое выражение.

Для работы в режиме оптимизации  актуально

Понятненько. Спасибо!
 
Victor Nikolaev:

Пересечения бывают довольно редко.

 Скорость работы выше. Хотя не всегда можно использовать.

Умножение быстрее выполняется чем сложное логическое выражение.

Для работы в режиме оптимизации  актуально

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

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

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

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

 
George Merts:

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

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

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

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

А мне показалось что там не только умножение показано, но и логика чуток другая по сравнению с первым постом ветки...
 
Anna_89:

Подскажите пожалуйста. Какое условие прописать, чтобы было пересечение двух МА и они пересекали уровень, открывалась сделка на куплю?

 

Если прям точно так, как написано, вряд ли будет хорошо, редко такие условия выполнятся. Одновременное пересечение двух ма и сразу пересечение с уровнем.  

Отделите пересечение двух линий от положения одной линии относительно другой и уточните условия. После этого, скорее всего, и вопроса не возникнет.   

Причина обращения: