Обновленный MQL4 и старый код (обмен опытом решения проблем) - страница 2

 

Код из данной статьи так же перестал работать. https://forum.mql4.com/ru/3481

А именно не происходит запись и чтение файлов с диска С.

 
У меня стоит 509 бильд. Сегодня увидел, что поменялся редактор. Нужно было поменять лот в коде эксперта, при компиляции выдало ошибки связанные с использованием stdlib.mqh и stderror. Забросил копии этих файлов в /MQL4/Include и эксперт удалось скопилировать .
 

Ночью обновился МЭ и на Реале на 509-м и с открытыми позициями. Point оказалось равно 0.0001 и Digits, соответственно, 4! Пришлось срочно сделать переменные, как указано в Документации, но СтопЛосс почему-то выставляется с нулём на 5-м знаке. И единственный индикатор DailyPivotPoints, которым пользуюсь для "успокоения совести", слетел. Пришлось компиллировать заново.

На Демо, обновлённом ранее Point и Digits сразу были нормальными и DailyPivotPoints не слетал.

 
Какие ужасы вы тут рассказываете, это надо на ночь рассказывать, как раньше в пионерском лагере )))
 
evillive:
Какие ужасы вы тут рассказываете, это надо на ночь рассказывать, как раньше в пионерском лагере )))

Вот по-нолику, по-нолику и прийдём к МТ0 и только к целому лоту. Пока обошёлся, как в Документации прописано, а Point и Digits, как ни раскрашивай, дают как для 4-хзнака.

  double point = MarketInfo(Symbol(),MODE_POINT);
  int   digits = MarketInfo(Symbol(),MODE_DIGITS);
А на Демо всё нормально, относительно, конечно.
 
borilunad:

Вот по-нолику, по-нолику и прийдём к МТ0 и только к целому лоту. Пока обошёлся, как в Документации прописано, а Point и Digits, как ни раскрашивай, дают как для 4-хзнака.

А на Демо всё нормально, относительно, конечно.

А Вы справку обновили? Я вот залез и нашел следущее - раньше этого не было.

-----------------------

int _Digits

В переменной _Digits хранится количество десятичных знаков после запятой, определяющее точность измерения цены символа текущего графика.

Можно также использовать функцию Digits().

----------------------

Проверил, вот такая строчка Print(_Digits, " ", Digits()); на AUDJPY и EURUSD выдает следующее

2014.02.07 18:52:54.313 TestFileOpen EURUSD.e,M30: 5 5
2014.02.07 18:52:33.317 TestFileOpen AUDJPY.e,M15: 3 3

 
VDev:

А Вы справку обновили? Я вот залез и нашел следущее - раньше этого не было.

-----------------------

int _Digits

В переменной _Digits хранится количество десятичных знаков после запятой, определяющее точность измерения цены символа текущего графика.

Можно также использовать функцию Digits().

Это, наверно, при переходе на обновлённый язык, а я не перехожу, всё компилируется! Но очень странно, что на Демо с тем же экспертом на другом терминале обновилось в понедельник Point и Digits нормальные, пятизначные, а тут на Реале должен доставать пятизнак через MarketInfo() :(((

Вот, в комменте на графике проверка:

  "\n\n                                  ",DoubleToStr(Point,Digits), //тут выводится 0.0001
  "\n                                  ",DoubleToStr(point,5),   //а тут с переменной 0.00001
Конечно, "ужаснулся", когда SL выставился в 10 раз бОльшим! Пока держу эту проверку с надеждой, что заработает нормально, и уберу.
 

Будут и другие проблемы, это начало))) Теперь, похоже, компилятор требует строгого соответствия нормальным языкам типа С/С++, ну и MQL5, ессно. То есть такой бред уже не компилируется

switch(n)
{
case 1: double d=1; break;
case 2: d=2; break;
}
 
VDev:

Будут и другие проблемы, это начало))) Теперь, похоже, компилятор требует строгого соответствия нормальным языкам типа С/С++, ну и MQL5, ессно. То есть такой бред уже не компилируется

Этим я не балуюсь! Главное if...else работает и порядок! Правда switch есть в заимствованных функциях вне старта, и всё работает. Может, в понедельник заведётся нормально после отдыха?! ;))
 
borilunad:
Этим я не балуюсь! Главное if...else работает и порядок! Правда switch есть в заимствованных функциях вне старта, и всё работает. Может, в понедельник заведётся нормально после отдыха?! ;))
Я всего часик сегодня попробовал эту версию, не в курсе. Меня сегодня знакомый расмешил ))) Он обожает ставить точки в именах переменных. Давно ему говорил - замени на подчеркивания. Сегодня у него ничего не скомпилилось. Так он мне говорит, а почему, ведь теперь переменные просто должны стать классами!
Причина обращения: