Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 820

 
79014393347az:
здравствуйте! помогите пожалуйста как вписать в алерт по RSI, push уведомления пробовал сам не получается выдает ошибку
Хочется конкретнее знать, что вы делали, и какую же ошибку получали. 
Кодом.
 

По какой причине не воспроизводится аудио если функция PlaySound() возвращает true?


v1 = (Up[i] != EMPTY_VALUE ? Up[i] : Down[i]);
v2 = (Down[i+1] != EMPTY_VALUE ? Down[i+1] : Up[i+1]);
         
if((v2 >= level || v2 <= level * (-1)) && a2 < Time[i])
  {
   a2 = Time[i];
   if(arrows == e1 && v2 >= level) {ArrowCreate(false,Time[i+1],High[i+1]);} else if(arrows == e1) {ArrowCreate(true,Time[i+1],Low[i+1]);};
   if(prev_calculated != 0)
     {
      if(sounds == e1 && v2 >= level) {al = PlaySound("SELL NOW"); Alert(al);} else if(sounds == e1) {al = PlaySound("BUY NOW"); Alert(al);};
      if(alerts == e1 && v2 >= level) {Alert(_Symbol+TF(Period())+" SELL NOW");} else if(alerts == e1) {Alert(_Symbol+TF(Period())+" BUY NOW");};
      if(push == e1 && v2 >= level) {SendNotification(_Symbol+TF(Period())+" SELL NOW");} else if(push == e1) {SendNotification(_Symbol+TF(Period())+" BUY NOW");};
     };
  };
 
Alexandr Sokolov:

По какой причине не воспроизводится аудио если функция PlaySound() возвращает true?


  1. Имена звуковых файлов верно заданы?
  2. После PlaySound() у вас сразу же Alert() - обе функции проигрывают звук. Уберите Alert()
 
Artyom Trishkin:
  1. Имена звуковых файлов верно заданы?
  2. После PlaySound() у вас сразу же Alert() - обе функции проигрывают звук. Уберите Alert()

Имена указаны верно. Причина оказалась в алертах. БОЛЬШОЕ СПАСИБО! Уже несколько дней не мог понять в чём причина

 
Можно ли в настройках программы компилятора сделать настройку, чтобы изменить цвет пользовательских функций с чёрного по умолчанию на другой, речь идёт о подсвечивании пользовательских функций?
 
Как работает функция ArrayMaximum(), которая прилагается по умолчанию в компиляторе? Значит суть вопроса в следующем: данная функция находит максимальное значение в массиве, я думаю что если в массиве записаны значения в хаотическом порядке, то для того чтобы найти максимальное или минимальное значение нужно предварительно эти значения отсортировать а лишь потом уже можно выбрать максимальное значение, которое будет находится в конце или в начале списка отсортированного массива , как данная функция находит максимальное значения если они записаны в хаотическом порядке?
 
Seric29:
Как работает функция ArrayMaximum(), которая прилагается по умолчанию в компиляторе? Значит суть вопроса в следующем: данная функция находит максимальное значение в массиве, я думаю что если в массиве записаны значения в хаотическом порядке, то для того чтобы найти максимальное или минимальное значение нужно предварительно эти значения отсортировать а лишь потом уже можно выбрать максимальное значение, которое будет находится в конце или в начале списка отсортированного массива , как данная функция находит максимальное значения если они записаны в хаотическом порядке?

Ничего сортировать не надо. Функция ArrayMaximum() находит максимальное значение в не сортированном массиве и возвращает индекс найденного значения.

 
Alexey Viktorov:

Ничего сортировать не надо. Функция ArrayMaximum() находит максимальное значение в не сортированном массиве и возвращает индекс найденного значения.

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

 
Seric29:

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

А зачем пытаться понять как это устроено внутри? Ну, если есть желание свою функцию написать, то наверное будет удобней сортировать и брать значение одного из крайних индексов. Но работать вряд-ли будет быстрей встроенной функции. Плюс ко всему встроенная функция позволяет искать значение в обозначенных пределах индексов. Значит простая сортировка не прокатит. Значит надо будет копировать часть массива в промежуточный массив и его уже сортировать и в нём брать нужное значение, а копирование массива не очень "дешёвая" функция.

 
Добрый день . Подскажите, пожалуйста. Как будет код для условия: Если баланс счета увеличился или уменьшился, тогда выполнить функцию
Причина обращения: