Как извлечь подробную информацию последней сделки из вкладки Истории в окне Инструменты?
Пример как внизу на картинке:
Для Alert или Print, или Comment использовать
Использовать OnTradeTRansaction - ловить транзакцию с типом TRADE_TRANSACTION_DEAL_ADD (добавление сделеки в историю), и далее ловить сделку с любым типом из
ENUM_DEAL_ENTRY
Идентификатор | Описание |
DEAL_ENTRY_IN | Вход в рынок |
DEAL_ENTRY_OUT | Выход из рынка |
DEAL_ENTRY_INOUT | Разворот |
DEAL_ENTRY_OUT_BY | Закрытие встречной позицией |
вм
//+------------------------------------------------------------------+ //| TradeTransaction function | //+------------------------------------------------------------------+ void OnTradeTransaction(const MqlTradeTransaction &trans, const MqlTradeRequest &request, const MqlTradeResult &result) { //--- get transaction type as enumeration value ENUM_TRADE_TRANSACTION_TYPE type=trans.type; //--- if transaction is result of addition of the transaction in history if(type==TRADE_TRANSACTION_DEAL_ADD) { long deal_entry =0; double deal_profit =0.0; double deal_volume =0.0; string deal_symbol =""; long deal_magic =0; long deal_reason =-1; if(HistoryDealSelect(trans.deal)) { deal_entry=HistoryDealGetInteger(trans.deal,DEAL_ENTRY); deal_profit=HistoryDealGetDouble(trans.deal,DEAL_PROFIT); deal_volume=HistoryDealGetDouble(trans.deal,DEAL_VOLUME); deal_symbol=HistoryDealGetString(trans.deal,DEAL_SYMBOL); deal_magic=HistoryDealGetInteger(trans.deal,DEAL_MAGIC); deal_reason=HistoryDealGetInteger(trans.deal,DEAL_REASON); } else return; if(deal_symbol==Symbol() && deal_magic==m_magic) if(deal_entry==DEAL_ENTRY_IN || deal_entry==DEAL_ENTRY_OUT || deal_entry==DEAL_ENTRY_INOUT || deal_entry==DEAL_ENTRY_OUT_BY) { ... Здесь Ваш код } } }
Как извлечь подробную информацию последней сделки из вкладки Истории в окне Инструменты?
Пример как внизу на картинке:
Для Alert или Print, или Comment использовать
На рисунке сделки упорядочены по возрастанию момента открытия. Они могут быть упорядочены по любому (видимому ?) из столбцов вкладки История (не знаю, есть ли там и более сложное упорядочивание, по более чем одному столбцу). При выборе другого упорядочивающего столбца "последней" будет то одна, то другая, то третья сделка. Думаю, стоит конкретизировать, какую сделку считать последней. Например, последнюю из открытых. Или из закрытых.
Неужели Вам действительно нужно как на картинке, в соответствии с выбранным сейчас для упорядочивания столбцом? Это сложно. Даже только выяснить, какое упорядочивание сейчас назначено.
Сделка, как понял, упорядочиваются только на экране. Для программы порядок сохраняется. Попробуйте написать простейший скрипт и проверить
Сделка, как понял, упорядочиваются только на экране. Для программы порядок сохраняется. Попробуйте написать простейший скрипт и проверить
Так какая сделка должна быть последней? Последняя открытая или последняя закрытая?
В справке по MQL4 говорится, что никакое упорядочивание в списках ордеров не гарантируется. Значит, опираться на какую-либо "естественную" упорядоченность нельзя. Хотя нетрудно догадаться, что номер тикета выполняет функции первичного ключа и может идти не по порядку только в случае краха сервера. В справке по MQl5 упоминаний об упорядоченности я не нашел. Лет 5 назад проверял в обоих языках на десятках тысяч сделок, всегда упорядоченность была, по номеру тикета. Но разработчики не гарантируют. Из-за этого мне пришлось добавить свое упорядочивание, которое пока во всех случаях оказывалось лишь проверкой, переставлять ничего не пришлось ни разу за 5 лет.
Для программы на MQL5 часто нет не только порядка, но и самого списка, ничего не сохраняется: "Функция HistorySelect() создает в mql5-программе список ордеров и список сделок...То же самое относится к списку сделок, доступных mql5-программе – он сбрасывается функцией HistoryDealSelect() и заполняется заново в случае успешного получения сделки по номеру тикета".
Но... речь не о том, что имеется, а о том, что человеку нужно. Он пишет - требуется последняя сделка, как на картинке. И картинка точно описана: "из вкладки Истории в окне Инструменты". В этой вкладке еще возможно назначение не только порядка показа, но и охватываемого периода. Какая же сделка будет последней...
Привет, всем! Долго задержался с ответами в форуме, был на сеновале 1 месяц. Теперь вернемся к вопросу. Вопрос понятен, конечно нужна информация последней закрытой (последнюю из закрытых) . В истории сразу видно закрытие с убытком в столбце "Прибыль".

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Как извлечь подробную информацию последней сделки из вкладки Истории в окне Инструменты?
Пример как внизу на картинке:
Для Alert или Print, или Comment использовать