Dmitry Fedoseev: В одном варианте магик long, в другом - ulong. В обеих случаях заполнение структуры выполняется приведение к типу ulong, а при получения значения функцией OrderGetInteger(ORDER_MAGIC) выполняется обратное приведение к изначальному типу. И все данные на месте в том виде, в каком были.
А теперь посмотрите на то, каким получился отрицательный магик в столбце ID эксперта:
А теперь посмотрите на то, каким получился отрицательный магик в столбце ID эксперта:
Потому поле поле для магика в структуре имеет тип ulong, и терминал никак не может знать, что в него кто-то закодировал long (или еще что-то). И как раз, если это длинное число перекодировать в long, то получится -2.
Потому поле поле для магика в структуре имеет тип ulong, и терминал никак не может знать, что в него кто-то закодировал long.
Вот в этом и проблема. К типам данных в структуре вопросов не возникает. Вопрос возникает только к тому, как будет функция с типом возвращаемого значения long, возвращать значение полей типа ulong.
Вот в этом и проблема. К типам данных в структуре вопросов не возникает. Вопрос возникает только к тому, как будет функция с типом возвращаемого значения long, возвращать значение полей типа ulong.
Вот в этом и проблема. К типам данных в структуре вопросов не возникает. Вопрос возникает только к тому, как будет функция с типом возвращаемого значения long, возвращать значение полей типа ulong.
long и ulong - обе по 8 байт. Так что, это вопрос правильного приведения типов.
Примеры с преобразованием типа встроенной функции языка лишь показывают как можно жить с неправильной справкой.
А зачем жить с неправильной справкой, когда можно исправить и справку и функцию и привести всё к одному знаменателю?
Какая нужда магику иметь отрицательное значение? Он же нужен только для придания уникальности сделкам конкретного советника.
Это нетривиальное решение позволяет увеличить диапазон и возвратить отрицательное значение. Мне понятно зачем так. Но как справку написать по данному варианту реализации тоже не понимаю)))
Valeriy Yastremskiy: Это нетривиальное решение позволяет увеличить диапазон и возвратить отрицательное значение. Мне понятно зачем так. Но как справку написать по данному варианту реализации тоже не понимаю)))
Не сразу понял что Вы имеете ввиду. То есть эта игра с преобразованием типа позволяет задействовать все отрицательные значения из long и полностью весь диапазон ulong. В принципе понятно, только, я думаю, диапазон ulong не только достаточный, а даже избыточный для того чтобы у всех одновременно работающих в терминале советников магики не повторялись. Куда уж ещё больше его расширять...
Не сразу понял что Вы имеете ввиду. То есть эта игра с преобразованием типа позволяет задействовать все отрицательные значения из long и полностью весь диапазон ulong. В принципе понятно, только, я думаю, диапазон ulong не только достаточный, а даже избыточный для того чтобы у всех одновременно работающих в терминале советников магики не повторялись. Куда уж ещё больше его расширять...
Видимо проблема обозначилась где то у кого то) раз разрабы пошли на такие не тривиальные костыли).
И всё равно, даже если это сделано для расширения диапазона доступных магиков. Разве что-то бы поменялось если бы функция возвращала ulong, в справке так и было бы написано, а пользователи при желании могли бы загонять в структуру отрицательные значения long и при считывании значения магика делать преобразование к long? И работало бы так же, и в справке всё было корректно написано насчёт работы функций.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
В одном варианте магик long, в другом - ulong. В обеих случаях заполнение структуры выполняется приведение к типу ulong, а при получения значения функцией OrderGetInteger(ORDER_MAGIC) выполняется обратное приведение к изначальному типу. И все данные на месте в том виде, в каком были.
А теперь посмотрите на то, каким получился отрицательный магик в столбце ID эксперта:
А теперь посмотрите на то, каким получился отрицательный магик в столбце ID эксперта:
Потому поле поле для магика в структуре имеет тип ulong, и терминал никак не может знать, что в него кто-то закодировал long (или еще что-то). И как раз, если это длинное число перекодировать в long, то получится -2.
Потому поле поле для магика в структуре имеет тип ulong, и терминал никак не может знать, что в него кто-то закодировал long.
Вот в этом и проблема. К типам данных в структуре вопросов не возникает. Вопрос возникает только к тому, как будет функция с типом возвращаемого значения long, возвращать значение полей типа ulong.
Вот в этом и проблема. К типам данных в структуре вопросов не возникает. Вопрос возникает только к тому, как будет функция с типом возвращаемого значения long, возвращать значение полей типа ulong.
Да очень просто:
Вот в этом и проблема. К типам данных в структуре вопросов не возникает. Вопрос возникает только к тому, как будет функция с типом возвращаемого значения long, возвращать значение полей типа ulong.
long и ulong - обе по 8 байт. Так что, это вопрос правильного приведения типов.
Да очень просто:
Примеры с преобразованием типа встроенной функции языка лишь показывают как можно жить с неправильной справкой.
А зачем жить с неправильной справкой, когда можно исправить и справку и функцию и привести всё к одному знаменателю?
Какая нужда магику иметь отрицательное значение? Он же нужен только для придания уникальности сделкам конкретного советника.
Примеры с преобразованием типа встроенной функции языка лишь показывают как можно жить с неправильной справкой.
А зачем жить с неправильной справкой, когда можно исправить и справку и функцию и привести всё к одному знаменателю?
Какая нужда магику иметь отрицательное значение? Он же нужен только для придания уникальности сделкам конкретного советника.
Это нетривиальное решение позволяет увеличить диапазон и возвратить отрицательное значение. Мне понятно зачем так. Но как справку написать по данному варианту реализации тоже не понимаю)))
Не сразу понял что Вы имеете ввиду. То есть эта игра с преобразованием типа позволяет задействовать все отрицательные значения из long и полностью весь диапазон ulong. В принципе понятно, только, я думаю, диапазон ulong не только достаточный, а даже избыточный для того чтобы у всех одновременно работающих в терминале советников магики не повторялись. Куда уж ещё больше его расширять...
Не сразу понял что Вы имеете ввиду. То есть эта игра с преобразованием типа позволяет задействовать все отрицательные значения из long и полностью весь диапазон ulong. В принципе понятно, только, я думаю, диапазон ulong не только достаточный, а даже избыточный для того чтобы у всех одновременно работающих в терминале советников магики не повторялись. Куда уж ещё больше его расширять...