MetaTrader 4 Client Terminal build 509 - страница 43

 

Разработчикам

1. При установке терминала на Win XP не происходит копирования файлов в папку установки, установка проходит "мгновенно".

Либо процесс установки "зависает" на определенном месте и не завершается.

В чем может быть причина?

Антивирус NOD32 и Касперский, перед установкой отключаются, не помогает.

2. Может ли для MT4 требоваться SSE2?

 
   int FileHandle = FileOpen(FileName, FILE_CSV|FILE_READ,",");
- Если в FileOpen делимитер отличается от того что используется в CSV файле МТ4 виснет, приходится убивать его процесс.
- Если делимитры FileOpen и CSV одинаковые, но после последнего числа в CSV нет делимитра и в конце нет перехода на новую строку то МТ4 тоже зависает.
- Если числа идут не в одну строку, а после запятой с переносом на новую строку то МТ4 не видит CSV и виснет.

- Если в CSV все числа идут в одну строку, через запятую с пробелом, а после последнего числа в CSV нет делимитра, но есть переход на новую строку то все читается нормально, но последняя строка почему-то тоже учитывается командой FileReadNumber() за число, получается на один элемент больше чем в CSV.
- Делимитер после последнего числа, если за ним есть пробел то тоже приводит к зависанию.


В перечисленных случаях, по крайней мере в некоторых, есть ошибки пользователя - пусть МТ4 укажет на ошибку и остановится, но не виснет. Исправьте пожалуйста.
 

что это за баг?

если вызвать MarketInfo(Symbol(),MODE_TRADEALLOWED), то возвращает - 1=торговля разрешена.

а если навести на символ в обзоре рынка, то выскакивает подсказка с надписью - Trade: Close.

торговать действительно не даёт, но почему MODE_TRADEALLOWED возвращает неверное значение?

как то ещё можно проверить запрет на торговлу по символу? а то получается я из-за этого бага впустую нагружаю сервак своими запросами. так и забанить могут.

 
chief2000:

- Если в FileOpen делимитер отличается от того что используется в CSV файле МТ4 виснет, приходится убивать его процесс.
- Если делимитры FileOpen и CSV одинаковые, но после последнего числа в CSV нет делимитра и в конце нет перехода на новую строку то МТ4 тоже зависает.
- Если числа идут не в одну строку, а после запятой с переносом на новую строку то МТ4 не видит CSV и виснет.

- Если в CSV все числа идут в одну строку, через запятую с пробелом, а после последнего числа в CSV нет делимитра, но есть переход на новую строку то все читается нормально, но последняя строка почему-то тоже учитывается командой FileReadNumber() за число, получается на один элемент больше чем в CSV.
- Делимитер после последнего числа, если за ним есть пробел то тоже приводит к зависанию.


В перечисленных случаях, по крайней мере в некоторых, есть ошибки пользователя - пусть МТ4 укажет на ошибку и остановится, но не виснет. Исправьте пожалуйста.


Ваши утверждения не совсем понятны.

- Что такое: "Если в FileOpen делимитер отличается от того что используется в CSV файле"?

- "Если делимитры FileOpen и CSV одинаковые, но после последнего числа в CSV нет делимитра и в конце нет перехода на новую строку то МТ4 тоже зависает." После последнего числа никогда не бывает делимитера.

- "Если числа идут не в одну строку, а после запятой с переносом на новую строку то МТ4 не видит CSV и виснет." - это как? Числа в строке всегда идут в одну строку.

- делимитера после последнего числа не бывает. Если бывает, то Вы должны обрабатывать эту ситуацию самостоятельно

Чтобы что-то исправить, мы должны проверить представленные утверждения. Дайте нам Ваш код и Ваш файл - мы проверим

 
Omm:

что это за баг?

если вызвать MarketInfo(Symbol(),MODE_TRADEALLOWED), то возвращает - 1=торговля разрешена.

а если навести на символ в обзоре рынка, то выскакивает подсказка с надписью - Trade: Close.

торговать действительно не даёт, но почему MODE_TRADEALLOWED возвращает неверное значение?

как то ещё можно проверить запрет на торговлу по символу? а то получается я из-за этого бага впустую нагружаю сервак своими запросами. так и забанить могут.


Торговля разрешена. Это - глобальный признак. Проверяйте сессии
 
Interesting:

Разработчикам

1. При установке терминала на Win XP не происходит копирования файлов в папку установки, установка проходит "мгновенно".

Либо процесс установки "зависает" на определенном месте и не завершается.

В чем может быть причина?

Антивирус NOD32 и Касперский, перед установкой отключаются, не помогает.

2. Может ли для MT4 требоваться SSE2?



SSE2 100% требуется.
 
stringo:

Торговля разрешена. Это - глобальный признак. Проверяйте сессии

ну если вручную пытаться открыть, то тоже выдаёт- trade is disabled.

чего за сессии? MODE_STARTING, MODE_EXPIRATION у меня и раньше ничего не показывали.

я так понимаю, что если в обзоре рынка всплывает Trade: Close, то это глобальный запрет на торговлю и от торговых сессий не зависит.

только как это определить программно?

 
stringo:

Ваши утверждения не совсем понятны.

Это скорее наблюдения, я довел свой CSV файл и код до состояния при котором файл читается без зависаний (проблемных не сохранял).

stringo:

- Что такое: "Если в FileOpen делимитер отличается от того что используется в CSV файле"?

В строке с FileOpen, которую я приводил выше есть делимитер=разделитель, в моем случае запятая. В CSV-файле я также использую запятые. Но если я или в коде, или в файле заменю запятые на точку с запятой то это приведет к тому что МТ4 перестанет читать этот файл. Моя ошибка, но хотелось бы получить сообщение об ошибке, а не зависание.

stringo:

- "Если числа идут не в одну строку, а после запятой с переносом на новую строку то МТ4 не видит CSV и виснет."
- это как? Числа в строке всегда идут в одну строку.
Если числа в CSV будут в одной строке то и в Excel-е они так же будут все в одной строке, а это неудобно. А если в CSV добавить символ переноса строки то CSV становится нечитабельным в МТ4, хотя многие программы не обращают на это внимания и читают числа расположенные как в строке, так и в столбце.

stringo:

- делимитера после последнего числа не бывает. Если бывает, то Вы должны обрабатывать эту ситуацию самостоятельно
Изначально у меня его не было, но тогда необходим символ переноса строки после последнего числа, что добавляет еще один нулевой элемент в массив. А без переноса строки возникало зависание. Да и в описании команды FileReadNumber написано "Чтение числа с текущей позиции файла CSV до разделителя". Надо или нет, но с разделителем в конце работает правильно.

Вообще, в некоторых из случаев которые я описал МТ иногда выходил из зависаний самостоятельно, но после продолжительного времени. Когда все в порядке чтение происходит очень быстро.
 
chief2000:
Это скорее наблюдения, я довел свой CSV файл и код до состояния при котором файл читается без зависаний (проблемных не сохранял).

В строке с FileOpen, которую я приводил выше есть делимитер=разделитель, в моем случае запятая. В CSV-файле я также использую запятые. Но если я или в коде, или в файле заменю запятые на точку с запятой то это приведет к тому что МТ4 перестанет читать этот файл. Моя ошибка, но хотелось бы получить сообщение об ошибке, а не зависание.

Если числа в CSV будут в одной строке то и в Excel-е они так же будут все в одной строке, а это неудобно. А если в CSV добавить символ переноса строки то CSV становится нечитабельным в МТ4, хотя многие программы не обращают на это внимания и читают числа расположенные как в строке, так и в столбце.

Изначально у меня его не было, но тогда необходим символ переноса строки после последнего числа, что добавляет еще один нулевой элемент в массив. А без переноса строки возникало зависание. Да и в описании команды FileReadNumber написано "Чтение числа с текущей позиции файла CSV до разделителя". Надо или нет, но с разделителем в конце работает правильно.

Вообще, в некоторых из случаев которые я описал МТ иногда выходил из зависаний самостоятельно, но после продолжительного времени. Когда все в порядке чтение происходит очень быстро.


Приведите компактный пример с файлом, чтобы мы смогли проверить Ваши утверждения. И по возможности исправить баги. (мы сами пока проблем не видим)
 
stringo:

Приведите компактный пример с файлом, чтобы мы смогли проверить Ваши утверждения. И по возможности исправить баги. (мы сами пока проблем не видим)

Постараюсь сделать тестовый код с CSV, но это займет некоторое время (сейчас пока занят другими делами).
Причина обращения: