Уважаемые разработчики!
Если Вам затруднительно ответить на 1-ый вопрос, то пожалуйста,
в любом случае, ответьте на второй.
Уважаемые разработчики!
Не слишком ли частые стали сбои?
Раньше ОДНОГО события TradeTransaction не было 1 раз в два месяца, а сейчас
сами видите сколько (с учётом четверга).....
2015.07.29 10:00:24.229 Forts_trader (GBPU-9.15,H1) CheckOrders: Sell ордер установлен. Билет = 17136673 2015.07.29 10:00:21.654 Forts_trader (GBPU-9.15,H1) CheckOrders: Попытка 2 получить билет Sell ордера! 2015.07.29 10:00:20.641 Forts_trader (GBPU-9.15,H1) CheckOrders: Попытка 1 получить билет Sell ордера! 2015.07.29 10:00:20.640 Forts_trader (GBPU-9.15,H1) CheckOrders: Buy ордер установлен. Билет = 17136671
1. Логи будут более читаемы если помимо словесного описания добавить код ошибки.
2. Судя по всему проблемы в подключении шлюза на стороне брокера - брокера уведомим и будем разбираться.
1. Логи будут более читаемы если помимо словесного описания добавить код ошибки.
2. Судя по всему проблемы в подключении шлюза на стороне брокера - брокера уведомим и будем разбираться.
"Неправильный запрос" - это:
10013 | TRADE_RETCODE_INVALID | Неправильный запрос |
В функции CheckError() вчера добавил номер билета (для большей информативности).
Стало:
default: Print( err_msg, " Билет = ", a_ticket, " ", GetRetCode( ret_code ) );
Было:
default: Print( err_msg, " ", GetRetCode( ret_code ) );
//+------------------------------------------------------------------+ // Expert Check Error function | //+------------------------------------------------------------------+ void CheckError( const uint ret_code, const string err_msg, const ENUM_ORD_STATUS ord_status, const ulong a_ticket ) { switch( ret_code ) { case 10017: case 10018: case 10019: case 10021: // case 10024: case 10026: case 10027: StopTrading( err_msg + " " + GetRetCode( ret_code ), a_ticket ); break; case 10015: switch( ord_status ) { case BUY_ORDER: BuyOrder.EasyRemove(); break; case SELL_ORDER: SellOrder.EasyRemove(); break; } StopTrading( err_msg + " " + GetRetCode( ret_code ), a_ticket ); break; default: Print( err_msg, " Билет = ", a_ticket, " ", GetRetCode( ret_code ) ); break; } }
//+------------------------------------------------------------------+ //| Expert Get retcode function | //+------------------------------------------------------------------+ string GetRetCode( const uint code ) { string retcode; switch( code ) { case 10004: retcode = "Реквота"; break; case 10006: retcode = "Запрос отвергнут"; break; case 10007: retcode = "Запрос отменен трейдером"; break; case 10008: retcode = "Ордер размещен"; break; case 10009: retcode = "Заявка выполнена"; break; case 10010: retcode = "Заявка выполнена частично"; break; case 10011: retcode = "Ошибка обработки запроса"; break; case 10012: retcode = "Запрос отменен по истечению времени"; break; case 10013: retcode = "Неправильный запрос"; break; case 10014: retcode = "Неправильный объем в запросе"; break; case 10015: retcode = "Неправильная цена в запросе"; break; case 10016: retcode = "Неправильные стопы в запросе"; break; case 10017: retcode = "Торговля запрещена"; break; case 10018: retcode = "Рынок закрыт"; break; case 10019: retcode = "Нет достаточных денежных средств для выполнения запроса"; break; case 10020: retcode = "Цены изменились"; break; case 10021: retcode = "Отсутствуют котировки для обработки запроса"; break; case 10022: retcode = "Неверная дата истечения ордера в запросе"; break; case 10023: retcode = "Состояние ордера изменилось"; break; case 10024: retcode = "Слишком частые запросы"; break; case 10025: retcode = "В запросе нет изменений"; break; case 10026: retcode = "Автотрейдинг запрещен сервером"; break; case 10027: retcode = "Автотрейдинг запрещен клиентским терминалом"; break; case 10028: retcode = "Запрос заблокирован для обработки"; break; case 10029: retcode = "Ордер или позиция заморожены"; break; case 10030: retcode = "Указан неподдерживаемый тип исполнения ордера по остатку"; break; case 10031: retcode = "Нет соединения с торговым сервером"; break; case 10032: retcode = "Операция разрешена только для реальных счетов"; break; case 10033: retcode = "Достигнут лимит на количество отложенных ордеров"; break; case 10034: retcode = "Достигнут лимит на объем ордеров и позиций для данного символа"; break; case 10035: retcode = "Неверный или запрещённый тип ордера"; break; case 10036: retcode = "Позиция с указанным POSITION_IDENTIFIER уже закрыта"; break; default: retcode = "Нет кода возврата."; break; } return( retcode ); }
Господа разработчики!
Теперь сбои каждый день будут?
2015.08.05 13:30:01.700 Forts_trader (URKA-9.15,H1) CheckOrders: Попытка 1 получить билет Sell ордера! 2015.08.05 13:30:02.715 Forts_trader (URKA-9.15,H1) CheckOrders: Попытка 2 получить билет Sell ордера! 2015.08.05 13:30:03.728 Forts_trader (URKA-9.15,H1) CheckOrders: Попытка 3 получить билет Sell ордера! 2015.08.05 13:30:05.757 Forts_trader (URKA-9.15,H1) CheckOrders: Sell ордер установлен. Билет = 18366307 2015.08.05 13:30:10.841 Forts_trader (URKA-9.15,H1) CheckOrders: Sell ордер не удалён! Билет = 18366307 2015.08.05 13:32:21.679 Forts_trader (SNGR-9.15,H1) CheckOrders: Попытка 1 получить билет Sell ордера! 2015.08.05 13:32:23.707 Forts_trader (SNGR-9.15,H1) CheckOrders: Sell ордер установлен. Билет = 18366510 2015.08.05 13:45:02.603 Forts_trader (MIX-9.15,M1) OnTradeTransaction: Фунция FastBuySell выполнена. 2015.08.05 13:45:02.603 Forts_trader (MIX-9.15,M1) OnTradeTransaction: Сделка совершена Main ордер. Билет = 18367035 2015.08.05 13:45:02.638 Forts_trader (MIX-9.15,M1) OnTradeTransaction: Сделка совершена Main ордер. Билет = 18367036 2015.08.05 13:45:09.599 Forts_trader (MIX-9.15,M1) OnTradeTransaction: Фунция FastBuySell выполнена. 2015.08.05 13:45:09.599 Forts_trader (MIX-9.15,M1) OnTradeTransaction: Сделка совершена Main ордер. Билет = 18367042 2015.08.05 13:45:09.626 Forts_trader (MIX-9.15,M1) OnTradeTransaction: Сделка совершена Main ордер. Билет = 18367043 2015.08.05 14:00:30.452 Forts_trader (SBRF-9.15,M1) Сейчас 2015.08.05 14:00, если есть необходимость, можно закрыть терминал. 2015.08.05 15:14:58.820 Forts_trader (PLT-9.15,H1) CheckOrders: Sell ордер не удалён! Билет = 18370045 2015.08.05 15:14:58.821 Forts_trader (UCHF-9.15,H1) CheckOrders: Sell ордер модифицирован. Билет = 18367699 2015.08.05 15:14:58.821 Forts_trader (UJPY-9.15,H1) CheckOrders: Попытка 1 получить билет Buy ордера! 2015.08.05 15:14:58.824 Forts_trader (AUDU-9.15,H1) CheckOrders: Попытка 1 получить билет Buy ордера! 2015.08.05 15:14:59.835 Forts_trader (UJPY-9.15,H1) CheckOrders: Попытка 2 получить билет Buy ордера! 2015.08.05 15:14:59.836 Forts_trader (AUDU-9.15,H1) CheckOrders: Попытка 2 получить билет Buy ордера! 2015.08.05 15:15:01.862 Forts_trader (UJPY-9.15,H1) CheckOrders: Buy ордер установлен. Билет = 18370075 2015.08.05 15:15:01.862 Forts_trader (GBPU-9.15,H1) CheckOrders: Buy ордер модифицирован. Билет = 18370040 2015.08.05 15:15:02.961 Forts_trader (UJPY-9.15,H1) CheckOrders: Buy ордер модифицирован. Билет = 18370075 2015.08.05 15:15:02.961 Forts_trader (AUDU-9.15,H1) CheckOrders: Buy ордер не удалён! Билет = 18370076 2015.08.05 15:15:02.962 Forts_trader (UJPY-9.15,H1) CheckOrders: Попытка 1 получить билет Sell ордера! 2015.08.05 15:15:05.405 Forts_trader (UJPY-9.15,H1) CheckOrders: Sell ордер установлен. Билет = 18370112 2015.08.05 15:42:08.999 Forts_trader (UJPY-9.15,H1) Исчерпан лимит установки ордеров Sell по инструменту! 2015.08.05 15:51:54.757 Forts_trader (GBPU-9.15,H1) Исчерпан лимит установки ордеров Sell по инструменту! 2015.08.05 16:13:28.503 Forts_trader (PLT-9.15,H1) Исчерпан лимит установки ордеров Sell по инструменту! 2015.08.05 16:38:04.958 Forts_trader (BR-10.15,H1) CheckOrders: Sell ордер не удалён! Билет = 18374746 2015.08.05 17:47:24.441 Forts_trader (URKA-9.15,H1) CheckOrders: Buy ордер модифицирован. Билет = 18379569
Было же ВСЁ нормально!
Сегодня опять:
2015.08.06 10:00:11.701 Forts_trader (MIX-9.15,M1) CheckOrders: Sell ордер установлен. Билет = 18394383 2015.08.06 10:00:11.701 Forts_trader (LKOH-9.15,H1) CheckOrders: Buy ордер установлен. Билет = 18394382 2015.08.06 10:00:11.701 Forts_trader (GAZR-9.15,M1) CheckOrders: Buy ордер установлен. Билет = 18394381 2015.08.06 10:00:11.701 Forts_trader (LKOH-9.15,H1) CheckOrders: Попытка 1 получить билет Sell ордера! 2015.08.06 10:00:11.711 Forts_trader (SNGP-9.15,H1) CheckOrders: Попытка 1 получить билет Buy ордера! 2015.08.06 10:00:11.711 Forts_trader (SNGP-9.15,H1) CheckOrders: Попытка 1 получить билет Sell ордера! 2015.08.06 10:00:12.730 Forts_trader (LKOH-9.15,H1) CheckOrders: Попытка 2 получить билет Sell ордера! 2015.08.06 10:00:12.732 Forts_trader (MGNT-9.15,H1) CheckOrders: Buy ордер установлен. Билет = 18394385 2015.08.06 10:00:12.732 Forts_trader (ROSN-9.15,H1) CheckOrders: Sell ордер установлен. Билет = 18394384 2015.08.06 10:00:12.732 Forts_trader (SNGP-9.15,H1) CheckOrders: Попытка 2 получить билет Buy ордера! 2015.08.06 10:00:12.732 Forts_trader (SNGP-9.15,H1) CheckOrders: Попытка 2 получить билет Sell ордера! 2015.08.06 10:00:14.758 Forts_trader (MIX-9.15,M1) CheckOrders: Sell ордер модифицирован. Билет = 18394383 2015.08.06 10:00:14.758 Forts_trader (LKOH-9.15,H1) CheckOrders: Sell ордер установлен. Билет = 18394386 2015.08.06 10:00:14.758 Forts_trader (ED-9.15,M1) CheckOrders: Попытка 1 получить билет Sell ордера! 2015.08.06 10:00:14.760 Forts_trader (MGNT-9.15,H1) CheckOrders: Buy ордер модифицирован. Билет = 18394385 2015.08.06 10:00:14.760 Forts_trader (ROSN-9.15,H1) CheckOrders: Buy ордер модифицирован. Билет = 18394380 2015.08.06 10:00:14.760 Forts_trader (SNGP-9.15,H1) CheckOrders: Buy ордер установлен. Билет = 18394387 2015.08.06 10:00:14.760 Forts_trader (SNGP-9.15,H1) CheckOrders: Sell ордер установлен. Билет = 18394388 2015.08.06 10:00:15.260 Forts_trader (SNGR-9.15,H1) CheckOrders: Попытка 1 получить билет Buy ордера! 2015.08.06 10:00:15.260 Forts_trader (SNGR-9.15,H1) CheckOrders: Попытка 1 получить билет Sell ордера! 2015.08.06 10:00:17.609 Forts_trader (ED-9.15,M1) CheckOrders: Sell ордер установлен. Билет = 18394399 2015.08.06 10:00:17.609 Forts_trader (SNGR-9.15,H1) CheckOrders: Buy ордер установлен. Билет = 18394411 2015.08.06 10:00:17.609 Forts_trader (SNGR-9.15,H1) CheckOrders: Sell ордер установлен. Билет = 18394412
Господа разработчики!
Теперь сбои каждый день будут?
Было же ВСЁ нормально!
не знает никто кроме вас.
Это касается обоих фрагментов журнала за 5 и за 6 августа.
Также желательно прикладывать фрагмент основного лога терминала за соответствующее время, для того чтобы видеть что в реальности делал терминал.
Пожалуйста, чётко формулируйте проблему в каждом конкретном случае, что не приходилось догадываться - внутренней логики вашего эксперта, и его принципов журналирования
не знает никто кроме вас.
Это касается обоих фрагментов журнала за 5 и за 6 августа.
Странно, а я думал, что выложенный мною код как раз и показывает принципы журналирования.
ЧЁТКО: Во всех случаях нет события TradeTransaction!
А когда его нет, то срабатывает функция CheckOrders() ( https://www.mql5.com/ru/blogs/post/557544 )
P/S Интересная особенность!
Каждый раз, когда появляется (выявляется) новая ошибка, сотрудники MQ начинают говорить,
что не чётко сформулирована проблема. Потом недостаточно данных, потом не можем воспроизвести,
потом (много времени) обсуждаем, потом ВСЕГДА - один и тот же результат:
1. Признание наличия ошибки
2. Обещание исправить (многие до сих пор исправляются.....)
Очень печально всё это - я уже устал работать у Вас тестером ПО на реальном счёте.
Загляните Огромные задержки, при исполнении приказов
Ошибки, MetaTrader 5 MQL5, Открыта, Начата: 2015.08.06 13:09, #1276321
я думаю, что эти ошибки взаимосвязаны.

- 2015.04.29
- Михаил
- www.mql5.com
Очень печально всё это - я уже устал работать у Вас тестером ПО на реальном счёте.
Не плохо было чтобы Вы поработали в команде https://www.metaquotes.net/ru/company/vacancies - возможно, много бы косяков устранили)
А сейчас сезон отпусков - разработчики на расслабоне, а Ренат, возможно, где- нибудь в Ницце на пляжу коктейль потягивает - и ему по )
- www.metaquotes.net

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день!
Билд терминала 1157, реальный счёт.
Сегодня, после клиринга, произошел сбой (продолжался несколько минут: 19:11:02.265 - 19:19:10.853 ):
Функция CheckOrders() срабатывает, если нет события TradeTransaction (https://www.mql5.com/ru/blogs/post/557544).
Реализация функции Remove():
Вопросы:
1. Почему, при наличии активного ордера ( if ( OrderSelect( ticket ) ) ), не был отослан запрос на его удаление( Неправильный запрос )?
( подобный сбой ранее не наблюдался в течении года работы эксперта, как и не изменялась функция Remove() )
2. Планируете ли Вы дать возможность программно подключиться к другому серверу?