Проблемы новичков - страница 2

 
profit:
как справиться с тестированим советника, не получаеться хоть убей.в журнале пишит order send error 131 . vЧто это и как с ним справиться? Буду очень благодарен.


https://docs.mql4.com/ru/constants/errors

https://docs.mql4.com/ru/runtime/errors

Ваша ошибка:

ERR_INVALID_TRADE_VOLUME 131 Неправильный объем

Задаете лот меньше минимально допустимого данным ДЦ (например 0.01 при минимальном 0.1) или же наоборот больше максимального (напр 50.0 при максимальном 5.0)
 
goldtrader:
profit:
как справиться с тестированим советника, не получаеться хоть убей.в журнале пишит order send error 131 . vЧто это и как с ним справиться? Буду очень благодарен.


https://docs.mql4.com/ru/constants/errors

https://docs.mql4.com/ru/runtime/errors

Ваша ошибка:

ERR_INVALID_TRADE_VOLUME 131 Неправильный объем

Задаете лот меньше минимально допустимого данным ДЦ (например 0.01 при минимальном 0.1) или же наоборот больше максимального (напр 50.0 при максимальном 5.0)

У меня такая же проблема была: запускал пример советника из стандартной поставки (не помню "MACD Sample.mq4" или "Moving Average.mq4"). Там объем (Lots) по умолчанию равен 0.1, а у моего ДЦ минимальный объем был 1. В результате я перешел в ДЦ, где есть минимальный объем 0.1 лота. Если у вас столько денег, что такие мелкие объемы вас не интересуют, и вы запускаете пример из стандартной поставки, то просто поменяйте объем на 1 (в настройках при запуске). Только на демо-счете! Если нет понимания работы советников, то на реальном счете лучше не запускать. Примеры из стандартной поставки - далеко не лучший вариант для запуска на реальном счете.
 
Подскажите пожалуйста, что неправильно сделал, весь вечер голову ломаю: Итак, часть кода программы: ........ Ma4Cur=iMA(NULL,0,4,0,MODE_SMA,PRICE_CLOSE, 0); Ma18Prev=iMA(NULL,0,18,0,MODE_SMA,PRICE_CLOSE,0); ...... ..... if(Ma4Cur==Ma18Prev) {number=1; Print("старт");} Компилирует без проблем. Убираю условие-нет проблем, вывожу вместо этой всей строки Print("macur",Ma4Cur," m1prev",Ma18Prev) - опять все работает и значения пишет. Почему данное условие не воспринимает??? PS. Это пресечение графиков МА4 и МА18.
 

перемменные Ma4Cur и Ma18Prev нужно нормировать

double NormalizeDouble( double value, int digits)
Округление числа с плавающей запятой до указанной точности.

а лучше сделать так

      double Ma4Cur=iMA(NULL,0,4,0,MODE_SMA,PRICE_CLOSE, 0);
      double Ma4Prev=iMA(NULL,0,4,0,MODE_SMA,PRICE_CLOSE, 1);
      double Ma18Cur=iMA(NULL,0,18,0,MODE_SMA,PRICE_CLOSE, 0);
      double Ma18Prev=iMA(NULL,0,18,0,MODE_SMA,PRICE_CLOSE, 1);      
      NormalizeDouble(Ma4Cur,MarketInfo(NULL,MODE_DIGITS));
      NormalizeDouble(Ma4Prev,MarketInfo(NULL,MODE_DIGITS));
      NormalizeDouble(Ma18Cur,MarketInfo(NULL,MODE_DIGITS));
      NormalizeDouble(Ma18Prev,MarketInfo(NULL,MODE_DIGITS));      
      if (Ma4Prev>Ma18Prev && Ma4Cur<Ma18Cur)
         {
            Print("Пересечение средней 4 среднюю 18 сверху вниз");
         }
      if (Ma4Prev<Ma18Prev && Ma4Cur>Ma18Cur)
         {
            Print("Пересечение средней 4 среднюю 18 снизу вверх");
         }
 
olyakish:

перемменные Ma4Cur и Ma18Prev нужно нормировать

Зачем?
Если не собираешься их отправлять серверу как цены открытия/закрытия, а только сравнивать между собой на больше/меньше, то ничего с ними делать не надо.
 
Ну, вот опять. Надо для интереса засечь время - может, будет наблюдаться какая-то цикличность в поднятии этого вопроса ;)
Сравнение вещественных чисел - Поиск по MQL4.community
 
komposter:
Ну, вот опять. Надо для интереса засечь время - может, будет наблюдатьсякакая-то цикличность в поднятии этого вопроса ;)
Сравнение вещественных чисел - Поиск по MQL4.community
Это не опять, это совсем другое, с точностью до наоборот... 
Народу столько твердили про нормализацию, что теперь они нормализуют вообще все. А смысл?

 
timbo:
Это не опять, это совсем другое, с точностью до наоборот...
Народу столько твердили про нормализацию, что теперь они нормализуют вообще все. А смысл?

В одном из обсуждений поднимался вопрос, что значения индикаторов нормализовать не надо.
А "опять" - это я про "== 0".
 

Ну как минимум глупо сравнивать (==) две iMA в тестере которые расчитаны по CLOSE

все же лучше использовать < и >

 
Коллеги помогите!!! Каким образом в mql проверить текущий цвет индикатора? к примеру: if (( iAC (Symbol(), period[x], 0)) =="Green"), как правильно поставить условие? Буду очень Благодарен за помощь, Антон!
Причина обращения: