Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
не работает выбор по символу и маджику
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
{
}
не работает OrderSelect не выбирает ордер (тикет по индексу) для работы с ним, простой пример во вложении и он не работает на мт5 почему-то
не работает выбор по символу и маджику
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
{
}
не работает OrderSelect не выбирает ордер (тикет по индексу) для работы с ним, простой пример во вложении и он не работает на мт5 почему-то
Здравствуйте, вот вопрос имеется у меня, как можно получить данные об ошибках при отправке ордеров для МТ5, в МТ4 варианте это выглядит так
if (CloseError == false)
{
ResetLastError();
error = GetLastError();
Print(" CloseOpenedTrades OrderClose failed" + " - ticket=", OrderTicket() + string(error) + ") " + ErrorDescription(error) + " - ticket= ", OrderTicket());
}
код ошибки содержится в структуре MqlTradeResult, я ведь не смогу использовать вышеприведённый код в МТ5, нед доступа к result, как можно модифицировать mt4orders.mqh для возврата ошибок торгового сервера? спасибо
Здравствуйте, вот вопрос имеется у меня, как можно получить данные об ошибках при отправке ордеров для МТ5, в МТ4 варианте это выглядит так
if (CloseError == false)
{
ResetLastError();
error = GetLastError();
Print(" CloseOpenedTrades OrderClose failed" + " - ticket=", OrderTicket() + string(error) + ") " + ErrorDescription(error) + " - ticket= ", OrderTicket());
}
код ошибки содержится в структуре MqlTradeResult, я ведь не смогу использовать вышеприведённый код в МТ5, нед доступа к result, как можно модифицировать mt4orders.mqh для возврата ошибок торгового сервера? спасибо
Т.е. если произойдёт ошибка при закрытии ордера GetLastError() вернёт код ошибки ( торгового сервера) , даже если мы не будем проверять MqlTradeResult Result; Result.retcode в OrderSend(Request, Result)?
Да, это не сложно реализовать.
if (CloseError == false)
{
ResetLastError();
error = GetLastError();
Print(" CloseOpenedTrades OrderClose failed" + " - ticket=", OrderTicket() + string(error) + ") " + ErrorDescription(error) + " - ticket= ", OrderTicket());
}
Не понял смысл выделенного.
Да, это не сложно реализовать.
Не понял смысл выделенного.
так было в советнике для мт4
Вы говорите не сложно реализовать, а по факту GetLastError() может вернуть ошибку торгового сервера, если ордер не отправится, без анализа структуры MqlTradeResult.
Просто можно дописать проверку в:
{
MqlTradeResult Result;
if (::OrderSend(Request, Result) || Result.retcode != TRADE_RETCODE_DONE)
{
Print("OrderSend() error: ", ResultRetcodeDescription(Result.retcode));
return(false);
}
else
{
return(true);
}
//return(MT4ORDERS::OrderSend(Request, Result) ? Result.retcode < TRADE_RETCODE_ERROR : false);
}
но нужно ли так делать, если GetLastError() может и так работать?
так было в советнике для мт4
Тогда там ошибка в логике.
Вы говорите не сложно реализовать, а по факту GetLastError() может вернуть ошибку торгового сервера, если ордер не отправится, без анализа структуры MqlTradeResult.
Просто можно дописать проверку в:
{
MqlTradeResult Result;
if (::OrderSend(Request, Result) || Result.retcode != TRADE_RETCODE_DONE)
{
Print("OrderSend() error: ", ResultRetcodeDescription(Result.retcode));
return(false);
}
else
{
return(true);
}
//return(MT4ORDERS::OrderSend(Request, Result) ? Result.retcode < TRADE_RETCODE_ERROR : false);
}
но нужно ли так делать, если GetLastError() может и так работать?
Не понял Вас. Ваша реализация в if содержит ошибку. Более того, есть еще такое понятие, как TRADE_RETCODE_DONE_PARTIAL - это успешное выполнение OrderSend.
И даже если исправить Ваш код, то он только выведет в журнал сообщение об ошибке (а кто-то еще может не хотеть каждый раз это видеть). Но в MQL оно будет НЕ доступно.
Поэтому вариант, когда GetLastError возвращает и стандартные ошибки времени выполнения и дополнительные коды возврата торгового сервера, видится самым оптимальным.