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

 
Mihail Matkovskij #:

По вашему CopyRates вернет 0,  EMPTY_VALUE или DBL_MAX в массиве high? Вы серьезно? :)

Может быть покажете пример, где это происходит?

я на такие грабли наступал. Начнёте активно собирать,считать статистику и вы наступите. 

ВСЕГДА проверяйте ЧУЖИЕ/ВНЕШНИЕ данные. 

Про то что даже Bid,Ask бывают некорректными даже в этой теме говорили. Не буду выискивать ссылку, это долго, но было и излечили

 
Здравствуйте! Покупатель обнаружил ошибку в работе программы. Я подправил код и выложил его в новой версии программы. Будет ли новая версия доступна покупателю без дополнительной оплаты? Как передать покупателю исправленную версию? 
 
Oleksandr Nozemtsev #:
Здравствуйте! Покупатель обнаружил ошибку в работе программы. Я подправил код и выложил его в новой версии программы. Будет ли новая версия доступна покупателю без дополнительной оплаты? Как передать покупателю исправленную версию? 

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

 
Konstantin Nikitin #:

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

Выложил в том же продукте во вкладке "Версии" Была версия 1.0, стала 2.0. Т.е. должно быть бесплатно, как я понял. Ок! А как происходит обновление? Покупателю нужно  скачивать и устанавливать новую версию? 

 
Maxim Kuznetsov #:

я на такие грабли наступал. Начнёте активно собирать,считать статистику и вы наступите. 

ВСЕГДА проверяйте ЧУЖИЕ/ВНЕШНИЕ данные. 

Про то что даже Bid,Ask бывают некорректными даже в этой теме говорили. Не буду выискивать ссылку, это долго, но было и излечили

Хорошо. Вот функция для проверки:

bool arrayCheck(const double &_values[]) {
  for (int i = 0; i < (int)_values.Size(); i++)
    if (_values[i] == 0 || _values[i] == EMPTY_VALUE || _values[i] == DBL_MAX) {
      Alert("Values incorrect! File: ", __FILE__, " Line: ", __LINE__, " ", __FUNCTION__);
      return false;
    }
  return true;
}

Если вам удастся отловить хотя бы один такой случай, то пишите в ветку https://www.mql5.com/ru/forum/1111

А то один пользователь тоже писал, что у него выдаёт неправильные цены в тестере. Но примера, где это можно было бы увидеть он так и не привёл (https://www.mql5.com/ru/forum/1111/page3131#comment_26786448).

Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2010.06.02
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 
Mihail Matkovskij #:

Сделал так

if(CopyLow(mSymbol,0,2,6,low)>0 && low[ArrayMinimum(low)]>CopySymb[1].low) {

Всем спасибо!

 
Vitaly Muzichenko #:

Сделал так

Всем спасибо!

Небольшое уточнение. ArrayMaximum может вернуть -1 в случае неудачи. Осталось понять какие это могут быть случи. Пустой массив low сразу отметаем. А чтобы не гадать какие случаи ещё могут быть просто делаем так:

int iMinLow;

if(CopyLow(mSymbol,0,2,6,low)>0 && (iMinLow = ArrayMinimum(low)) >= 0 && low[iMinLow]>CopySymb[1].low) {
 
Mihail Matkovskij #:

Небольшое уточнение. ArrayMaximum может вернуть -1 в случае неудачи. Осталось понять какие это могут быть случи. Пустой массив low сразу отметаем. А чтобы не гадать какие случаи ещё могут быть просто делаем так:

Ну и для еще большей надежности:

int iMinLow;

if(CopyLow(mSymbol,0,2,6,low)>0 && (iMinLow = ArrayMinimum(low)) >= 0 && iMinLow < (int)low.Size() && low[iMinLow]>CopySymb[1].low) {
 
Vitaly Muzichenko #:

Сделал так

Всем спасибо!

А почему не использовать iLowest?

 
Tretyakov Rostyslav #:

А почему не использовать iLowest?

Смотря какая задача стоит...

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