Новая версия платформы MetaTrader 5 build 3091: Улучшения в работе - страница 13

 
mktr8591 # :

Почему bid/ask разные в торговой панели 1click (и в окне ручного выставления F9 должна быть та же цена) и на графике (линии)?

Верно ли я понимаю, что в режиме Instant exeс сделка будет по цене торговой панели ?

Тогда на что влияют линии на графике?

Для меня самый важный вопрос: кто несет ответственность за это различие: сервер, установленный брокером, или клиентский терминал, локальный MT5? И кто может это изменить, как?

To me the most important question is who is responsible for this difference: the server set by the broker or the client terminal, the local MT5? And who can change this how?

 
Carl Schreiber #:

Для меня самый важный вопрос: кто несет ответственность за это различие: сервер, установленный брокером, или клиентский терминал, локальный MT5? И кто может это изменить, как?

Брокер.

 
Vladimir Karputov #:

1. При помощи кнопки   из терминала хочу сохранить картинку. Но поле 'File name' пустое:


в более ранних билдах в этом поле вставлялось автоматически сгененрированное имя из названия символа и таймрейма, что-то вроде EURUSD H1

2. При попытке сохранить шаблон графика открывается папка рабочего стола, а не папка [data folder]\MQL5\Profiles\Templates\

Билд 3098. Спасибо! И №1 и №2 теперь работает как раньше.

 

Ошибка в CharArrayToString.

void OnStart()
{  
  uchar Bytes[];
  
  Print(StringToCharArray(NULL, Bytes)); // 0
  
  const string Str = CharArrayToString(Bytes);
  
  Print(StringToCharArray(Str, Bytes)); // 1
}

Вместо NULL-строки возвращает ""-строку.

Строка для поиска: Oshibka 034.

 
fxsaber #:

Ошибка в CharArrayToString.

Вместо NULL-строки возвращает ""-строку.

А в чем ошибка? Согласно описанию

CharArrayToString(,,count=-1,)

[in]  Количество элементов массива для копирования. Определяет длину результатной строки. По умолчанию -1, что означает копирование до конца массива, либо до встречи терминального 0.

Другими словами: если массив будет {} или массив будет {0}, то результат будет одинаковым

void OnStart()
{  
        uchar Bytes1[] = { }; const string Str1 = CharArrayToString(Bytes1);
        uchar Bytes2[] = {0}; const string Str2 = CharArrayToString(Bytes2);
        Print( Str1 == Str2 );
}

Результат: true

 

Зачем сделали не прозрачный значок на панели задач? Прошлый вариант выглядит более красиво, да и профессионально.


 

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


 
A100 #:

А в чем ошибка? Согласно описанию

CharArrayToString(,,count=-1,)

[in]  Количество элементов массива для копирования. Определяет длину результатной строки. По умолчанию -1, что означает копирование до конца массива, либо до встречи терминального 0.

Другими словами: если массив будет {} или массив будет {0}, то результат будет одинаковым

Результат: true

Str1 должен быть равен NULL.

 
fxsaber #:

Str1 должен быть равен NULL.

Из описания это не следует, иначе можно требовать NULL и для Str2 (а потом заявить почему Str2 не "")

Кроме того, функции 

StringToCharArray
CharArrayToString

изначально (по умолчанию) не симметричные

void OnStart()
{
    const string text[] = { "ABCD", "", NULL, "ABCD\0" };
    for ( uchar ch[], i = 0; i < ArraySize(text); i++ )
    {
                          StringToCharArray( text[i], ch );
        Print( text[i] == CharArrayToString(ch));
    }
}

Результат: true\true\false\false

Как видите false не только для text[] равное NULL

 
fxsaber #:

Str1 должен быть равен NULL.

ты прочитал, что однажды разработчики сказали, что нужно проверять?

удивительно конечно это.