Ошибки, баги, вопросы - страница 3312

 
fxsaber #:

Запустите этот скрипт.

И руками откройте отложку (желательно, чтобы не было других ордеров).

Зачем мне такие азы? Я прекрасно понимаю, что ордер имеет разный статус. Прекрасно понимаю, что я мог неправильно сделать распечатку.

Спасибо за подсказку, видимо надо поставить другой тип транзакции… Буду пробовать.

 
Alexey Viktorov #:

Зачем мне такие азы? Я прекрасно понимаю, что ордер имеет разный статус. Прекрасно понимаю, что я мог неправильно сделать распечатку.

Потому что это универсальный метод, позволяющий увидеть даже такое.

#define TOSTRING(A) #A + " = " + (string)(A) + " "

void OnStart()
{
  long State = -1;
  
  while (!IsStopped())
  {
    const int Total = OrdersTotal();
    
    if (Total)
    {
      if (!OrderGetTicket(Total - 1))
        Print(TOSTRING(Total) + "Ticket = 0");
      else if (State != OrderGetInteger(ORDER_STATE))
        Print(TOSTRING(OrderGetInteger(ORDER_TICKET)) + EnumToString((ENUM_ORDER_STATE)(State = OrderGetInteger(ORDER_STATE)))); 
    }  
  }
}


2023.04.25 13:27:38.395 '160325739': market buy 1 AUDUSD
2023.04.25 13:27:38.475 OrderGetInteger(ORDER_TICKET) = 2289635415 ORDER_STATE_STARTED

2023.04.25 13:27:38.479 '160325739': accepted market buy 1 AUDUSD
2023.04.25 13:27:38.479 OrderGetInteger(ORDER_TICKET) = 2289635415 ORDER_STATE_REQUEST_ADD

2023.04.25 13:27:38.479 '160325739': market buy 1 AUDUSD placed for execution
2023.04.25 13:27:38.479 '160325739': order #2289635415 buy 1 / 1 AUDUSD at market done in 90.404 ms
2023.04.25 13:27:38.479 OrderGetInteger(ORDER_TICKET) = 2289635415 ORDER_STATE_PLACED

2023.04.25 13:27:38.480 '160325739': deal #2278920765 buy 1 AUDUSD at 0.66660 done (based on order #2289635415)

2023.04.25 13:27:48.261 '160325739': market sell 1 AUDUSD, close #2289635415 buy 1 AUDUSD 0.66660
2023.04.25 13:27:48.314 OrderGetInteger(ORDER_TICKET) = 2289635420 ORDER_STATE_STARTED

2023.04.25 13:27:48.314 '160325739': accepted market sell 1 AUDUSD, close #2289635415 buy 1 AUDUSD 0.66660
2023.04.25 13:27:48.315 OrderGetInteger(ORDER_TICKET) = 2289635420 ORDER_STATE_REQUEST_ADD

2023.04.25 13:27:48.316 '160325739': market sell 1 AUDUSD, close #2289635415 buy 1 AUDUSD 0.66660 placed for execution
2023.04.25 13:27:48.343 '160325739': order #2289635420 sell 1 / 1 AUDUSD at market done in 83.044 ms
2023.04.25 13:27:48.343 OrderGetInteger(ORDER_TICKET) = 2289635420 ORDER_STATE_PLACED
2023.04.25 13:27:48.343 Total = 1 Ticket = 0

2023.04.25 13:27:48.345 '160325739': deal #2278920771 sell 1 AUDUSD at 0.66655 done (based on order #2289635420)
 
fxsaber #:

Потому что это универсальный метод, позволяющий увидеть даже такое.


Понятно, что терминал не идеален и количество ордеров может быть уже больше нуля, а выбрать ордер не получается… И что? Ну увидели такой недостаток терминала, а как это использовать? Да и зачем мне количество если ордер не выбран.

Ведь в моём случае совсем наоборот. Ордер выбран, но статус не позволяет его модифицировать. Это я уже проверил. Спасибо за наводку где искать тараканов…

 
Ошибки, баги, вопросы - Включите форвард-тестирование.
Ошибки, баги, вопросы - Включите форвард-тестирование.
  • 2023.04.13
  • www.mql5.com
В режиме двух окон в горизонт положении смартфона нет кнопки. То есть если телефон в кредле в горизонтальном режиме и нужно выключить курсор. Вызвать боковую панель кликом по соседнему окну и там отключить курсор тоже не получается
 
fxsaber #:

Потому что это универсальный метод, позволяющий увидеть даже такое.


fxsaber #: я давно хотел спросить: зачем вы эти тесты делаете? Вы не сотрудник MQL, не авторизированный пользователь. Вам для забавы ?

Вы находите такие уязвимости в которые мне не удалость попасть за 10 лет в програминге.

Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2023.04.25
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 
Volodymyr Zubov #:

fxsaber #: я давно хотел спросить: зачем вы эти тесты делаете?

Авось в алготрейдинге дорогой.
 
Volodymyr Zubov #:

fxsaber #: я давно хотел спросить: зачем вы эти тесты делаете? Вы не сотрудник MQL, не авторизированный пользователь. Вам для забавы ?

Вы находите такие уязвимости в которые мне не удалость попасть за 10 лет в програминге.

он миллион долларов сделал на багах) не реальных конечно

и кстати, 1й0 лет, могли бы и знать его прошлые имена тут
 
Volodymyr Zubov #:

fxsaber #: я давно хотел спросить: зачем вы эти тесты делаете? Вы не сотрудник MQL, не авторизированный пользователь. Вам для забавы ?

Вы находите такие уязвимости в которые мне не удалость попасть за 10 лет в програминге.

Не в обиду fxsaberу хочу сказать, отвечая на ваш вопрос. Это пишется для тех кто никак не может оторваться от mql4. Для поддержания своей бесплатной библиотеки которой пользуются очень многие и все ему за неё очень благодарны.

Ну какой смысл в mql5 перебирать ордера или позиции при увеличении их общего количества? Да просто в mql4 так делали. От того и тормоза в нём такие. 

А в общем fxsaber довольно хороший программист. Я так думаю… Ещё раз хочу поблагодарить его за наводку, где в моём коде тараканы…

 
Volodymyr Zubov #:

fxsaber #: я давно хотел спросить: зачем вы эти тесты делаете? Вы не сотрудник MQL, не авторизированный пользователь. Вам для забавы ?

Вы находите такие уязвимости в которые мне не удалость попасть за 10 лет в програминге.

Есть некоторые баги, которые многие пропускают считая, что это нормальное явление,

но fxsaber об этом всегда пишет, а mql правят, чем многим помогают ускоряя работу кодов.

Надеюсь, ваши сомнения развеял? 

 
Alexey Viktorov #:

Ну какой смысл в mql5 перебирать ордера или позиции при увеличении их общего количества?

Теоретически советник может иметь все время (после выполнения OnInit) полную информацию об ордерах/позициях/сделках без следующих функций.

OrdersTotal
OrderGetTicket

PositionsTotal
PositionGetTicket

HistorySelect
HistorySelectByPosition

HistoryDealsTotal
HistoryDealGetTicket

HistoryOrdersTotal
HistoryOrderGetTicket