Ошибки, баги, вопросы - страница 1408

 
Artyom Trishkin:

Как только обновится терминал, подключенный к MQ, все остальные терминалы тоже захотят обновиться

Не захотят
 
Valerii Mazurenko:
Не захотят
У меня хотят. Что я не так делаю?
 

Некорректное событие на вкладке "Календарь" MetaQuotes-Demo

 

И в OBJ_EVENT оно также отображается

 

По поводу анонса нового билда 1200.

MQL5: Расширен формат структуры MqlTick. Теперь в ней передается время прихода тика в миллисекундах, а также флаги, позволяющие определить, какой именно параметр тика изменился.

Очень костыльно смотрятся такие решения, когда наряду с  datetime time  в структуру добавляются ещё и long time_msc.  Спрашивается, зачем тогда здесь нужен time?  Бессмысленное растрачивание ресурсов.

Это же относится и к uint flags, в то время как там хватило бы uchar,  ну или на крайняк - ushort (это уже с существенным запасом на будущее). А зачем там uint - уму непостижимо.   Печально, что разработчики совсем перестали задумываться о рациональном хранении данных.   Массив тиков - это колоссальный объём сам по себе.  А тут ещё и так халатно разбазаривается память...

Ну и вообще что касается времени. Может пора уже ввести в MQL нормальный временной тип, содержащий миллисекунды?  Иначе так и будет нагромождение этих костылей.   Тем более что сам по себе datetime в существующем виде - крайне нерациональная вещь:  расходует 8 байт, хотя содержит только секунды - и кому оно надо?  Для этой задачи хватает и 4-х байт (uint) на ближайшие 90 лет (а Дунканов Маклаудов среди нас нет).

 

До меня дошла информация, что в функциях OnTesterInit, OnTesterPass, OnTesterDeinit разрешен вызов торговых функций, которые в случае их вызова выполняются на торговом счете, а не в тестере. Хотя запуск кода производится из тестера.

Так ли это?

Если это так, запрещены ли такие вызовы в советниках из Маркета, или при тестировании продукт из маркета может неожиданно начать торговать на реальном счете?

 
Artyom Trishkin:

А вы попробуйте. Либо установите новый терминал от MQ и подключите его к демо-серверу MQ. Либо имеющийся терминал подключите. Но лучше (по мне) иметь отдельные терминалы на каждый сервер.

Как только обновится терминал, подключенный к MQ, все остальные терминалы тоже захотят обновиться - там уже вам решать дать им это сделать, или отказаться.

Итоги: 

1. Добавление демо-счета MQ в имеющийся терминал действительно привело к его обновлению на последний билд.

2. Не один из других установленных терминалов (без демо-счетов от MQ) не обновился. 

Всем спасибо за помощь! :-)

 
Yury Kirillov:

Итоги: 

1. Добавление демо-счета MQ в имеющийся терминал действительно привело к его обновлению на последний билд.

2. Не один из других установленных терминалов (без демо-счетов от MQ) не обновился. 

Всем спасибо за помощь! :-)

Я говорю о МТ4. Всегда все терминалы подхватывают имеющееся обновление терминала от MetaQuotes, подключенного к демо-серверу МК.
 
Yury Kirillov:

Итоги: 

1. Добавление демо-счета MQ в имеющийся терминал действительно привело к его обновлению на последний билд.

2. Не один из других установленных терминалов (без демо-счетов от MQ) не обновился. 

Всем спасибо за помощь! :-)

Если задумаете обновлять оставшийся "зоопарк терминалов" :) , то в таком случае не нужно заводить несколько демо-счетов от MQ - можно обходится одним демо-счётом от MQ.
 
Alexey Navoykov:

По поводу анонса нового билда 1200.

Очень костыльно смотрятся такие решения, когда наряду с  datetime time  в структуру добавляются ещё и long time_msc.  Спрашивается, зачем тогда здесь нужен time?  Бессмысленное растрачивание ресурсов.

Это же относится и к uint flags, в то время как там хватило бы uchar,  ну или на крайняк - ushort (это уже с существенным запасом на будущее). А зачем там uint - уму непостижимо.   Печально, что разработчики совсем перестали задумываться о рациональном хранении данных.   Массив тиков - это колоссальный объём сам по себе.  А тут ещё и так халатно разбазаривается память...

Ну и вообще что касается времени. Может пора уже ввести в MQL нормальный временной тип, содержащий миллисекунды?  Иначе так и будет нагромождение этих костылей.   Тем более что сам по себе datetime в существующем виде - крайне нерациональная вещь:  расходует 8 байт, но содержит только секунды - и кому это надо?  Для этой задачи хватает и 4-х байт (uint) на ближайшие 90 лет (а Дунканов Маклаудов среди нас нет).

Это решение сохраняет совместимость для старых программ, использующих время в секундах или функцию SymbolInfoTick().

Поверьте нашему опыту, игра "давайте уложимся в байт или два" приводит к чудовищным проблемам в будущем. Понимание этого приходит только тогда, когда пишешь софт на 10 лет вперед.

4 байта datetime в секундах кончаются в 2038 году (22 года еще), а не через 90 лет.

 

Что означает здесь ТМ=30М ?:

 

  • Торговый терминал: MetaTrader 4.0.
  • Торговый инструмент: любой (основные валютные пары FX, желательно наличие минимального спреда).
  • ТМ = 30M.
  • Торговое плечо: от 1:100 и выше.
  • Тип счета: микро-счет, мини-счет или стандартный счет.
  • Минимальный стартовый лот = 0,01.
  • Минимальный депозит: от 300 USD/Cent (при минимальном лоте 0.01).