Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
И будет ошибка.
Но будут ли исправлять справочник?
Лучше уж поправить и справочник и тип возвращаемого значения функций на ulong. Они не возвращают таких свойств, для которых требуются отрицательные значения.
Лучше уж поправить и справочник и тип возвращаемого значения функций на ulong. Они не возвращают таких свойств, для которых требуются отрицательные значения.
Нет, нельзя ulong т.к могут возвращаться отрицательные числа.
Нужно исправить на 64-битные данные.
Нет, нельзя ulong т.к могут возвращаться отрицательные числа.
Нужно исправить на 64-битные данные.
В каком свойстве?
Там все свойства - это или тикеты, которые строго положительны или ноль если ошибка, либо время, которое тоже положительно, либо перечисления, где члены по умолчанию тоже нумеруются с нуля.
Список свойств для OrderGetInteger():
ENUM_ORDER_PROPERTY_INTEGER
Идентификатор
Описание
Тип
ORDER_TICKET
Тикет ордера. Уникальное число, которое присваивается каждому ордеру
long
ORDER_TIME_SETUP
Время постановки ордера
datetime
ORDER_TYPE
Тип ордера
ENUM_ORDER_TYPE
ORDER_STATE
Статус ордера
ENUM_ORDER_STATE
ORDER_TIME_EXPIRATION
Время истечения ордера
datetime
ORDER_TIME_DONE
Время исполнения или снятия ордера
datetime
ORDER_TIME_SETUP_MSC
Время установки ордера на исполнение в миллисекундах с 01.01.1970
long
ORDER_TIME_DONE_MSC
Время исполнения/снятия ордера в миллисекундах с 01.01.1970
long
ORDER_TYPE_FILLING
Тип исполнения по остатку
ENUM_ORDER_TYPE_FILLING
ORDER_TYPE_TIME
Время жизни ордера
ENUM_ORDER_TYPE_TIME
ORDER_MAGIC
Идентификатор эксперта выставившего ордер (предназначен для того, чтобы каждый эксперт выставлял свой собственный уникальный номер)
long
ORDER_REASON
Причина или источник выставления ордера
ENUM_ORDER_REASON
ORDER_POSITION_ID
Идентификатор позиции, который ставится на ордере при его исполнении. Каждый исполненный ордер порождает сделку, которая открывает новую или изменяет уже существующую позицию. Идентификатор этой позиции и устанавливается исполненному ордеру в этот момент.
long
ORDER_POSITION_BY_ID
Идентификатор встречной позиции для ордеров типа ORDER_TYPE_CLOSE_BY.
long
Список свойств PositionGetInteger():
ENUM_POSITION_PROPERTY_INTEGER
Идентификатор
Описание
Тип
POSITION_TICKET
Тикет позиции. Уникальное число, которое присваивается каждой вновь открытой позиции. Как правило, соответствует тикету ордера, в результате которого она была открыта, за исключением случаев изменения тикета в результате служебных операций на сервере. Например, начисления свопов переоткрытием позиции. Для нахождения ордера, которым была открыта позиция, следует использовать свойство POSITION_IDENTIFIER.
Значение POSITION_TICKET соответствует MqlTradeRequest::position.
long
POSITION_TIME
Время открытия позиции
datetime
POSITION_TIME_MSC
Время открытия позиции в миллисекундах с 01.01.1970
long
POSITION_TIME_UPDATE
Время изменения позиции
datetime
POSITION_TIME_UPDATE_MSC
Время изменения позиции в миллисекундах с 01.01.1970
long
POSITION_TYPE
Тип позиции
ENUM_POSITION_TYPE
POSITION_MAGIC
Magic number для позиции (смотри ORDER_MAGIC)
long
POSITION_IDENTIFIER
Идентификатор позиции - это уникальное число, которое присваивается каждой вновь открытой позиции и не изменяется в течение всей ее жизни. Соответствует тикету ордера, которым была открыта позиция.
Идентификатор позиции указывается в каждом ордере (ORDER_POSITION_ID) и сделке (DEAL_POSITION_ID), которая ее открыла, изменила или закрыла. Используйте это свойство для поиска ордеров и сделок, связанных с позицией.
При развороте позиции в режиме неттинга (единой сделкой in/out) идентификатор позиции POSITION_IDENTIFIER не изменяется. Однако при этом POSITION_TICKET изменяется на тикет ордера, в результате которого произошел разворот. В режиме хеджинга разворот позиции не предусмотрен.
long
POSITION_REASON
Причина открытия позиции
ENUM_POSITION_REASON
Магик можно делать отрицательным насколько помню...
Так его возможно установить только в момент отправки торгового запроса. А структура торгового запроса для поля magic имеет тип ulong.
Так его возможно установить только в момент отправки торгового запроса. А структура торгового запроса для поля magic имеет тип ulong.
А дальше зависит от приведение типа при получении значения функцией OrderGetInteger(ORDER_MAGIC).
Так его возможно установить только в момент отправки торгового запроса. А структура торгового запроса для поля magic имеет тип ulong.
Разработчик ответил ведь так:
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
В справочнике MQL5 ошибка или как это следует понимать?
Renat Fatkhullin, 2021.01.21 15:23
Это вы сами делаете приведение, а в наших функциях мы без преобразований записываем и отдаем сырые 64 битные данные.В одном варианте магик long, в другом - ulong. В обеих случаях заполнение структуры выполняется приведение к типу ulong, а при получения значения функцией OrderGetInteger(ORDER_MAGIC) выполняется обратное приведение к изначальному типу. И все данные на месте в том виде, в каком были.
Попробуйте подставить магик = 18446744073709551615, там, где Вы берете long
Попробуйте подставить магик = 18446744073709551615, там, где Вы берете long
long не может быть таким большим. Надо изначально определиться, каким магиком хотите пользоваться, в соответствующем диапазоне и использоваться значения.
Тем не менее, если пытаетесь загонят ulong в long, чтобы потом получить исходное значение надо сделать обратное приведение, -1 как раз преобразуется в ULONG_MAX