Обновление платформы MetaTrader 4 билд 625: Журналы в MetaTrader Market и новый MetaViewer - страница 54

 
Да предупреждали. Базы кодов объединили, давно об этом говорили. С никами в ней - да, чехарда; похоже, ники при переносе по айпишникам назначали. :)
 
Sergey_Mechanic:

В вашем случае - мусор в виде дополнительных вызовов функций-обёрток, в моём - в виде левых переменных... То же самое, вид сбоку. А с руганью по поводу неиспользуемых переменных ничего не делать, её не будет.

Вызовы - не дополнительные, а основные. А весь "мусор" локализован в единственном экземпляре внутри обёртки. По поводу неиспользуемых переменных - действительно, ругани нет. Ругань есть только, если переменная совсем "нетронута":

void f() {
  int i;
}

Ругань есть:

variable 'i' not used

Стоит инициализировать:

void f() {
  int i = 0;
}

Как ругани нет, хотя переменная стала ничуть не более используемой:

0 error(s), 0 warning(s)

Во "взрослых" языках это давно умеют определять:

void f(void) {
  int i;
}

Ругань есть:

try.c: In function 'f':
try.c:2:7: warning: unused variable 'i' [-Wunused-variable]

Если инициализировать:

void f(void) {
  int i = 0;
}

Ругань все равно есть:

try.c: In function 'f':
try.c:2:7: warning: unused variable 'i' [-Wunused-variable]

Если не инициализировать, а присвоить:

void f(void) {
  int i;
  i = 0;
}

Даже в этом случае есть:

try.c: In function 'f':
try.c:2:7: warning: variable 'i' set but not used [-Wunused-but-set-variable]

И только, если "прочитать" каким-либо образом значение переменной, - лишь тогда переменная становится использованной:

void f(void) {
  int i = 0;
  i++;
}

Компиляция этого варианта кода "взрослым" компилятором уже проходит молча, без предупреждений.

Но, не ровён час, и разработчики научат компилятор MQL4 по-взрослому отличать используемую переменную от неиспользуемой, и тогда уже для вашего варианта ругань и в MQL4 будет.

 
AlexeyVik:

Господа разработчики, а сложно-ли сделать возможность сохранения в свойствах графика пользовательскую цветовую схему?


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

Вот пример необходимости:

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

Если это не сложно...

а скрипт такой есть? ... что бы менять цветовую схему.
 
Renat 24.03.2014 19:45 #
GSB:

Функция SymbolInfoInteger(Symbol(),SYMBOL_TRADE_MODE) при тестировании дает SYMBOL_TRADE_MODE_DISABLED. Это неверно. Зачем при тестировании ограничения по торгам по инструменту?

Скрипт на закрытом рынке дает 2 SYMBOL_TRADE_MODE_FULL

Эту проблему уже проверяем.

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

Ренат, почему до сих пор при закрытом рынке, например сегодня суббота,  SYMBOL_TRADE_MODE  дает 2 а не 0

Как на сегодняшний день узнать, что торговля запрещена?

Ситуация случилась в пятницу перед самым закрытием, брокер котирует до 22:59:57, советнику поступил сигнал на совершение сделки в 22:57:37, он отправил запрос OrderSend(...) в ответ получил ошибку 133

То есть, котировки идут, но совершать операции не можем, так как за 5 минут до закрытия рынка, брокер уже не принимает приказы в обработку.

Как выяснить программно, что торговля запрещена или рынок закрыт ?

Мучить сервер приказами каждую минуту - не есть хорошо.

 

Конструкция такого вида - не работает, робот продолжает слать приказы.

if(SymbolInfoInteger(symbol, SYMBOL_TRADE_MODE) != SYMBOL_TRADE_MODE_FULL)
    Alert(WindowExpertName(), ": невозможно совершить торговую операцию по символу ", symbol, ", т. к. по нему торговля запрещена!");
      return false;