Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
код ошибки - что делать
код ошибки - что делать
Поддерживаю. Разве обязательно наступать на все грабли, если кто-то знает, как их обойти. А ещё лучше- завести ветку для разработки типовой функции торговой операции. Я так понимаю, что если разработчики выложат пример, то на них будет висеть ответственность за правильное исполнение, поэтому не выкладывают. Так давайте вместе, во главе с Метаквотес, разработаем максимально работоспособную функцию, потестируем её у разных брокеров и будем пользоваться. Я для этой цели советничка написал, который тупо каждые 5 минут открывает-закрывает позиции, и на разных счетах использует разные библиотеки торговых функций. Слежу- пытаюсь выяснить, какой вариантр меньше сбоев даёт.И ещё- один знакомый писал, что у него проблемы с двой ным открытием у одного брокера, а у другого нет. Так что это ещё и от брокера зависит.
Я уже несколько раз об этом говорил.
Требуется рекомендуемый разработчиками набор типовых торговых решений.
+ посвящённая этому статья.
Плиз, конкретно, табличку:
код ошибки - что делать
Я тоже это поддерживаю. Но в данном случае мы вернемся к тому с чего начали. Фактически нам нужно одно - точно знать исполнился ордер или нет. Если у нас будет инфомация что при каких то кодах ошибок ордер точно не выставился, а при каких то - может быть да а может быть и нет - то такая информация не имеет смысла, т.к. все равно придется производить обработку ордеров какими то кустарными средствами.
Ваше слово, господа Квотовцы...
Ваше слово, господа Квотовцы...
Все типы ошибок есть в документации. Реагировать с повтором сделки надо только на самые простые типа неправильных цен.
Приведу упрощенные рекомендации по основным ошибкам в трейдинге:
ERR_TRADE_TIMEOUT - дилер/сервер не ответили, можно попытаться повторить сделку через некоторое время (например, минуту, а не через 5 сек)
ERR_TOO_FREQUENT_REQUESTS или ERR_TOO_MANY_REQUESTS - излишне частые запросы на сделки, надо уменьшить частоту запросов, это четко указывает на ошибки в логике эксперта/экспертов
ERR_INVALID_PRICE - неправильные цены bid/ask, зачастую из-за того, что трейдер забывает об обновлении рыночной информации через RefreshRates после задержек. однозначно указывает на серьезнейшие ошибки в эксперте. после таких ошибок практически надо останавливать трейдинг и разбираться в коде.
ERR_INVALID_STOPS - слишком близкие стопы или откровенно неправильные цены в стопах (take profit, stop loss или open price в отложенных ордерах), практически нельзя повторять торговую команду, если только нет 100% гарантии, что это произошло из-за устаревания цены.
ERR_INVALID_TRADE_VOLUME - ошибка в грануляции объемов, ни в коем случае нельзя повторять сделку
ERR_MARKET_CLOSED - рынок закрыт, можно попробовать сделку, но только через достаточно большой срок (несколько минут)
ERR_TRADE_DISABLED - торговля по инструменту полностью запрещена, повторять сделку нельзя ни в коем случае.
ERR_NOT_ENOUGH_MONEY - денег не хватает, повторять сделку с теми же параметрами категорически нельзя. можно повторить, уменьшив объем, но надо быть уверенным в достаточности средств и правильной грануляции объема.
ERR_PRICE_CHANGED или ERR_REQUOTE - реквот - цена обновилась, имеет смысл обновить рыночное окружение и попробовать заново, можно даже без задержек.
ERR_OFF_QUOTES или ERR_BROKER_BUSY - дилер по какой-то причине (например, в начале сессии цен нет, не подтвержденные цены, fast market) не дал цен или отказал. имеет смысл повторить сделку через небольшой период времени (от 5 сек) на обновленном рыночном окружении
ERR_ORDER_LOCKED - ордер заблокирован и уже обрабатывается, похоже на явную ошибку в логике эксперта или в самом терминале MT4, лучше ничего не повторять, а выйти
ERR_LONG_POSITIONS_ONLY_ALLOWED - разрешена только покупка, повторять sell ни в коем случае нельзя
ERR_TRADE_MODIFY_DENIED - модификация запрещена, так как ордер слишком близок к рынку и исполнению, можно попробовать через некоторый промежуток времени (секунд через 10-15, но ни в коем случае не сразу)
ERR_TRADE_CONTEXT_BUSY - торговый поток занят, необходимо использовать IsTradeAllowed(), явно требуется переписать эксперт с учетом занятости потока
ERR_TRADE_EXPIRATION_DENIED - запрещено использовать поле expiration в отложенных ордерах, потоврить операцию можно только если убрать expiration.
Эти рекомендации достаточно упрощенные, если нужны уточнения - спрашивайте, пожалуйста.