При открытии ордера советник записал ошибку 1, при этом ордер открылся дважды.
В журнале запись об открытии первого ордера (на 0.38 лота) не появилась, но открыт он был.
Советник записал в логе советников об ошибке 1 в 13:23:17 - для чего подгружался stdlib.
Подскажите, пожалуйста, почему могла возникнуть ошибка 1?
Огромное спасибо!
... логе советника - terminal\experts\logs\ или вкладка "Эксперты".
За этот час всего три записи:
2012.10.15 13:23:20 PipJet USDCAD,H1: open #327451984 sell 0.35 USDCAD at 0.97998 sl: 0.98643 tp: 0.97898 ok2012.10.15 13:23:17 PipJet USDCAD,H1: Sell operation failed - error(1): no error attempts: 1
2012.10.15 13:23:17 stdlib USDCAD,H1: loaded successfully
Я правильно понимаю, что в случае возникновения ошибки с кодом 1 функция OrderSend() возвращает значение "-1"?
То есть, при таком коде:
int ticket=OrderSend(...
переменная ticket будет тогда равна "-1", а GetLastError() вернёт "1".
Я правильно понимаю, что в случае возникновения ошибки с кодом 1 функция OrderSend() возвращает значение "-1"?
То есть, при таком коде:
переменная ticket будет тогда равна "-1", а GetLastError() вернёт "1".
GetLastError() вернет код ошибки. Если код ошибки у Вас "1" (ERR_NO_RESULT) значит OrderModify() пытается изменить уже установленные значения такими же значениями. Необходимо изменить одно или несколько значений и повторить попытку.
А вообще то OrderSend() не может вернуть ошибку с кодом "1", только OrderModify().
Файл защищён от декомпиляции (protected).
Я думаю, что PipJet пытался изменить уровни другого открытого им ордера (такой был).
Что неясно, так это почему при отсутствии обрыва связи (соответсвующей записи в журнале нет) не появляются обычные подтверждения сервера брокера
("request was accepted by server
request in process
order was opened ..."),
а сразу идёт запрос на открытие нового ордера:
2012.10.15 13:23:20 '...': instant order sell 0.35 USDCAD at 0.97998 ...
2012.10.15 13:23:17 Expert stdlib USDCAD,H1: loaded successfully
2012.10.15 13:23:16 '...': instant order sell 0.38 USDCAD at 0.97999 ...
stdlib подгрузился, чтобы выдать описание ошибки (слова "no error"), то есть OrderSend() вернул код "-1".
Есть код версии 1.00 (ошибку выдал 1.02), прикрепил.
Выдержки:
Декомпил удален - на первый раз предупреждение
Есть код версии 1.00 (ошибку выдал 1.02), прикрепил.
Выдержки:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Записи в журнале MetaTrader:
2012.10.15 13:40:37 '...': login
2012.10.15 13:40:35 '...': login
2012.10.15 13:23:22 '...': previous successful authorization performed from 66.96.201.143
2012.10.15 13:23:22 '...': login
2012.10.15 13:23:20 '...': order was opened : ... sell 0.35 USDCAD at 0.97998 ...
2012.10.15 13:23:20 '...': request in process
2012.10.15 13:23:20 '...': login
2012.10.15 13:23:20 '...': request was accepted by server
2012.10.15 13:23:20 '...': instant order sell 0.35 USDCAD at 0.97998 ...
2012.10.15 13:23:17 Expert stdlib USDCAD,H1: loaded successfully
2012.10.15 13:23:16 '...': instant order sell 0.38 USDCAD at 0.97999 ...
2012.10.15 13:23:16 '...': previous successful authorization performed from 66.96.201.143
2012.10.15 13:23:15 '...': login
2012.10.15 13:23:12 '...': login
В журнале запись об открытии первого ордера (на 0.38 лота) не появилась, но открыт он был.
Советник записал в логе советников об ошибке 1 в 13:23:17 - для чего подгружался stdlib.
Подскажите, пожалуйста, почему могла возникнуть ошибка 1?
Огромное спасибо!