Существует ли какая то стандартная команда позволяющая эксперту видеть пересечение средних. Например средняя периода 5 пересекает среднюю периода 20. Может ли эксперт увидеть как человек момент пересечения, есть ли какая то стандартная функция или команда для таких штучек?
Рисунок ниже показывает пересечение красной и зеленой средних, как пример того, что должен увидеть эксперт и отработать этот сигнал.
Нужно сравнить знаки разностей (М1 - М2) на текущем и предыдущем барах. Если они разные, значит есть пересечение. Особый случай когда одна из разностей = 0.
Можно сделать например так
if ((M1[0] - M2[0]) != 0)
{
double R = 0;
for (int i = 1; i < Bars && R == 0; i++) R = (M1[i] - M2[i]);
if ((M1[0] - M2[0]) * R < 0)
{
// Знаки разные, есть пересечение ..........
}
}
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Просто нам чукчам не понятно, почему Вы говорите, что мы пытаемся вычитать массивы, мы делаем как показано в МКЛ4 словаре:
double macurrent=iMAOnArray(ExtBuffer,0,5,0,MODE_LWMA,0); double macurrentslow=iMAOnArray(ExtBuffer,0,10,0,MODE_LWMA,0); double maprev=iMAOnArray(ExtBuffer,0,5,0,MODE_LWMA,1); double maprevslow=iMAOnArray(ExtBuffer,0,10,0,MODE_LWMA,1); //---- if(maprev<maprevslow && macurrent>=macurrentslow) Alert("crossing up");Please, advise!
Вот код с ошибкой
А вот рабочий
ArrayCopySeries(ma_C, MODE_CLOSE, "EURUSD", PERIOD_H1); ma_6C=ma_C[1]; for(i=2; i<(3*MA_period); i++) { ma_6O+=ma_O[i]; ma_6C+=ma_C[i]; } ma_6C/=(3*MA_period);Существует ли какая то стандартная команда позволяющая эксперту
видеть пересечение средних. Например средняя периода 5 пересекает среднюю
периода 20. Может ли эксперт увидеть как человек момент пересечения,
есть ли какая то стандартная функция или команда для таких штучек?
Рисунок ниже показывает пересечение красной и зеленой средних, как
пример того, что должен увидеть эксперт и отработать этот сигнал.
М2 - вторая скользящая.
Нужно сравнить знаки разностей (М1 - М2)
на текущем и предыдущем барах.
Если они разные, значит есть пересечение.
Особый случай когда одна из разностей = 0.
Можно сделать например так
if ((M1[0] - M2[0]) != 0) { double R = 0; for (int i = 1; i < Bars && R == 0; i++) R = (M1[i] - M2[i]); if ((M1[0] - M2[0]) * R < 0) { // Знаки разные, есть пересечение .......... } }(сам не проверял)
видеть пересечение средних.
стандартной - нет
есть ли какая то стандартная функция или команда для таких штучек?
Запросто
см. словарь iMAOnArray, там даже пример приведен с пересечением
на всякий случай
double macurrent=iMAOnArray(ExtBuffer,0,5,0,MODE_LWMA,0); double macurrentslow=iMAOnArray(ExtBuffer,0,10,0,MODE_LWMA,0); double maprev=iMAOnArray(ExtBuffer,0,5,0,MODE_LWMA,1); double maprevslow=iMAOnArray(ExtBuffer,0,10,0,MODE_LWMA,1); //---- if(maprev<maprevslow && macurrent>=macurrentslow) Alert("crossing up");2Сисадмин, опять заныкалась кнопка "вход", и еще насколько я понимаю [pre] заменен [code]?