Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 762
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Да, Вы правы. И ордера и сделки имеют идентификатор позиции. Однако, в общем случае нужно знать, что позиции присваивается идентификатор первого ордера, инициировавшего сделку. Соответственно, "сущностью" инициирующей позицию, является ордер, а не сделка. И перебирать нужно ордера, а не сделки.
Из документации:
Я не собираюсь спорить, именно так и написано в документации. Но в другом месте той-же самой документации написано "Как правило..." значит возможны несовпадения. И на такое "как правило" я однажды нарвался...
position
Тикет позиции. Следует заполнять при изменении и закрытии позиции для ее однозначной идентификации. Как правило, соответствует тикету ордера, в результате которого позиция была открыта.
Подскажите, как получить с истории тикет, который был при трейде. На скрине он "63214735"
Здесь Вы ищите номер Позиции, в списке Сделок , а то неправильно.
Вот скрипт демонстрирующий что дает HistorySelectByPosition
А так выглядит резултат :
0 = Открытие Позиции
1 = Закрытие Позиции
Если не получаете результат = то ввели не Тикет Позиции
Аналогичной результат можно получить и если начать с Тикет Сделки :
Для функции HistoryDealGetInteger()
ENUM_DEAL_PROPERTY_INTEGER
Идентификатор
Описание
Тип
DEAL_TICKET
Тикет сделки. Уникальное число, которое присваивается каждой сделке
long
DEAL_ORDER
Ордер, на основание которого выполнена сделка
long
DEAL_TIME
Время совершения сделки
datetime
DEAL_TIME_MSC
Время совершения сделки в миллисекундах с 01.01.1970
long
DEAL_TYPE
Тип сделки
ENUM_DEAL_TYPE
DEAL_ENTRY
Направление сделки – вход в рынок, выход из рынка или разворот
ENUM_DEAL_ENTRY
DEAL_MAGIC
Magic number для сделки (смотри ORDER_MAGIC)
long
DEAL_REASON
Причина или источник проведения сделки
ENUM_DEAL_REASON
DEAL_POSITION_ID
Идентификатор позиции, в открытии, изменении или закрытии которой участвовала эта сделка. Каждая позиция имеет уникальный идентификатор, который присваивается всем сделкам, совершенным на инструменте в течение всей жизни позиции.
long
Спасибо!
Мне нужно было это: HistoryOrderGetTicket
Спасибо!
Мне нужно было это: HistoryOrderGetTicket
Ордер может быть лотом 1.0. А вот исполниться он может частично, например, лотом 0.9 - остаток будет отклонён (зависит от режима исполнения). Тогда сделка будет лотом 0.9. И когда начнёте искать лот по ордеру, то будут несоответствия.
Прошу помощи - нужен вменяемый код для получения значения окружения OHLC - имеющиеся сильно тормозят
Вариант 1
Вариант 2
Прошу помощи - нужен вменяемый код для получения значения окружения OHLC - имеющиеся сильно тормозят
Вариант 1
Вариант 2
Выложите кусок кода, как вы их применяете
Я не знаю, какой кусок тормозит - применяю по разному, в том числе в циклах...
вот пример
Я не знаю, какой кусок тормозит - применяю по разному, в том числе в циклах...
Вроде так в циклах, и можно обойтись без функции
Вроде так в циклах, и можно обойтись без функции
Спасибо.
Однако убрал функцию - тормоза остались.... проклятье.
Спасибо.
Однако убрал функцию - тормоза остались.... проклятье.
Я как-то начал переписывать программу с 4=>5, потом в 4-ке заменил все конструкции типа Low[1], Time[0] и прочие на современные, то есть на CopyLow, CopyTime, программа даже в 4-ке стала работать быстрее. Сейчас не применяю старые конструкции, а только новые. Таким образом код легко переносим на 5-ю платформу, нужно только сменить торговые функции