странный глюк появился в МТ5 v1607, провожу тестирование на реальных тиках, при тестировании в тестере стратегий в обзоре рынка, тестер показывает дату 2017.03.07 и время последнего тика 11:01, однако в лога есть операции уже 2017.03.09, при этом тестер похоже зависает т.к. стоит на месте, у кого подобное было и как лечится?
void CloseAllOrders()
{
bool Ans;
int i=0;
for(i=1; i <=OrdersTotal(); i++)
{
Print("Проход № ", i);
if (OrderSelect(i-1,SELECT_BY_POS)==true)
{
if (OrderSymbol() != Symbol())
continue;
if (OrderType()==0)
{
// Ans=OrderClose(OrderTicket(),OrderLots(), NormalizeDouble(Bid,Digits),25);
}
if (OrderType()==1)
{
// Ans=OrderClose(OrderTicket(),OrderLots(), NormalizeDouble(Ask,Digits),25);
}
}
}
return;
}
В момент запуска функции открыто две позиции Buy. Функция дважды принтует наличие двух ордеров: Проход № 1, Проход № 2.
Снимаем комментарии и запускаем функцию повторно. Она бодро сносит один ордер бай, честно принтует "Проход № 1" и выходит из цикла. Второй ордер остается нетронутым сообщение "Проход № 2" не появляется.
for(i=1; i <=OrdersTotal(); i++) Ордера в этом списке нумеруются от нуля до OrdersTotal()-1 включительно (пусть извинит меня Артем Тришкин, просто сократил ожидание для nys2000).
Vladimir: for(i=1; i <=OrdersTotal(); i++) Ордера в этом списке нумеруются от нуля до OrdersTotal()-1 включительно (пусть извинит меня Артем Тришкин, просто сократил ожидание для nys2000).
Спасибо, но нумерация ордеров с 0 до OrdersTotal()-1 учтена в OrderSelect(i-1,...)
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Expiration не при чем. Сделайте так
Это говорит о баге на самом делеСпасибо за подсказку, так работает.
Почему-то не работает интеллиенс при указании на глобальный контекст, например при вводе
::StringToTime()подсказка появляется только после полного введения имени функции:
В то время как в контексте класса интеллиенс работает:
странный глюк появился в МТ5 v1607, провожу тестирование на реальных тиках, при тестировании в тестере стратегий в обзоре рынка, тестер показывает дату 2017.03.07 и время последнего тика 11:01, однако в лога есть операции уже 2017.03.09, при этом тестер похоже зависает т.к. стоит на месте, у кого подобное было и как лечится?
Вот такой простенький код:
В момент запуска функции открыто две позиции Buy. Функция дважды принтует наличие двух ордеров: Проход № 1, Проход № 2.
Снимаем комментарии и запускаем функцию повторно. Она бодро сносит один ордер бай, честно принтует "Проход № 1" и выходит из цикла. Второй ордер остается нетронутым сообщение "Проход № 2" не появляется.
В чем магия?
В чем магия?
В не верном цикле
А конкретнее, если можно?
А конкретнее, если можно?
начни с нуля
А конкретнее, если можно?
начни с нуля
Это два равноценных варианта. Если for (i=1...), тогда OrderSelect(i-1,...), если for (i=0,...) - OrderSelect(i,...)
for(i=1; i <=OrdersTotal(); i++) Ордера в этом списке нумеруются от нуля до OrdersTotal()-1 включительно (пусть извинит меня Артем Тришкин, просто сократил ожидание для nys2000).
Спасибо, но нумерация ордеров с 0 до OrdersTotal()-1 учтена в OrderSelect(i-1,...)