Библиотеки: MT4Orders - страница 93

 
fxsaber #:
Автор не может ничего сделать с версиями на других языках.
Об этом было сообщено в MQ.
 


 #include <MT4Orders.mqh>
 input datetime StartDate = D'2025.12.15 00:42:37' ;
 input datetime EndDate = D'2025.12.15 23:59:52' ;

 void OnStart() {
   int total = OrdersHistoryTotal();
   Print("OrdersHistoryTotal = " , total);
   for ( int i = 0 ; i < total; i++) {
     if (! OrderSelect (i, SELECT_BY_POS, MODE_HISTORY)) continue ;
     datetime openTime = OrderOpenTime();
     datetime closeTime = OrderCloseTime();
     if (openTime >= StartDate && closeTime <= EndDate) {
       ENUM_ORDER_TYPE orderType = ( ENUM_ORDER_TYPE )OrderType();
       if (orderType == OP_BUY || orderType == OP_SELL) {
        OrderPrint();
      }
    }
  }
}

Я не знаю, почему количество полученных лотов составляет 0,00, а не 0,01?

Если вам нужен счет, я могу предоставить его через личное сообщение.

OrderLots() также возвращает 0.

 
hini #:

Я не знаю, почему количество полученных лотов составляет 0,00, а не 0,01?

Это правильно поведение. Вы закрыли позицию встречной через CloseBy.

Запустите CustomReport - там будет больше информации для понимания.

 
fxsaber #:

Это правильное поведение. Вы закрыли счетчик позиций с помощью CloseBy.

Запустите CustomReport - там будет больше информации для понимания.

Я вручную закрыл все свои позиции с помощью MT5, и возвращаемый номер лота был 0, что вызвало неожиданные расчеты для этого ордера. Почему вместо официальной цифры возвращается 0.00? Например, что касается количества ордеров, я не уверен, стоит ли исключать этот ордер. По логике, его не следует исключать, но возврат 0 лотов указывает на недействительность ордера.

Где я могу изменить это поведение?


 
Если купить 0,01 и продать 0,03, вернется ли 0,02? Я еще не тестировал это. Я протестирую это, когда у меня будет время.
 
hini #:

Я вручную закрыл все свои позиции с помощью MT5, и возвращаемый номер лота был 0, что вызвало неожиданные расчеты для этого ордера. Почему вместо официальной цифры возвращается 0.00? Например, что касается количества ордеров, я не уверен, стоит ли исключать этот ордер. По логике, его не следует исключать, но возврат 0 лотов указывает на недействительность ордера.

Где я могу изменить это поведение?

Это правильное поведение, которое идентично поведению в MT4  в таких ситуациях. Если две разнонаправленные позиции по 1 лоту закрыть через CloseBy, то суммарный объем закрытой позиции должен быть 1, а не 2.

Сумма лотов - это торговый объем, по которому, в частности, вычисляется комиссия.


https://www.mql5.com/ru/blogs/post/751985

https://www.mql5.com/ru/blogs/post/754817

Отображение CloseBy-операций.
Отображение CloseBy-операций.
  • 2023.02.28
  • www.mql5.com
Как и с заметкой про частичное исполнение , разберем с помощью той же методики CloseBy-операции в реальной торговле. Частичное закрытие позиции. // MT4-представление. # 8269493 2023.02 . 24 22 : 55
 
hini #:
Если купить 0,01 и продать 0,03, вернется ли 0,02? Я еще не тестировал это. Я протестирую это, когда у меня будет время.
Будет открытая позиция на 0.01 лота и две закрытые позиции: на 0.01 лота и на 0.00 (информация) лота.
 
fxsaber # :
Будет открытая позиция на 0.01 лота и две закрытые позиции: на 0.01 лота и на 0.00 (информация) лота.
Если я хочу посчитать количество сделок, то должно получиться 0,04, а сейчас — 0,03?
 
hini #:
Если я хочу посчитать количество сделок, то должно получиться 0,04, а сейчас — 0,03?
Привел все ссылки с подробностями. Все работает правильно.
 
fxsaber #:
Привел все ссылки с подробностями. Все работает правильно.
Понял вопрос, но хочу уточнить: можно ли просто получить список, аналогичный истории позиций в MT5, без углубления в детали?