Aleksey Mavrin:
Почему решили что именно тип исполнения по заливке вызвал ошибку? Может другие варианты тип по времени действия например?
Я выше привёл код, который находится в конце моей функции, которая открывает рыночные ордера:
if (m_result.order < 1) { writeLog(MESSAGE_ERROR, __FUNCTION__ + " { position wasn't sent! " + "m_result.retcode = '" + iToS(m_result.retcode) + "' | " + "orderType = '" + EnumToString(m_request.type) + "' | " + "orderPrice = '" + dToS(m_request.price) + "' | " + "sl = '" + dToS(m_request.sl) + "' | " + "tp = '" + dToS(m_request.tp) + "' | " + "typeFilling = '" + (string)ENUM_ORDER_TYPE_FILLING(m_request.type_filling) + "' | " + "spread = '" + dToS(m_symbol.spread()) + "' }"); if (_LastError > 0) //---- Контролируем возможные ошибки writeLog(MESSAGE_ERROR, __FUNCTION__ + " { _LastError = '" + iToS(_LastError) + "' }"); return false; }
Так вот после пачки ошибок:
2020.12.16 23:42:40.742 2020.01.03 08:00:02 failed market sell 0.001 EURUSD sl: 1.12462 tp: 1.07462 [Invalid volume]
***
***
***
2020.12.16 23:42:40.742 2020.01.03 08:00:03 failed market sell 0.001 EURUSD sl: 1.12462 tp: 1.07462 [Invalid volume]
Я вижу, что writeLog() принтует в журнал следующее:
2020.12.16 23:42:40.742 2020.01.03 08:00:03 PositionsHandling::open { position wasn't sent! m_result.retcode = '10014' | orderType = 'ORDER_TYPE_SELL' | orderPrice = '1.11662' | sl = '1.12462' | tp = '1.07462' | typeFilling = '1' | spread = '0.00003' } 2020.12.16 23:42:40.742 2020.01.03 08:00:03 PositionsHandling::open { _LastError = '4756' }
Здесь видно, что в ходе отправки ордера произошла ошибка 4756 т.е. «Не удалось отправить торговый запрос«, а значение m_result.retcode = 10014 т.е. не правильный объём. Очевидно, что проблема в лоте. Как ещё это можно понимать?
Ещё нужно обратить внимание на значение typeFilling = 1, соответствующее перечислению (SYMBOL_FILLING_FOK)
Теперь, я ради эксперимента, непосредственно перед отправкой ордера присваиваю значение типа заливки ордера 2, соответствующее перечислению SYMBOL_FILLING_IOC. Делаю я это вот так:
m_request.type_filling = SYMBOL_FILLING_IOC;
Вот что вернёт функция writeLog() после отправки ордера:
2020.12.16 23:54:50.920 2020.01.03 08:00:03 PositionsHandling::open { position wasn't sent! m_result.retcode = '10030' | orderType = 'ORDER_TYPE_SELL' | orderPrice = '1.11662' | sl = '1.12462' | tp = '1.07462' | typeFilling = '2' | spread = '0.00003' } 2020.12.16 23:54:50.920 2020.01.03 08:00:03 PositionsHandling::open { _LastError = '4756' }
.Вижу, что ошибка возвращаемая посредством m_result.retcode на сей раз другая, а точнее 10030 т.е. «Указан неподдерживаемый тип исполнения ордера по остатку «.
Вот я и показал, что как не задай, всё равно ордер не выставить.
Please refer to the updated Error Guide here:
https://docs.pineconnector.com/error
Here are some common issues faced by your other retail trader buddies.
For MetaTrader Error Codes (130, 4756 etc), please click below to see more information.
If you see the expiration date on your MetaTrader terminal, but are not receiving signals,
the issue is likely on your TradingView’s setup
Please go through the list of potential causes and ensure that your alerts are configured correctly.
Potential Causes | Remarks & Remedies |
---|---|
Incorrect License ID | In your Syntax, ensure your License ID indicated in your alert message matches your License ID that you input in your MetaTrader terminal |
Incorrect Syntax Formatting | Spacing between your texts and commasInvalid: 5123456789012 , buy , EURUSD , risk=1 Valid: 5123456789012,buy,EURUSD,risk=1 |
Incorrect Syntax Formatting | Multiple License IDsInvalid: 512345,6789012,buy,EURUSD,risk=1 Valid: 512345,buy,EURUSD,risk=1 |
Invalid Syntax Command | Ensure commands used are as per the Syntax GuideInvalid: 5123456789012,long,EURUSD Valid: 5123456789012,buy,EURUSD,risk=1 |
Misspelling in Syntax | Ensure that parameters are all typed out correctlyInvalid: 5123456789012,buy,EURUSD,rsik=1,trialdist=20 Valid: 5123456789012,buy,EURUSD,risk=1,traildist=20 |
Accidental Inclusions in Syntax | Ensure that there are no accidental letters or symbols in your syntaxInvalid: 5123456789012,buy,EURUSD,risk=1,sl=5} Valid: 5123456789012,buy,EURUSD,risk=1,sl=5 |
Incorrect Webhook Address | Ensure that you are linking the alerts to the appropriate webhook addressInvalid: http://pineconnector.net/webhook/ Valid: https://pineconnector.net/webhook/ |
Incorrect Alerts Setup | If you see an arrow on your TV chart without an accompanying alert in the alerts log, it means your alert trigger might be incorrectly configured.
Please check your Alerts Log on your TradingView terminal. Important: The comparison should be between your TradingView’s alerts log and your MetaTrader’s Experts Tab (and not your chart). |
Value | Description | Errors & Remarks |
---|---|---|
130 | Invalid Stops |
ERR_INVALID_STOPS
You might have sent an alert in pips while your EA setting is set to price. Alternatively, your SL is higher or TP is lower than your current price for long trades and vice versa. Please check your EA settings – it might be in pips target when you intend for price targets and vice versa. Ensure that your SL and TP are not too close. You may check the minimum stops of the symbol in the symbol list under «Stops level». If you are sending pending orders, please ensure that your entry price is not too close. Since there is a small mismatch in prices when comparing TV and MT4 quotes, we recommend that you use «price=» based on pips. |
131 | Invalid Trade Volume |
ERR_INVALID_TRADE_VOLUME
Ensure minimum and incremental volume supported by broker. |
132 | Market is Closed |
ERR_MARKET_CLOSED
TGIF, no more trading! |
133 | Trade is Disabled |
ERR_TRADE_DISABLED
Symbol restricted by broker. Ensure that Live Trading is Allowed, and that the Symbol used is exactly as per your Symbol List (CTRL+U) |
134 | Trade is Disabled |
ERR_NOT_ENOUGH_MONEY
You are probably trying to open a position too large whereby you have insufficient free margin. Please use a smaller “risk=“ value or use the appropriate Volume Type. |
4017 | DLL calls are not allowed |
ERR_DLL_CALLS_NOT_ALLOWED
Allow DLL calls in your EA and options. |
4051 | Invalid Function Parameter Value |
ERR_INVALID_FUNCTION_PARAMETER_VALUE
Please ensure that you have a «risk=» in your syntax. Kindly note the the «risk=» parameter is required for entry commands (buy, sell, buystop, sellstop, buylimit, selllimit) |
4106 | Unknown Symbol |
ERR_UNKNOWN_SYMBOL
Please ensure that you are using the exact symbol as per your Symbol List (CTRL+U on your MT4). Please note that the symbol is case sensitive. |
4109 | Trade is not allowed |
ERR_TRADE_NOT_ALLOWED
Allow automated trading. Please check the following: After checking (1) and (2), the face at the top right corner of your chart should be smiling. |
Varied | Array not in range | Please contact support through our email or LiveChat including the PineConnector EA version and the 2 numbers in the brackets (xx,xx) that came with the Error. |
For a full list of MetaTrader 4 (MQL4) errors, please refer HERE.
Value | Description | Errors & Remarks |
---|---|---|
4752 | Trading by Expert Advisors prohibited | Allow trading in the EA properties. |
4756 | Trade request sending failed |
ERR_TRADE_SEND_FAILED
On your MT5 Terminal, please go to the «Journal» tab at the bottom and look for the Error. It should indicate «Unsupported Filling Mode», «No Prices» or «Invalid Request». 1. Unsupported filling mode Please ensure you are using the latest MT5 EA available. In the EA Settings (F7 on your MetaTrader terminal), under «Broker Set», select «Broker Set B». 2. No prices 3. Invalid request There might be a character before or after the symbol such as «$», «#», «S», etc 4. Trade Disabled There might be a character before or after the symbol such as «$», «#», «S», etc 5. Invalid Expiration |
Varied | Array not in range | Please contact support through our email or LiveChat including the PineConnector EA version and the 2 numbers in the brackets (xx,xx) that came with the Error. |
For a full list of MetaTrader 5 (MQL5) errors, please refer HERE.
Invalid filling mode
Magic Keys Agent
Last Update há 7 meses
Error 4756 is an INVALID_FILL error. That means you have to change the Filling Mode from the EA parameters. Filling mode changes the way your order is handled and it differs from broker to broker. What you have to do is go to the parameters window (right-click on chart -> experts -> Properties or just press F7) and change the fillinf mode to ORDER_FILLING_IOC or ORDER_FILLING_FOK.
Error 4756 si an INVALID_FILL error. That means you have to change the filling mode from the EA parameters. Filling mode changes the way your order is handled and it differs from broker to broker. What you have to do is go to the parameters window (right-click on chart -> Experts -> Properties or just press F7) and change the filling mode to ORDER_FILLING_IOC or ORDER_FILLING_FOK.
Was this article helpful?
0 out of 18 liked this article
apt.ru
Timeweb — компания, которая размещает проекты клиентов в Интернете, регистрирует адреса сайтов и предоставляет аренду виртуальных и физических серверов. Разместите свой сайт в Сети — расскажите миру о себе!
Виртуальный хостинг
Быстрая загрузка вашего сайта, бесплатное доменное имя, SSL-сертификат и почта. Первоклассная круглосуточная поддержка.
Аренда VDS и VPS
Виртуальные серверы с почасовой оплатой. Меняйте конфигурацию сервера в любой момент и в пару кликов.
Выделенные серверы
Аренда физических серверов любых конфигураций — готовые сборки или под заказ.
Содержание
- Причина возникновения ошибки 4756
- Ошибка 4756 — страница 2
- OrderSend error 4756 _-_ Unsupported filling mode
- Error 4756 (ERR_TRADE_SEND_FAILED) using «Instant Execution» requests
- error 4756
У меня такая ошибка возникает из-за кривого контроля величины выставляемых стопов.
У меня такая ошибка возникает из-за кривого контроля величины выставляемых стопов.
Как Вы определили, что это реквоты?
Эта ошибка возникает при неудаче OrderSend. А что конкретно там произошло, можно выяснить, проанализировав код возврата торгового сервера. Об этом явно сказано в описании функции OrderSend
Как Вы определили, что это реквоты?
Эта ошибка возникает при неудаче OrderSend. А что конкретно там произошло, можно выяснить, проанализировав код возврата торгового сервера. Об этом явно сказано в описании функции OrderSend
ну у меня в логах тестера пишет:
2010.07.30 12:05:26 Core 1 price corrected from 1.23434 to 1.23437, deviation: 10 (instant sell 4.00 EURUSD at 1.23434 sl: 1.23634 tp: 1.21934)(1.23437 / 1.23452 / 1.23437)
2010.07.30 12:05:25 Core 1 requote 1.23431 / 1.23446 / 1.23431 (instant sell 4.00 EURUSD at 1.23443 sl: 1.23643 tp: 1.21943)
ну у меня в логах тестера пишет:
2010.07.30 12:05:26 Core 1 price corrected from 1.23434 to 1.23437, deviation: 10 (instant sell 4.00 EURUSD at 1.23434 sl: 1.23634 tp: 1.21934)(1.23437 / 1.23452 / 1.23437)
2010.07.30 12:05:25 Core 1 requote 1.23431 / 1.23446 / 1.23431 (instant sell 4.00 EURUSD at 1.23443 sl: 1.23643 tp: 1.21943)
Реквота тут совершенно не причём и возникает уже при следующем вызове OrderSend().
Стопы также достаточные: 200 и 500 пипсов
Цена также влазит в deviation в данном случае
ERR_TRADE_SEND_FAILED 4756 Не удалось отправить торговый запрос
А вообще то у Вас сделки совершаются ?
Источник
Ошибка 4756 — страница 2
Почему решили что именно тип исполнения по заливке вызвал ошибку? Может другие варианты тип по времени действия например?
Я выше привёл код, который находится в конце моей функции, которая открывает рыночные ордера:
Так вот после пачки ошибок:
2020.12.16 23:42:40.742 2020.01.03 08:00:02 failed market sell 0.001 EURUSD sl: 1.12462 tp: 1.07462 [Invalid volume]
2020.12.16 23:42:40.742 2020.01.03 08:00:03 failed market sell 0.001 EURUSD sl: 1.12462 tp: 1.07462 [Invalid volume]
Я вижу, что writeLog() принтует в журнал следующее:
Здесь видно, что в ходе отправки ордера произошла ошибка 4756 т.е. «Не удалось отправить торговый запрос «, а значение m_result.retcode = 10014 т.е. не правильный объём. Очевидно, что проблема в лоте. Как ещё это можно понимать?
Ещё нужно обратить внимание на значение typeFilling = 1, соответствующее перечислению (SYMBOL_FILLING_FOK)
Теперь, я ради эксперимента, непосредственно перед отправкой ордера присваиваю значение типа заливки ордера 2, соответствующее перечислению SYMBOL_FILLING_IOC. Делаю я это вот так:
Вот что вернёт функция writeLog() после отправки ордера:
.Вижу, что ошибка возвращаемая посредством m_result.retcode на сей раз другая, а точнее 10030 т.е. «Указан неподдерживаемый тип исполнения ордера по остатку «.
Вот я и показал, что как не задай, всё равно ордер не выставить.
Я выше привёл код, который находится в конце моей функции, которая открывает рыночные ордера:
Так вот после пачки ошибок:
Я вижу, что writeLog() принтует в журнал следующее:
Здесь видно, что в ходе отправки ордера произошла ошибка 4756 т.е. «Не удалось отправить торговый запрос «, а значение m_result.retcode = 10014 т.е. не правильный объём. Очевидно, что проблема в лоте. Как ещё это можно понимать?
Очевидно неправильный объём не связан с режимом заливки. Ну да о чём я))
объём 0,001 лота поддерживается на счёте? если нет значит причина в нём.
Очевидно неправильный объём не связан с режимом заливки. Ну да о чём я))
объём 0,001 лота поддерживается на счёте? если нет значит причина в нём.
Интересно. В настройках явно на один ноль после запятой меньше. А, по факту, больше. На Альпари всё так работает. На FXOpen нет. В общем, я уже сонный. Завтра принтатну в чём так косяк. Может реально не в этом дело, а я загнался.
Интересно. В настройках явно на один ноль после запятой меньше. А, по факту, больше. На Альпари всё так работает. На FXOpen нет. В общем, я уже сонный . Завтра принтатну в чём так косяк. Может реально не в этом дело, а я загнался.
Должен пошутить, ничего личного, просто долг)
шутка вообщем такая: Судя по тому что на ошибку [Invalid volume] вы сразу не проверили собственно volume, сонный вы часто и уже давно. ха-ха-ха, зал апплодирует) Высыпайтесь, полезно для здоровья.
В таком случае, нужно было не терять своё драгоценное время и не писать такие бестолковые комментарии. Это разгоовр ни о чём. Я задал конкретный вопрос. Это не просьба дать мне готовый клас или функцию, а лишь пояснить как это работает. Соответственно, вопрос задан тем, кто понимает как это работает, а не тем, кто способен лишь добавить включаемый файл.
В той одной строке инклуда и ответ на ваш вопрос есть.
Зря пытаетесь обидеть, может и мой совет когда-то пригодился бы.
Должен пошутить, ничего личного, просто долг)
шутка вообщем такая: Судя по тому что на ошибку [Invalid volume] вы сразу не проверили собственно volume, сонный вы часто и уже давно. ха-ха-ха, зал апплодирует) Высыпайтесь, полезно для здоровья.
Благодарю за совет. Вы правы! Я нынче уже сдвинул режим прилично. Несколько дней у меня выдались интенсивые. Пришлось поездить на длительные расстояния по делам. Встречи, беготня и тд. Замотался. А интерес был огромный до ума довести свою писанину. То что писал всё работает на других терминалах. Причём на 4-ке и 5-ке. А здесь, как оказалось нужно было сбросить настройки у бота. Для тестера это делается чутка иначе. Вот я и застрял чутка.
В той одной строке инклуда и ответ на ваш вопрос есть.
Зря пытаетесь обидеть, может и мой совет когда-то пригодился бы.
Вопрос не в обидах. Я чётко указал то, что меня очень интересует. А ответ увидел типа смотри вон.. туда. В принципе, как под копирку в смежных разделах. Любой программист, который пишет на любом языке знает, что чей-то код читать сложнее, чем свой. Иногда это имеет смысл, а иногда проще услышать какой-то либо совет и перенять его.
Я не спорю, некоторым нужно получить готовое решение. Такие достаточно много. Кто-то желает, чтобы ему написали бесплатно или за деньги. Мне же интересно, понять как это работает и добавить это себе. И чаще всего вопросы касаются, именно, MQL, т.к. написать я могу всё, что мне нужно. А вот логику некоторых понятий или терминала иногда приходится догнать, ровно как это было в этот раз. С кодом всё было в порядке. Но вот в параметрах я не сменил значение лота. Ответ оказался элементарнейшим.. ((
Вопрос не в обидах. Я чётко указал то, что меня очень интересует. А ответ увидел типа смотри вон.. туда. В принципе, как под копирку в смежных разделах. Любой программист, который пишет на любом языке знает, что чей-то код читать сложнее, чем свой. Иногда это имеет смысл, а иногда проще услышать какой-то либо совет и перенять его.
Я не спорю, некоторым нужно получить готовое решение. Такие достаточно много. Кто-то желает, чтобы ему написали бесплатно или за деньги. Мне же интересно, понять как это работает и добавить это себе. И чаще всего вопросы касаются, именно, MQL, т.к. написать я могу всё, что мне нужно. А вот логику некоторых понятий или терминала иногда приходится догнать, ровно как это было в этот раз. С кодом всё было в порядке. Но вот в параметрах я не сменил значение лота. Ответ оказался элементарнейшим.. ((
К сожалению, в МТ5 столько тонкостей, что освоить их все, даже занимаясь им каждый день с самого его рождения, практически невозможно (сами разработчики не все знают).
Мои ироничный ответ («Когда устанете разбираться») был одновременно и отсылкой к коду, где нюансы заливки проработаны и протестированы, и советом не тратить свое время на то, что понимать не обязательно. Конкретного запроса «объяснить механику процесса» я в первом посте не увидел.
Источник
OrderSend error 4756 _-_ Unsupported filling mode
2018.11.18 12:27:25.950 2018.05.31 15:39:59 failed market buy 1.00 AAPL [Unsupported filling mode]
Там некоторые символы настроены криво.
Там некоторые символы настроены криво.
на тестере не хочет работать
на тестере не хочет работать
Там все нормально.
Там все нормально.
Это кроссплатформенный код. Будет работать и на MT5 — лог же привел.
Это кроссплатформенный код. Будет работать и на MT5 — лог же привел.
прикольна, то есть кто та написал уже, как из MT5 сделать MT4. По части транзакций.
Ну а у меня что не так в MT5 структуре? Почему не хочет работать
на тестере не хочет работать
Вот чистый MQL5 код. В зависимости от параметра «Type open position» открывает или BUY или SELL позицию.
Чтобы не было ошибок заполнения — эти две строки обязательны во всех кодах:
Кто нибудь может исправить а не выеживаться? Правильно заполнить объект структуры под MT5 для ***
Кто нибудь может исправить а не выеживаться? Правильно заполнить объект структуры под MT5 для ***
Чтобы не мучатся с низкоуровневыми запросами давно изобретён торговый класс CTrade. Используйте торговый класс и код Ваш сократится в разы.
Кто нибудь может исправить а не выеживаться? Правильно заполнить объект структуры под MT5 для ***
Источник
Error 4756 (ERR_TRADE_SEND_FAILED) using «Instant Execution» requests
I’m trying to buy and sell at market value with the «Instant Execution» method (see here https://www.mql5.com/en/docs/constants/structures/mqltraderequest).
I have filled the required properties of the request, but OrderCheck returns error code 4756, from the docs:
Trade request sending failed
I googled the error but couldn’t find anything. I am using a demo acount and the strategy tester so there is no broker involved.
Note 1: The first buy and the first sell work.
Note 2: If I remove the OrderCheck() calls, I all buy orders work successfully but sells still fail, it’ doesn’t make any sense.
if(!SymbolInfoTick(Symbol(), curTick)) return;
bool success = OrderCheck(request, checkResult);
if(!success) Print(«OrderCheck failed error: «, GetLastError());
bool successTrade = OrderSend(request, tradeResult);
if(!successTrade) Print(«OrderSend (buy) failed error: «, GetLastError());
bool success = OrderCheck(request, checkResult);
if(!success)Print(«OrderCheck failed error: «, GetLastError());
bool successTrade = OrderSend(request, tradeResult);
if(!successTrade)Print(«OrderSend (sell) failed error: «, GetLastError());
I am properly checking that trading is allowed :
Print(«SYMBOL_TRADE_EXEMODE= «, SymbolInfoInteger(Symbol(), SYMBOL_TRADE_EXEMODE));
Alert(«Automated trading is not allowed in the terminal settings!»);
Alert(«Automated trading is forbidden in the program settings for «,__FILE__);
Alert(«Automated trading is forbidden for the account «,AccountInfoInteger(ACCOUNT_LOGIN),» at the trade server side»);
Comment(«Trading is forbidden for the account «,AccountInfoInteger(ACCOUNT_LOGIN),
«.n Perhaps an investor password has been used to connect to the trading account.»,
«n Check the terminal journal for the following entry:»,
«n’»,AccountInfoInteger(ACCOUNT_LOGIN),»’: trading has been disabled — investor mode.»);
Источник
error 4756
my ea make error 4756
can you help me thanks
my ea make error 4756
can you help me thanks
— misunderstood design.
Choose among the values of the maximum double and use that instead of the integer index
my ea make error 4756
can you help me thanks
Error 4756 is «Trade request sending failed». If you have error when sending order, check the return code of MqlTradeResult
According to Konstantin83 above, you have invalid stop error, which mean you have to place pending order outside SymbolInfoInteger SYMBOL_TRADE_STOPS_LEVEL and SYMBOL_TRADE_FREEZE_LEVEL.
Error 4756 is «Trade request sending failed». If you have error when sending order, check the return code of MqlTradeResult
According to Konstantin83 above, you have invalid stop error, which mean you have to place pending order outside SymbolInfoInteger SYMBOL_TRADE_STOPS_LEVEL and SYMBOL_TRADE_FREEZE_LEVEL.
Something else I have found regarding Invalid Stops. I have a simple EA that places a trade with SL & TP unless the Symbol is Exchange or Market execution, then it sends the trade with SL & TP not set and then sends a second request to (TRADE_ACTION_SLTP) to set the SL & TP.
It works fine in the Strategy tester, so today I tried it on a Demo account and I kept getting Invalid Stops (error 10016). So I checked the Stops Level and Freeze Level, they are both 0, I tried various levels of SL & TP, nothing worked. I could manually set the same SL & TP for an existing position without any problems . . . so then I added a test to only place the SL & TP if the position could be selected . . . and no more Invalid Stops, no more TRADE_ACTION_SLTP trade request either 🙁
So I added this code between the completion of the initial trade request sent without TP & SL and the subsequent trade request that sends the TP & SL . . .
SetTPandSL is set true if the initial trade request is successful, there is no point trying to set a TP & SL if it isn’t. The position is selected and if it fails a 100 mS sleep happens, then the select is retried, if that fails a 200 mS sleep happens, etc for upto 9 attempts (4.5 secs total).
I don’t really know what I’m doing with mql5 yet, I’m really just hacking about trying to make a few things work and hoping to learn as I go . . . is what I have found here normal behaviour ? I would have thought that once the initial trade request returned 10009 — TRADE_RETCODE_DONE I would be OK to send the request to set the TP & SL, isn’t this the case ? does anyone know ?
Something else I have found regarding Invalid Stops. I have a simple EA that places a trade with SL & TP unless the Symbol is Exchange or Market execution, then it sends the trade with SL & TP not set and then sends a second request to (TRADE_ACTION_SLTP) to set the SL & TP.
It works fine in the Strategy tester, so today I tried it on a Demo account and I kept getting Invalid Stops (error 10016). So I checked the Stops Level and Freeze Level, they are both 0, I tried various levels of SL & TP, nothing worked. I could manually set the same SL & TP for an existing position without any problems . . . so then I added a test to only place the SL & TP if the position could be selected . . . and no more Invalid Stops, no more TRADE_ACTION_SLTP trade request either 🙁
So I added this code between the completion of the initial trade request sent without TP & SL and the subsequent trade request that sends the TP & SL . . .
SetTPandSL is set true if the initial trade request is successful, there is no point trying to set a TP & SL if it isn’t. The position is selected and if it fails a 100 mS sleep happens, then the select is retried, if that fails a 200 mS sleep happens, etc for upto 9 attempts (4.5 secs total).
I don’t really know what I’m doing with mql5 yet, I’m really just hacking about trying to make a few things work and hoping to learn as I go . . . is what I have found here normal behaviour ? I would have thought that once the initial trade request returned 10009 — TRADE_RETCODE_DONE I would be OK to send the request to set the TP & SL, isn’t this the case ? does anyone know ?
Источник
Все приказы на совершение торговых операций отправляются в виде структуры торгового запроса MqlTradeRequest с помощью функции OrderSend(). Результат выполнения этой функции помещается в структуру MqlTradeResult, поле retcode которой содержит код возврата торгового сервера.
10004 |
TRADE_RETCODE_REQUOTE |
Реквота |
10006 |
TRADE_RETCODE_REJECT |
Запрос отклонен |
10007 |
TRADE_RETCODE_CANCEL |
Запрос отменен трейдером |
10008 |
TRADE_RETCODE_PLACED |
Ордер размещен |
10009 |
TRADE_RETCODE_DONE |
Заявка выполнена |
10010 |
TRADE_RETCODE_DONE_PARTIAL |
Заявка выполнена частично |
10011 |
TRADE_RETCODE_ERROR |
Ошибка обработки запроса |
10012 |
TRADE_RETCODE_TIMEOUT |
Запрос отменен по истечению времени |
10013 |
TRADE_RETCODE_INVALID |
Неправильный запрос |
10014 |
TRADE_RETCODE_INVALID_VOLUME |
Неправильный объем в запросе |
10015 |
TRADE_RETCODE_INVALID_PRICE |
Неправильная цена в запросе |
10016 |
TRADE_RETCODE_INVALID_STOPS |
Неправильные стопы в запросе |
10017 |
TRADE_RETCODE_TRADE_DISABLED |
Торговля запрещена |
10018 |
TRADE_RETCODE_MARKET_CLOSED |
Рынок закрыт |
10019 |
TRADE_RETCODE_NO_MONEY |
Нет достаточных денежных средств для выполнения запроса |
10020 |
TRADE_RETCODE_PRICE_CHANGED |
Цены изменились |
10021 |
TRADE_RETCODE_PRICE_OFF |
Отсутствуют котировки для обработки запроса |
10022 |
TRADE_RETCODE_INVALID_EXPIRATION |
Неверная дата истечения ордера в запросе |
10023 |
TRADE_RETCODE_ORDER_CHANGED |
Состояние ордера изменилось |
10024 |
TRADE_RETCODE_TOO_MANY_REQUESTS |
Слишком частые запросы |
10025 |
TRADE_RETCODE_NO_CHANGES |
В запросе нет изменений |
10026 |
TRADE_RETCODE_SERVER_DISABLES_AT |
Автотрейдинг запрещен сервером |
10027 |
TRADE_RETCODE_CLIENT_DISABLES_AT |
Автотрейдинг запрещен клиентским терминалом |
10028 |
TRADE_RETCODE_LOCKED |
Запрос заблокирован для обработки |
10029 |
TRADE_RETCODE_FROZEN |
Ордер или позиция заморожены |
10030 |
TRADE_RETCODE_INVALID_FILL |
Указан неподдерживаемый тип исполнения ордера по остатку |
10031 |
TRADE_RETCODE_CONNECTION |
Нет соединения с торговым сервером |
10032 |
TRADE_RETCODE_ONLY_REAL |
Операция разрешена только для реальных счетов |
10033 |
TRADE_RETCODE_LIMIT_ORDERS |
Достигнут лимит на количество отложенных ордеров |
10034 |
TRADE_RETCODE_LIMIT_VOLUME |
Достигнут лимит на объем ордеров и позиций для данного символа |
10035 |
TRADE_RETCODE_INVALID_ORDER |
Неверный или запрещённый тип ордера |
10036 |
TRADE_RETCODE_POSITION_CLOSED |
Позиция с указанным POSITION_IDENTIFIER уже закрыта |
10038 |
TRADE_RETCODE_INVALID_CLOSE_VOLUME |
Закрываемый объем превышает текущий объем позиции |
10039 |
TRADE_RETCODE_CLOSE_ORDER_EXIST |
Для указанной позиции уже есть ордер на закрытие. Может возникнуть при работе в системе хеджинга:
|
10040 |
TRADE_RETCODE_LIMIT_POSITIONS |
Количество открытых позиций, которое можно одновременно иметь на счете, может быть ограничено настройками сервера. При достижении лимита в ответ на выставление ордера сервер вернет ошибку TRADE_RETCODE_LIMIT_POSITIONS. Ограничение работает по-разному в зависимости от типа учета позиций на счете:
|
10041 |
TRADE_RETCODE_REJECT_CANCEL |
Запрос на активацию отложенного ордера отклонен, а сам ордер отменен |
10042 |
TRADE_RETCODE_LONG_ONLY |
Запрос отклонен, так как на символе установлено правило «Разрешены только длинные позиции» (POSITION_TYPE_BUY) |
10043 |
TRADE_RETCODE_SHORT_ONLY |
Запрос отклонен, так как на символе установлено правило «Разрешены только короткие позиции» (POSITION_TYPE_SELL) |
10044 |
TRADE_RETCODE_CLOSE_ONLY |
Запрос отклонен, так как на символе установлено правило «Разрешено только закрывать существующие позиции« |
Предупреждения компилятора носят информационный характер и не являются сообщениями об ошибках.
21 |
Неполная запись даты в строке datetime |
22 |
Ошибочные числа в строке datetime для даты, требования: год 1970<=X<=3000 месяц 0<X<=12 день 0<X<= 31/30/28(29)…. |
23 |
Ошибочные числа в строке datetime для времени, требования: час 0<=X<24 минута 0<=X<60 |
24 |
Некорректный цвет в формате RGB: одна из компонент RGB меньше 0 или больше 255 |
25 |
Неизвестный символ эскейп последовательности. Известные: n r t » ’ X x |
26 |
Слишком большой объем локальных переменных (>512кб) функции, уменьшите их количество |
29 |
Перечисление уже определено (дублирование) – члены будут добавлены к первому определению |
30 |
Переопределение макроса |
31 |
Переменная объявлена, но нигде не используется |
32 |
Конструктор должен иметь тип void |
33 |
Деструктор должен иметь тип void |
34 |
Константа не вмещается в диапазон целых (X>_UI64_MAX || X<_I64_MIN) и будет преобразована в тип double |
35 |
Слишком длинный HEX больше 16 значащих символов (обрезаются старшие полубайты) |
36 |
Нет ни одного полубайта в HEX строке «0x» |
37 |
Нет ни одной функции — нечего будет выполнять |
38 |
Используется неинициализированная переменная |
41 |
Функция не имеет тела, но и не вызывается |
43 |
Возможны потери данных при преобразовании типа. Пример: int x=(double)z; |
44 |
Потеря точности(данных) при преобразовании константы. Пример: int x=M_PI |
45 |
Несовпадение знаков операндов в операциях сравнения. Пример: (char)c1>(uchar)c2 |
46 |
Проблемы с импортом функций – требуется объявление #import либо импорт функций уже закрыт |
47 |
Описание слишком большое – лишние символы не будут включены в исполняемый файл |
48 |
Количество индикаторных буферов объявлено меньше, чем требуется |
49 |
Не указан цвет для отрисовки графической серии в индикаторе |
50 |
Нет ни одной графической серии для отображения индикатора |
51 |
Не обнаружена функция-обработчик ‘OnStart» в скрипте |
52 |
Функция-обработчик ‘OnStart» определена с неверными параметрами |
53 |
Функция ‘OnStart’ может быть определена только в скрипте |
54 |
Функция ‘OnInit’ определена с неверными параметрами |
55 |
Функция ‘OnInit’ не используется в скриптах |
56 |
Функция ‘OnDeinit’ определена с неверными параметрами |
57 |
Функция ‘OnDeinit’ не используется в скриптах |
58 |
Определены две функции ‘OnCalculate’. Будет использована OnCalculate() на одном ценовом массиве |
59 |
Обнаружено переполнение при вычислении сложной целочисленной константы |
60 |
Возможно, переменная неинициализирована. |
61 |
Данное объявление делает недоступным обращение к локальной переменной, объявленной на указанной строке |
62 |
Данное объявление делает недоступным обращение к глобальной переменной, объявленной на указанной строке |
63 |
Не может быть использовано для статических массивов |
64 |
Данное объявление делает недоступным обращение к предопределенной переменной |
65 |
Значение выражения всегда true/false |
66 |
Использование переменной или выражения типа bool в математических операциях является небезопасным |
67 |
Результат применения оператора унарного минуса к беззнаковому типу ulong неопределен |
68 |
Версия, указанная в свойстве #property version, недопустима для размещения в разделе Маркет, правильный формат #property version «XXX.YYY» |
69 |
Отсутствует выражение для выполнения по условию |
70 |
Неверный возвращаемый тип функции или некорректные параметры при объявлении функции-обработчика события |
71 |
Требуется явное приведение структур к одному типу |
72 |
Данное объявление делает недоступным прямое обращение к члену класса, объявленному на указанной строке. Доступ будет возможен только с помощью операции разрешения контекста :: |
73 |
Константа в двоичной записи слишком велика, старшие разряды будут отброшены |
74 |
Параметр в методе наследуемого класса отличается модификатором const, дочерняя функция перегрузила функцию родителя |
75 |
Отрицательное или слишком большое значения смещения в битовой операции сдвига, результат выполнения неопределён |
76 |
Функция должна вернуть значение |
77 |
Функция типа void не должна возвращать значение |
78 |
Не все варианты выполнения возвращают значение |
79 |
Выражения на глобальном уровне не разрешены |
80 |
Возможна ошибка в последовательности выполнения операций, используйте скобки для явного указания порядка |
81 |
Найдено два вида вызова OnCalCulate(). Вызываться будет вариант с использованием таймсерий OHLC |
82 |
Структура не содержит членов, размер будет приравнен 1 байту |
83 |
Нет обработки результата выполнения функции |
84 |
Индикатор, включаемый как ресурс, скомпилирован в режиме отладки. Это снижает его производительность. Для повышения скорости работы его нужно перекомпилировать |
85 |
Слишком большой код символа в строке, должен быть в диапазоне от 0 до 65535 |
86 |
Нераспознанный служебный символ в строке |
87 |
Не указано свойство индикатора, задающее вывод в главное окно или в отдельное подокно. Будет применено свойство #property indicator_chart_window |
MetaEdtior 5, редактор mql5-программ, выдает сообщения об ошибках программы, обнаруженных встроенным компилятором на стадии компиляции. Список этих ошибок приведен ниже в таблице. Для компиляции исходного кода в исполняемый нажмите F7. Программы с ошибками не могут быть скомпилированы, пока ошибки, указанные компилятором, не будут устранены.
100 |
Ошибка чтения файла |
101 |
Ошибка открытия *.EX5 файла для записи |
103 |
Недостаточно свободной памяти для завершения компиляции |
104 |
Нераспознанная компилятором пустая синтаксическая единица |
105 |
Некорректное имя файла в #include |
106 |
Ошибка доступа к файлу в #include (возможно файл не существует) |
108 |
Неподходящее имя для #define |
109 |
Неизвестная команда препроцессора (допустимы #include,#define,#property,#import) |
110 |
Неизвестный для компилятора символ |
111 |
Функция не реализована (описание есть, тела нет) |
112 |
Пропущена двойная кавычка («) |
113 |
Пропущена открывающая угловая скобка (<) или двойная кавычка («) |
114 |
Пропущена одинарная кавычка (‘) |
115 |
Пропущена закрывающая угловая скобка «>» |
116 |
Не указан тип в объявлении |
117 |
Нет оператора возврата return или имеется не во всех ветках выполнения |
118 |
Ожидалась открывающая скобка параметров вызова |
119 |
Ошибка записи EX5 |
120 |
Некорректный доступ к элементу массива |
121 |
Функция не имеет тип void и оператор return должен вернуть значение |
122 |
Некорректное объявление деструктора |
123 |
Отсутствует двоеточие «:» |
124 |
Переменная уже объявлена |
125 |
Переменная с таким идентификатором уже объявлена |
126 |
Имя переменной слишком длинное (>250 символов) |
127 |
Структура с таким идентификатором уже определена |
128 |
Структура не определена |
129 |
Член структуры с таким именем уже определен |
130 |
Нет такого члена структуры |
131 |
Нарушена парность квадратных скобок |
132 |
Ожидается открывающая круглая скобка «(« |
133 |
Несбалансированные фигурные скобки ( отсутствует «}» ) |
134 |
Сложно для компиляции (слишком большое ветвление, внутренний стек уровней переполнен) |
135 |
Ошибка открытия файла на чтение |
136 |
Недостаточно памяти для загрузки исходного файла в память |
137 |
Ожидается переменная |
138 |
Ссылка не может быть инициализирована |
140 |
Ожидалось присваивание (возникает при объявлении) |
141 |
Ожидается открывающая фигурная скобка «{« |
142 |
Параметр может быть только динамическим массивом |
143 |
Использование типа «void» недопустимо |
144 |
Нет пары для «)» или «]», т.е. отсутствует «(» или «[« |
145 |
Нет пары для «(» или «[«, т.е. отсутствует «)» или «]» |
146 |
Некорректная размерность массива |
147 |
Слишком много параметров (>64) |
149 |
Этот токен тут не ожидается |
150 |
Недопустимое использование операции (неправильные операнды) |
151 |
Выражение типа void недопустимо |
152 |
Ожидается оператор |
153 |
Неправильное использование break |
154 |
Ожидается точка с запятой «;» |
155 |
Ожидается запятая «,» |
156 |
Тип должен быть определен как класс, а не как структура |
157 |
Ожидалось выражение |
158 |
В HEX встречается «не HEX символ» или слишком длинное число (количество цифр > 511) |
159 |
Строка-константа имеет более 65534 символов |
160 |
Определение функции здесь недопустимо |
161 |
Неожиданный конец программы |
162 |
Форвардная декларация для структур запрещена |
163 |
Функция с таким именем уже определена и имеет иной тип возвращаемого значения |
164 |
Функция с таким именем уже определена и имеет иной набор параметров |
165 |
Функция с таким именем уже определена и реализована |
166 |
Перегрузка функции для данного вызова не найдена |
167 |
Функция с возвращаемым значением типа void не может возвращать значение |
168 |
Функция не определена |
170 |
Ожидается значение |
171 |
В выражении case допустимы только целочисленные константы |
172 |
Значение для case в этом switch уже использовано |
173 |
Ожидается целочисленное значение |
174 |
В выражении #import ожидается имя файла |
175 |
Выражения на глобальном уровне не допустимы |
176 |
Пропущена круглая скобка «)» перед «;» |
177 |
Слева от знака равенства предполагается переменная |
178 |
Результат выражения не используется |
179 |
Объявление переменных в case недопустимо |
180 |
Неявное преобразование из строки в число |
181 |
Неявное преобразование числа в строку |
182 |
Неоднозначный вызов перегруженной функции (подходят несколько перегрузок) |
183 |
Недопустимый else без соответствующего if |
184 |
Недопустимый case или default без соответствующего switch |
185 |
Недопустимое использование эллипсиса |
186 |
Инициализирующая последовательность имеет большее количество элементов чем инициализируемая переменная |
187 |
Ожидается константа для case |
188 |
Требуется константное выражение |
189 |
Константная переменная не может быть изменена |
190 |
Ожидается закрывающая скобка или запятая (объявление члена массива) |
191 |
Идентификатор перечисления уже используется |
192 |
Перечисление не может иметь модификаторов доступа (const, extern, static) |
193 |
Член перечисления уже объявлен с другим значением |
194 |
Существует переменная, определенная с таким же именем |
195 |
Существует структура, определенная с таким же именем |
196 |
Ожидается имя члена перечисления |
197 |
Ожидается целочисленное выражение |
198 |
Деление на ноль в константном выражении |
199 |
Неверное количество параметров в функции |
200 |
Параметром по ссылке должна быть переменная |
201 |
Ожидается переменная такого же типа для передачи по ссылке |
202 |
Константная переменная не может быть передана по неконстантной ссылке |
203 |
Требуется целочисленная положительная константа |
204 |
Ошибка доступа к защищенному члену класса |
205 |
Импорт уже определен по другому пути |
208 |
Исполняемый файл не создан |
209 |
Для индикатора не найдена точка входа ‘OnCalculate’ |
210 |
Оператор continue может быть использован только внутри цикла |
211 |
Ошибка доступа к private(закрытому) члену класса |
213 |
Метод структуры или класса не объявлен |
214 |
Ошибка доступа к private(закрытому) методу класса |
216 |
Копирование структур с объектами недопустимо |
218 |
Выход индекса за границы массива |
219 |
Недопустима инициализация массивов в объявлении структуры или класса |
220 |
Конструктор класса не может иметь параметров |
221 |
Деструктор класса не может иметь параметров |
222 |
Метод класса или структуры с таким именем и параметрами уже объявлен |
223 |
Ожидается операнд |
224 |
Метод класса или структуры с таким именем есть, но с другими параметрами (объявление!=реализация) |
225 |
Импортируемая функция не описана |
226 |
Функция ZeroMemory() не применима для классов с защищенными членами или наследованием |
227 |
Неоднозначный вызов перегруженной функции (точное совпадение параметров для нескольких перегрузок) |
228 |
Ожидается имя переменной |
229 |
Ссылку нельзя объявить в этом месте |
230 |
Уже используется в качестве имени перечисления |
232 |
Ожидается класс или структура |
235 |
Нельзя вызывать delete для удаления массива |
236 |
Ожидается оператор ‘ while ‘ |
237 |
В delete должен быть указатель |
238 |
default для этого switch уже есть |
239 |
Синтаксическая ошибка |
240 |
Escape-последовательность может встретиться только в строках ( начинается с ‘’ ) |
241 |
Требуется массив – квадратная скобка ‘[‘ не относится к массиву либо в качестве параметра-массива подают не массив |
242 |
Не может быть инициализировано посредством инициализирующей последовательности |
243 |
Импорт не определен |
244 |
Ошибка оптимизатора на синтаксическом дереве |
245 |
Объявлено слишком много структур (упростите программу) |
246 |
Преобразование параметра недопустимо |
247 |
Некорректное использование оператора delete |
248 |
Нельзя объявить указатель на ссылку |
249 |
Нельзя объявить ссылку на ссылку |
250 |
Нельзя объявить указатель на указатель |
251 |
Недопустимо объявление структуры в списке параметров |
252 |
Недопустимая операция приведения типов |
253 |
Указатель можно объявить только для класса или структуры |
256 |
Необъявленный идентификатор |
257 |
Ошибка оптимизатора исполняемого кода |
258 |
Ошибка генерации исполняемого кода |
260 |
Недопустимое выражение для оператора switch |
261 |
Переполнение пула строковых констант, упростите программу |
262 |
Невозможно преобразовать к перечислению |
263 |
Нельзя использовать virtual для данных (членов класса или структуры) |
264 |
Нельзя вызвать защищенный метод класса |
265 |
Переопределяемая виртуальная функция возвращает другой тип |
266 |
Класс нельзя наследовать от структуры |
267 |
Структуру нельзя наследовать от класса |
268 |
Конструктор не может быть виртуальным (спецификатор virtual недопустим) |
269 |
Структура не может иметь виртуальных методов |
270 |
Функция должна иметь тело |
271 |
Перегрузка системных функций (функций терминала) запрещена |
272 |
Спецификатор const недопустим для функций, не являющихся членом класса или структуры |
274 |
Нельзя менять члены класса в константном методе |
276 |
Неподходящая инициализирующая последовательность |
277 |
Пропущено значение по умолчанию для параметра (специфика объявления параметров по умолчанию) |
278 |
Переопределение параметра по умолчанию (в объявлении и реализации разные значения) |
279 |
Нельзя вызвать неконстантный метод для константного объекта |
280 |
Для доступа к членам требуется объект (поставлена точка для не класса/структуры) |
281 |
Имя уже объявленной структуры нельзя использовать при объявлении |
284 |
Неразрешенное преобразование (при закрытом наследовании) |
285 |
Структуры и массивы не могут быть использованы в качестве input-переменных |
286 |
Спецификатор const недопустим для конструктора/деструктора |
287 |
Неправильное строковое выражение для типа datetime |
288 |
Неизвестное свойство (#property) |
289 |
Некорректное значение для свойства |
290 |
Некорректный индекс для свойства в #property |
291 |
Пропущен параметр вызова – < func(x,) > |
293 |
Объект должен быть передан по ссылке |
294 |
Массив должен быть передан по ссылке |
295 |
Функция была декларирована как экспортируемая |
296 |
Функция не была декларирована как экспортируемая |
297 |
Экспортировать импортируемую функцию нельзя |
298 |
Импортируемая функция не может иметь такого параметра (нельзя передавать указатель, класс или структуру, содержащую динамический массив, указатель, класс и т.д.) |
299 |
Должен быть класс |
300 |
Секция #import не закрыта |
302 |
Несоответствие типов |
303 |
extern-переменная уже инициализирована |
304 |
Не найдено ни одной экспортируемой функции или стандартной точки входа |
305 |
Явный вызов конструктора запрещен |
306 |
Метод был объявлен константным |
307 |
Метод не был объявлен константным |
308 |
Некорректный размер ресурсного файла |
309 |
Некорректное имя ресурса |
310 |
Ошибка открытия файла ресурса |
311 |
Ошибка чтения файла ресурса |
312 |
Неизвестный тип ресурса |
313 |
Некорректный путь к файлу ресурса |
314 |
Указанное имя ресурса уже используется |
315 |
Ожидались параметры макроса |
316 |
После имени макроса должен быть пробел |
317 |
Ошибка в описании параметров макроса |
318 |
Неверное число параметров при использовании макроса |
319 |
Превышение максимального количества(16) параметров для макроса |
320 |
Макрос слишком сложный, требуется упрощение |
321 |
Параметром EnumToString() может быть только перечисление |
322 |
Имя ресурса слишком длинное |
323 |
Неподдерживаемый формат изображения (допустим только BMP-формат с глубиной цвета 24 или 32 бита) |
324 |
Объявление массива внутри оператора запрещено |
325 |
Функцию можно определить только на глобальном уровне |
326 |
Данное объявление недопустимо для текущей области видимости (области определения) |
327 |
Инициализация статичных переменных значениями локальных недопустима |
328 |
Недопустимое объявление массива объектов, не имеющих конструктора по умолчанию |
329 |
Список инициализации разрешен только для конструкторов |
330 |
Отсутствует определение функции после списка инициализации |
331 |
Список инициализации пуст |
332 |
Инициализация массива в конструкторе запрещена |
333 |
В списке инициализации запрещено инициализировать члены родительского класса |
334 |
Ожидалось выражение целого типа |
335 |
Требуемый объем памяти для массива превышает максимально допустимое значение |
336 |
Требуемый объем памяти для структуры превышает максимально допустимое значение |
337 |
Требуемый объем памяти для переменных, объявленных на глобальном уровне, превышает максимально допустимое значение |
338 |
Требуемый объем памяти для локальных переменных превышает максимально допустимое значение |
339 |
Конструктор не определен |
340 |
Недопустимое имя для файла иконки |
341 |
Не удалось открыть файла иконки по указанному пути |
342 |
Файл иконки некорректен и не соответствует формату ICO |
343 |
Повторная инициализация члена в конструкторе класса/структуры с помощью списка инициализации |
344 |
Инициализация статических членов в списке инициализации конструктора не допускается |
345 |
Инициализация нестатического члена класса/структуры на глобальном уровне запрещена |
346 |
Имя метода класса/структуры совпадает с ранее объявленным именем члена |
347 |
Имя члена класса/структуры совпадает с ранее объявленным именем метода |
348 |
Виртуальная функция не может быть объявлена как static |
349 |
Модификатор const недопустим для статической функции |
350 |
Конструктор или деструктор не могут быть статическими |
351 |
Нельзя обращаться к нестатическому члену/методу класса или структуры из статической функции |
352 |
После ключевого слова operator ожидается перегружаемая операция (+,-,[],++,— и т.д.) |
353 |
Не все операции можно перегружать в MQL5 |
354 |
Определение не соответствует объявлению |
355 |
Указано неверное количество параметров для оператора |
356 |
Не обнаружено ни одной функции-обработчика события |
357 |
Методы не могут быть экспортируемыми |
358 |
Нельзя приводить указатель на константный объект к указателю на неконстантный объект |
359 |
Шаблоны классов пока не поддерживаются |
360 |
Перегрузка шаблонов функций пока не поддерживается |
361 |
Невозможно применить шаблон функции |
362 |
Неоднозначный параметр в шаблоне функции (подходят несколько типов параметра) |
363 |
Невозможно определить к какому типу параметра приводить аргумент шаблона функции |
364 |
Неверное количество параметров в шаблоне функции |
365 |
Шаблон функции не может быть виртуальным |
366 |
Шаблоны функций не могут быть экспортированы |
367 |
Нельзя импортировать шаблоны функций |
368 |
Структуры, содержащие объекты, недопустимы |
369 |
Массивы строк и структуры, содержащие объекты, недопустимы |
370 |
Статический член класса/структуры должен быть явно инициализирован |
371 |
Ограничение компилятора: строка не может содержать более 65 535 символов |
372 |
Несогласованные #ifdef/#endif |
373 |
Результатом выполнения функции не может быть объект класса, так как отсутствует конструктор копирования |
374 |
Нельзя использовать нестатические члены и/или методы при инициализации статической переменной |
375 |
OnTesterInit() нельзя использовать без объявления обработчика OnTesterDeinit() |
376 |
Имя локальной переменной совпадает с именем одного из параметров функции |
377 |
Нельзя использовать макросы __FUNCSIG__ и __FUNCTION__ вне тела функции |
378 |
Недопустимый возвращаемый тип. Например, такая ошибка будет выдана для функций, импортированных из DLL, которые возвращают структуру или указатель в качестве результата |
379 |
Ошибка при использовании шаблона |
380 |
Не используется |
381 |
Недопустимый синтаксис при объявлении чисто виртуальной функции, разрешено «=NULL» или «=0» |
382 |
Только виртуальные функции могут быть объявлены со спецификатором чисто виртуальной функции («=NULL» или «=0») |
383 |
Нельзя создать экземпляр абстрактного класса |
384 |
Для динамического приведения с помощью оператора dynamic_cast типом назначения должен быть указатель на пользовательский тип |
385 |
Ожидается тип «указатель на функцию» |
386 |
Указатели на методы не поддерживаются |
387 |
Ошибка – невозможно определить тип указателя на функцию |
388 |
Приведение типа недоступно из-за закрытого наследования |
389 |
Переменная с модификатором const должна быть проинициализирована при объявлении |
393 |
В интерфейсе могут быть объявлены только методы с публичным доступом |
394 |
Недопустимое вложение интерфейса в другой интерфейс |
395 |
Интерфейс может наследоваться только от другого интерфейса |
396 |
Ожидается интерфейс |
397 |
Интерфейсы поддерживают только публичное наследование |
398 |
Интерфейс не может содержать члены |
399 |
Нельзя создавать объекты интерфейса напрямую, только через наследование |
GetLastError() – функция, возвращающая код последней ошибки, которая хранится в предопределенной переменной _LastError. Значение этой переменной можно сбросить в ноль функцией ResetLastError().
ERR_SUCCESS |
0 |
Операция выполнена успешно |
ERR_INTERNAL_ERROR |
4001 |
Неожиданная внутренняя ошибка |
ERR_WRONG_INTERNAL_PARAMETER |
4002 |
Ошибочный параметр при внутреннем вызове функции клиентского терминала |
ERR_INVALID_PARAMETER |
4003 |
Ошибочный параметр при вызове системной функции |
ERR_NOT_ENOUGH_MEMORY |
4004 |
Недостаточно памяти для выполнения системной функции |
ERR_STRUCT_WITHOBJECTS_ORCLASS |
4005 |
Структура содержит объекты строк и/или динамических массивов и/или структуры с такими объектами и/или классы |
ERR_INVALID_ARRAY |
4006 |
Массив неподходящего типа, неподходящего размера или испорченный объект динамического массива |
ERR_ARRAY_RESIZE_ERROR |
4007 |
Недостаточно памяти для перераспределения массива либо попытка изменения размера статического массива |
ERR_STRING_RESIZE_ERROR |
4008 |
Недостаточно памяти для перераспределения строки |
ERR_NOTINITIALIZED_STRING |
4009 |
Неинициализированная строка |
ERR_INVALID_DATETIME |
4010 |
Неправильное значение даты и/или времени |
ERR_ARRAY_BAD_SIZE |
4011 |
Запрашиваемый размер массива превышает 2 гигабайта |
ERR_INVALID_POINTER |
4012 |
Ошибочный указатель |
ERR_INVALID_POINTER_TYPE |
4013 |
Ошибочный тип указателя |
ERR_FUNCTION_NOT_ALLOWED |
4014 |
Системная функция не разрешена для вызова |
ERR_RESOURCE_NAME_DUPLICATED |
4015 |
Совпадении имени динамического и статического ресурсов |
ERR_RESOURCE_NOT_FOUND |
4016 |
Ресурс с таким именем в EX5 не найден |
ERR_RESOURCE_UNSUPPOTED_TYPE |
4017 |
Неподдерживаемый тип ресурса или размер более 16 MB |
ERR_RESOURCE_NAME_IS_TOO_LONG |
4018 |
Имя ресурса превышает 63 символа |
ERR_MATH_OVERFLOW |
4019 |
При вычислении математической функции произошло переполнение |
Графики |
||
ERR_CHART_WRONG_ID |
4101 |
Ошибочный идентификатор графика |
ERR_CHART_NO_REPLY |
4102 |
График не отвечает |
ERR_CHART_NOT_FOUND |
4103 |
График не найден |
ERR_CHART_NO_EXPERT |
4104 |
У графика нет эксперта, который мог бы обработать событие |
ERR_CHART_CANNOT_OPEN |
4105 |
Ошибка открытия графика |
ERR_CHART_CANNOT_CHANGE |
4106 |
Ошибка при изменении для графика символа и периода |
ERR_CHART_WRONG_PARAMETER |
4107 |
Ошибочное значение параметра для функции по работе с графиком |
ERR_CHART_CANNOT_CREATE_TIMER |
4108 |
Ошибка при создании таймера |
ERR_CHART_WRONG_PROPERTY |
4109 |
Ошибочный идентификатор свойства графика |
ERR_CHART_SCREENSHOT_FAILED |
4110 |
Ошибка при создании скриншота |
ERR_CHART_NAVIGATE_FAILED |
4111 |
Ошибка навигации по графику |
ERR_CHART_TEMPLATE_FAILED |
4112 |
Ошибка при применении шаблона |
ERR_CHART_WINDOW_NOT_FOUND |
4113 |
Подокно, содержащее указанный индикатор, не найдено |
ERR_CHART_INDICATOR_CANNOT_ADD |
4114 |
Ошибка при добавлении индикатора на график |
ERR_CHART_INDICATOR_CANNOT_DEL |
4115 |
Ошибка при удалении индикатора с графика |
ERR_CHART_INDICATOR_NOT_FOUND |
4116 |
Индикатор не найден на указанном графике |
Графические объекты |
||
ERR_OBJECT_ERROR |
4201 |
Ошибка при работе с графическим объектом |
ERR_OBJECT_NOT_FOUND |
4202 |
Графический объект не найден |
ERR_OBJECT_WRONG_PROPERTY |
4203 |
Ошибочный идентификатор свойства графического объекта |
ERR_OBJECT_GETDATE_FAILED |
4204 |
Невозможно получить дату, соответствующую значению |
ERR_OBJECT_GETVALUE_FAILED |
4205 |
Невозможно получить значение, соответствующее дате |
MarketInfo |
||
ERR_MARKET_UNKNOWN_SYMBOL |
4301 |
Неизвестный символ |
ERR_MARKET_NOT_SELECTED |
4302 |
Символ не выбран в MarketWatch |
ERR_MARKET_WRONG_PROPERTY |
4303 |
Ошибочный идентификатор свойства символа |
ERR_MARKET_LASTTIME_UNKNOWN |
4304 |
Время последнего тика неизвестно (тиков не было) |
ERR_MARKET_SELECT_ERROR |
4305 |
Ошибка добавления или удаления символа в MarketWatch |
Доступ к истории |
||
ERR_HISTORY_NOT_FOUND |
4401 |
Запрашиваемая история не найдена |
ERR_HISTORY_WRONG_PROPERTY |
4402 |
Ошибочный идентификатор свойства истории |
ERR_HISTORY_TIMEOUT |
4403 |
Превышен таймаут при запросе истории |
ERR_HISTORY_BARS_LIMIT |
4404 |
Количество запрашиваемых баров ограничено настройками терминала |
ERR_HISTORY_LOAD_ERRORS |
4405 |
Множество ошибок при загрузке истории |
ERR_HISTORY_SMALL_BUFFER |
4407 |
Принимающий массив слишком мал чтобы вместить все запрошенные данные |
Global_Variables |
||
ERR_GLOBALVARIABLE_NOT_FOUND |
4501 |
Глобальная переменная клиентского терминала не найдена |
ERR_GLOBALVARIABLE_EXISTS |
4502 |
Глобальная переменная клиентского терминала с таким именем уже существует |
ERR_GLOBALVARIABLE_NOT_MODIFIED |
4503 |
Не было модификаций глобальных переменных |
ERR_GLOBALVARIABLE_CANNOTREAD |
4504 |
Не удалось открыть и прочитать файл со значениями глобальных переменных |
ERR_GLOBALVARIABLE_CANNOTWRITE |
4505 |
Не удалось записать файл со значениями глобальных переменных |
ERR_MAIL_SEND_FAILED |
4510 |
Не удалось отправить письмо |
ERR_PLAY_SOUND_FAILED |
4511 |
Не удалось воспроизвести звук |
ERR_MQL5_WRONG_PROPERTY |
4512 |
Ошибочный идентификатор свойства программы |
ERR_TERMINAL_WRONG_PROPERTY |
4513 |
Ошибочный идентификатор свойства терминала |
ERR_FTP_SEND_FAILED |
4514 |
Не удалось отправить файл по ftp |
ERR_NOTIFICATION_SEND_FAILED |
4515 |
Не удалось отправить уведомление |
ERR_NOTIFICATION_WRONG_PARAMETER |
4516 |
Неверный параметр для отправки уведомления – в функцию SendNotification() передали пустую строку или NULL |
ERR_NOTIFICATION_WRONG_SETTINGS |
4517 |
Неверные настройки уведомлений в терминале (не указан ID или не выставлено разрешение) |
ERR_NOTIFICATION_TOO_FREQUENT |
4518 |
Слишком частая отправка уведомлений |
ERR_FTP_NOSERVER |
4519 |
Не указан FTP сервер |
ERR_FTP_NOLOGIN |
4520 |
Не указан FTP логин |
ERR_FTP_FILE_ERROR |
4521 |
Не найден файл в директории MQL5Files для отправки на FTP сервер |
ERR_FTP_CONNECT_FAILED |
4522 |
Ошибка при подключении к FTP серверу |
ERR_FTP_CHANGEDIR |
4523 |
На FTP сервере не найдена директория для выгрузки файла |
ERR_FTP_CLOSED |
4524 |
Подключение к FTP серверу закрыто |
Буферы пользовательских индикаторов |
||
ERR_BUFFERS_NO_MEMORY |
4601 |
Недостаточно памяти для распределения индикаторных буферов |
ERR_BUFFERS_WRONG_INDEX |
4602 |
Ошибочный индекс своего индикаторного буфера |
Свойства пользовательских индикаторов |
||
ERR_CUSTOM_WRONG_PROPERTY |
4603 |
Ошибочный идентификатор свойства пользовательского индикатора |
Account |
||
ERR_ACCOUNT_WRONG_PROPERTY |
4701 |
Ошибочный идентификатор свойства счета |
ERR_TRADE_WRONG_PROPERTY |
4751 |
Ошибочный идентификатор свойства торговли |
ERR_TRADE_DISABLED |
4752 |
Торговля для эксперта запрещена |
ERR_TRADE_POSITION_NOT_FOUND |
4753 |
Позиция не найдена |
ERR_TRADE_ORDER_NOT_FOUND |
4754 |
Ордер не найден |
ERR_TRADE_DEAL_NOT_FOUND |
4755 |
Сделка не найдена |
ERR_TRADE_SEND_FAILED |
4756 |
Не удалось отправить торговый запрос |
ERR_TRADE_CALC_FAILED |
4758 |
Не удалось вычислить значение прибыли или маржи |
Индикаторы |
||
ERR_INDICATOR_UNKNOWN_SYMBOL |
4801 |
Неизвестный символ |
ERR_INDICATOR_CANNOT_CREATE |
4802 |
Индикатор не может быть создан |
ERR_INDICATOR_NO_MEMORY |
4803 |
Недостаточно памяти для добавления индикатора |
ERR_INDICATOR_CANNOT_APPLY |
4804 |
Индикатор не может быть применен к другому индикатору |
ERR_INDICATOR_CANNOT_ADD |
4805 |
Ошибка при добавлении индикатора |
ERR_INDICATOR_DATA_NOT_FOUND |
4806 |
Запрошенные данные не найдены |
ERR_INDICATOR_WRONG_HANDLE |
4807 |
Ошибочный хэндл индикатора |
ERR_INDICATOR_WRONG_PARAMETERS |
4808 |
Неправильное количество параметров при создании индикатора |
ERR_INDICATOR_PARAMETERS_MISSING |
4809 |
Отсутствуют параметры при создании индикатора |
ERR_INDICATOR_CUSTOM_NAME |
4810 |
Первым параметром в массиве должно быть имя пользовательского индикатора |
ERR_INDICATOR_PARAMETER_TYPE |
4811 |
Неправильный тип параметра в массиве при создании индикатора |
ERR_INDICATOR_WRONG_INDEX |
4812 |
Ошибочный индекс запрашиваемого индикаторного буфера |
Стакан цен |
||
ERR_BOOKS_CANNOT_ADD |
4901 |
Стакан цен не может быть добавлен |
ERR_BOOKS_CANNOT_DELETE |
4902 |
Стакан цен не может быть удален |
ERR_BOOKS_CANNOT_GET |
4903 |
Данные стакана цен не могут быть получены |
ERR_BOOKS_CANNOT_SUBSCRIBE |
4904 |
Ошибка при подписке на получение новых данных стакана цен |
Файловые операции |
||
ERR_TOO_MANY_FILES |
5001 |
Не может быть открыто одновременно более 64 файлов |
ERR_WRONG_FILENAME |
5002 |
Недопустимое имя файла |
ERR_TOO_LONG_FILENAME |
5003 |
Слишком длинное имя файла |
ERR_CANNOT_OPEN_FILE |
5004 |
Ошибка открытия файла |
ERR_FILE_CACHEBUFFER_ERROR |
5005 |
Недостаточно памяти для кеша чтения |
ERR_CANNOT_DELETE_FILE |
5006 |
Ошибка удаления файла |
ERR_INVALID_FILEHANDLE |
5007 |
Файл с таким хэндлом уже был закрыт, либо не открывался вообще |
ERR_WRONG_FILEHANDLE |
5008 |
Ошибочный хэндл файла |
ERR_FILE_NOTTOWRITE |
5009 |
Файл должен быть открыт для записи |
ERR_FILE_NOTTOREAD |
5010 |
Файл должен быть открыт для чтения |
ERR_FILE_NOTBIN |
5011 |
Файл должен быть открыт как бинарный |
ERR_FILE_NOTTXT |
5012 |
Файл должен быть открыт как текстовый |
ERR_FILE_NOTTXTORCSV |
5013 |
Файл должен быть открыт как текстовый или CSV |
ERR_FILE_NOTCSV |
5014 |
Файл должен быть открыт как CSV |
ERR_FILE_READERROR |
5015 |
Ошибка чтения файла |
ERR_FILE_BINSTRINGSIZE |
5016 |
Должен быть указан размер строки, так как файл открыт как бинарный |
ERR_INCOMPATIBLE_FILE |
5017 |
Для строковых массивов должен быть текстовый файл, для остальных – бинарный |
ERR_FILE_IS_DIRECTORY |
5018 |
Это не файл, а директория |
ERR_FILE_NOT_EXIST |
5019 |
Файл не существует |
ERR_FILE_CANNOT_REWRITE |
5020 |
Файл не может быть переписан |
ERR_WRONG_DIRECTORYNAME |
5021 |
Ошибочное имя директории |
ERR_DIRECTORY_NOT_EXIST |
5022 |
Директория не существует |
ERR_FILE_ISNOT_DIRECTORY |
5023 |
Это файл, а не директория |
ERR_CANNOT_DELETE_DIRECTORY |
5024 |
Директория не может быть удалена |
ERR_CANNOT_CLEAN_DIRECTORY |
5025 |
Не удалось очистить директорию (возможно, один или несколько файлов заблокированы и операция удаления не удалась) |
ERR_FILE_WRITEERROR |
5026 |
Не удалось записать ресурс в файл |
ERR_FILE_ENDOFFILE |
5027 |
Не удалось прочитать следующую порцию данных из CSV-файла (FileReadString, FileReadNumber, FileReadDatetime, FileReadBool), так как достигнут конец файла |
Преобразование строк |
||
ERR_NO_STRING_DATE |
5030 |
В строке нет даты |
ERR_WRONG_STRING_DATE |
5031 |
В строке ошибочная дата |
ERR_WRONG_STRING_TIME |
5032 |
В строке ошибочное время |
ERR_STRING_TIME_ERROR |
5033 |
Ошибка преобразования строки в дату |
ERR_STRING_OUT_OF_MEMORY |
5034 |
Недостаточно памяти для строки |
ERR_STRING_SMALL_LEN |
5035 |
Длина строки меньше, чем ожидалось |
ERR_STRING_TOO_BIGNUMBER |
5036 |
Слишком большое число, больше, чем ULONG_MAX |
ERR_WRONG_FORMATSTRING |
5037 |
Ошибочная форматная строка |
ERR_TOO_MANY_FORMATTERS |
5038 |
Форматных спецификаторов больше, чем параметров |
ERR_TOO_MANY_PARAMETERS |
5039 |
Параметров больше, чем форматных спецификаторов |
ERR_WRONG_STRING_PARAMETER |
5040 |
Испорченный параметр типа string |
ERR_STRINGPOS_OUTOFRANGE |
5041 |
Позиция за пределами строки |
ERR_STRING_ZEROADDED |
5042 |
К концу строки добавлен 0, бесполезная операция |
ERR_STRING_UNKNOWNTYPE |
5043 |
Неизвестный тип данных при конвертации в строку |
ERR_WRONG_STRING_OBJECT |
5044 |
Испорченный объект строки |
Работа с массивами |
||
ERR_INCOMPATIBLE_ARRAYS |
5050 |
Копирование несовместимых массивов. Строковый массив может быть скопирован только в строковый, а числовой массив – в числовой |
ERR_SMALL_ASSERIES_ARRAY |
5051 |
Приемный массив объявлен как AS_SERIES, и он недостаточного размера |
ERR_SMALL_ARRAY |
5052 |
Слишком маленький массив, стартовая позиция за пределами массива |
ERR_ZEROSIZE_ARRAY |
5053 |
Массив нулевой длины |
ERR_NUMBER_ARRAYS_ONLY |
5054 |
Должен быть числовой массив |
ERR_ONEDIM_ARRAYS_ONLY |
5055 |
Должен быть одномерный массив |
ERR_SERIES_ARRAY |
5056 |
Таймсерия не может быть использована |
ERR_DOUBLE_ARRAY_ONLY |
5057 |
Должен быть массив типа double |
ERR_FLOAT_ARRAY_ONLY |
5058 |
Должен быть массив типа float |
ERR_LONG_ARRAY_ONLY |
5059 |
Должен быть массив типа long |
ERR_INT_ARRAY_ONLY |
5060 |
Должен быть массив типа int |
ERR_SHORT_ARRAY_ONLY |
5061 |
Должен быть массив типа short |
ERR_CHAR_ARRAY_ONLY |
5062 |
Должен быть массив типа char |
ERR_STRING_ARRAY_ONLY |
5063 |
Должен быть массив типа string |
Работа с OpenCL |
||
ERR_OPENCL_NOT_SUPPORTED |
5100 |
Функции OpenCL на данном компьютере не поддерживаются |
ERR_OPENCL_INTERNAL |
5101 |
Внутренняя ошибка при выполнении OpenCL |
ERR_OPENCL_INVALID_HANDLE |
5102 |
Неправильный хэндл OpenCL |
ERR_OPENCL_CONTEXT_CREATE |
5103 |
Ошибка при создании контекста OpenCL |
ERR_OPENCL_QUEUE_CREATE |
5104 |
Ошибка создания очереди выполнения в OpenCL |
ERR_OPENCL_PROGRAM_CREATE |
5105 |
Ошибка при компиляции программы OpenCL |
ERR_OPENCL_TOO_LONG_KERNEL_NAME |
5106 |
Слишком длинное имя точки входа (кернел OpenCL) |
ERR_OPENCL_KERNEL_CREATE |
5107 |
Ошибка создания кернел — точки входа OpenCL |
ERR_OPENCL_SET_KERNEL_PARAMETER |
5108 |
Ошибка при установке параметров для кернел OpenCL (точки входа в программу OpenCL) |
ERR_OPENCL_EXECUTE |
5109 |
Ошибка выполнения программы OpenCL |
ERR_OPENCL_WRONG_BUFFER_SIZE |
5110 |
Неверный размер буфера OpenCL |
ERR_OPENCL_WRONG_BUFFER_OFFSET |
5111 |
Неверное смещение в буфере OpenCL |
ERR_OPENCL_BUFFER_CREATE |
5112 |
Ошибка создания буфера OpenCL |
ERR_OPENCL_TOO_MANY_OBJECTS |
5113 |
Превышено максимальное число OpenCL объектов |
ERR_OPENCL_SELECTDEVICE |
5114 |
Ошибка выбора OpenCL устройства |
Работа с WebRequest |
||
ERR_WEBREQUEST_INVALID_ADDRESS |
5200 |
URL не прошел проверку |
ERR_WEBREQUEST_CONNECT_FAILED |
5201 |
Не удалось подключиться к указанному URL |
ERR_WEBREQUEST_TIMEOUT |
5202 |
Превышен таймаут получения данных |
ERR_WEBREQUEST_REQUEST_FAILED |
5203 |
Ошибка в результате выполнения HTTP запроса |
Пользовательские символы |
||
ERR_NOT_CUSTOM_SYMBOL |
5300 |
Должен быть указан пользовательский символ |
ERR_CUSTOM_SYMBOL_WRONG_NAME |
5301 |
Некорректное имя пользовательского символа. В имени символа можно использовать только латинские буквы без знаков препинания, пробелов и спецсимволов (допускаются «.», «_», «&» и «#»). Не рекомендуется использовать символы <, >, :, «, /,, |, ?, *. |
ERR_CUSTOM_SYMBOL_NAME_LONG |
5302 |
Слишком длинное имя для пользовательского символа. Длина имени символа не должна превышать 32 знака с учётом завершающего 0 |
ERR_CUSTOM_SYMBOL_PATH_LONG |
5303 |
Слишком длинный путь для пользовательского символа. Длина пути не более 128 знаков с учётом «Custom», имени символа, разделителей групп и завершающего 0 |
ERR_CUSTOM_SYMBOL_EXIST |
5304 |
Пользовательский символ с таким именем уже существует |
ERR_CUSTOM_SYMBOL_ERROR |
5305 |
Ошибка при создании, удалении или изменении пользовательского символа |
ERR_CUSTOM_SYMBOL_SELECTED |
5306 |
Попытка удалить пользовательский символ, выбранный в обзоре рынка (Market Watch) |
ERR_CUSTOM_SYMBOL_PROPERTY_WRONG |
5307 |
Неправильное свойство пользовательского символа |
ERR_CUSTOM_SYMBOL_PARAMETER_ERROR |
5308 |
Ошибочный параметр при установке свойства пользовательского символа |
ERR_CUSTOM_SYMBOL_PARAMETER_LONG |
5309 |
Слишком длинный строковый параметр при установке свойства пользовательского символа |
ERR_CUSTOM_TICKS_WRONG_ORDER |
5310 |
Не упорядоченный по времени массив тиков |
Пользовательские ошибки |
||
ERR_USER_ERROR_FIRST |
65536 |
С этого кода начинаются ошибки, задаваемые пользователем |
0 Нет ошибок
1 Нет ошибки, но результат неизвестен
2 Общая ошибка
3 Неправильные параметры
4 Торговый сервер занят
5 Старая версия клиентского терминала
6 Нет связи с торговым сервером
7 Недостаточно прав
8 Слишком частые запросы
9 Недопустимая операция нарушающая функционирование сервера
64 Счет заблокирован
65 Неправильный номер счета
128 Истек срок ожидания совершения сделки
129 Неправильная цена
130 Неправильные стопы
131 Неправильный объем
132 Рынок закрыт
133 Торговля запрещена
134 Недостаточно денег для совершения операции
135 Цена изменилась
136 Нет цен
137 Брокер занят
138 Новые цены
139 Ордер заблокирован и уже обрабатывается
140 Разрешена только покупка
141 Слишком много запросов
145 Модификация запрещена, так как ордер слишком близок к рынку
146 Подсистема торговли занята
147 Использование даты истечения ордера запрещено брокером
MQL5 для чайников — Урок 1: Редактор кода, События, устройство mql5 программ
148 Количество открытых и отложенных ордеров достигло предела, установленного брокером.
4000 Нет ошибки
4001 Неправильный указатель функции
4002 Индекс массива — вне диапазона
4003 Нет памяти для стека функций
4004 Переполнение стека после рекурсивного вызова
4005 На стеке нет памяти для передачи параметров
4006 Нет памяти для строкового параметра
4007 Нет памяти для временной строки
4008 Неинициализированная строка
4009 Неинициализированная строка в массиве
4010 Нет памяти для строкового массива
4011 Слишком длинная строка
4012 Остаток от деления на ноль
4013 Деление на ноль
4014 Неизвестная команда
4015 Неправильный переход
4016 Неинициализированный массив
4017 Вызовы DLL не разрешены
4018 Невозможно загрузить библиотеку
4019 Невозможно вызвать функцию
4020 Вызовы внешних библиотечных функций не разрешены
4021 Недостаточно памяти для строки, возвращаемой из функции
4022 Система занята
4050 Неправильное количество параметров функции
4051 Недопустимое значение параметра функции
4052 Внутренняя ошибка строковой функции
4053 Ошибка массива
4054 Неправильное использование массива-таймсерии
4055 Ошибка пользовательского индикатора
4056 Массивы несовместимы
4057 Ошибка обработки глобальныех переменных
4058 Глобальная переменная не обнаружена
4059 Функция не разрешена в тестовом режиме
4060 Функция не разрешена
4061 Ошибка отправки почты
4062 Ожидается параметр типа string
4063 Ожидается параметр типа integer
4064 Ожидается параметр типа double
4065 В качестве параметра ожидается массив
4066 Запрошенные исторические данные в состоянии обновления
4067 Ошибка при выполнении торговой операции
4099 Конец файла
4100 Ошибка при работе с файлом
4101 Неправильное имя файла
📗 Урок N5 Переносим код на MetaTrader5, рисуем кнопки #mql
4102 Слишком много открытых файлов
4103 Невозможно открыть файл
4104 Несовместимый режим доступа к файлу
4105 Ни один ордер не выбран
4106 Неизвестный символ
4107 Неправильный параметр цены для торговой функции
4108 Неверный номер тикета
4109 Торговля не разрешена. Необходимо включить опцию Разрешить советнику торговать в свойствах эксперта.
4110 Длинные позиции не разрешены. Необходимо проверить свойства эксперта.
4111 Короткие позиции не разрешены. Необходимо проверить свойства эксперта.
4200 Объект уже существует
4201 Запрошено неизвестное свойство объекта
4202 Объект не существует
4203 Неизвестный тип объекта
4204 Нет имени объекта
4205 Ошибка координат объекта
4206 Не найдено указанное подокно
4207 Ошибка при работе с объектом
4210:ERR_CHART_PROP_INVALID = Неизвестное свойство графика
4211:ERR_CHART_NOT_FOUND = График не найден
4212:ERR_CHARTWINDOW_NOT_FOUND = Не найдено подокно графика
4213:ERR_CHARTINDICATOR_NOT_FOUND = Индикатор не найден
4220:ERR_SYMBOL_SELECT = Ошибка выбора инструмента
4250:ERR_NOTIFICATION_ERROR = Ошибка отправки push-уведомления
4251:ERR_NOTIFICATION_PARAMETER = Ошибка параметров push-уведомления
4252:ERR_NOTIFICATION_SETTINGS = Уведомления запрещены
4253:ERR_NOTIFICATION_TOO_FREQUENT = Слишком частые запросы отсылки push-уведомлений
5001:ERR_FILE_TOO_MANY_OPENED = Слишком много открытых файлов
5002:ERR_FILE_WRONG_FILENAME = Неверное имя файла
5003:ERR_FILE_TOO_LONG_FILENAME = Слишком длинное имя файла
5004:ERR_FILE_CANNOT_OPEN = Ошибка открытия файла
5005:ERR_FILE_BUFFER_ALLOCATION_ERROR = Ошибка размещения буфера текстового файла
5006:ERR_FILE_CANNOT_DELETE = Ошибка удаления файла
5007:ERR_FILE_INVALID_HANDLE = Неверный хендл файла (файл закрыт или не был открыт)
5008:ERR_FILE_WRONG_HANDLE = Неверный хендл файла (индекс хендла отсутствует в таблице)
5009:ERR_FILE_NOT_TOWRITE = Файл должен быть открыт с флагом FILE_WRITE
5010:ERR_FILE_NOT_TOREAD = Файл должен быть открыт с флагом FILE_READ
5011:ERR_FILE_NOT_BIN = Файл должен быть открыт с флагом FILE_BIN
5012:ERR_FILE_NOT_TXT = Файл должен быть открыт с флагом FILE_TXT
5013:ERR_FILE_NOT_TXTORCSV = Файл должен быть открыт с флагом FILE_TXT или FILE_CSV
5014:ERR_FILE_NOT_CSV = Файл должен быть открыт с флагом FILE_CSV
5015:ERR_FILE_READ_ERROR = Ошибка чтения файла
5016:ERR_FILE_WRITE_ERROR = Ошибка записи файла
5017:ERR_FILE_BIN_STRINGSIZE = Размер строки должен быть указан для двоичных файлов
5018:ERR_FILE_INCOMPATIBLE = Неверный тип файла (для строковых массивов-TXT, для всех других-BIN)
5019:ERR_FILE_IS_DIRECTORY = Файл является директорией
5020:ERR_FILE_NOT_EXIST = Файл не существует
5021:ERR_FILE_CANNOT_REWRITE = Файл не может быть перезаписан
5022:ERR_FILE_WRONG_DIRECTORYNAME = Неверное имя директории
5023:ERR_FILE_DIRECTORY_NOT_EXIST = Директория не существует
5024:ERR_FILE_NOT_DIRECTORY = Указанный файл не является директорией
5025:ERR_FILE_CANNOT_DELETE_DIRECTORY = Ошибка удаления директории
5026:ERR_FILE_CANNOT_CLEAN_DIRECTORY = Ошибка очистки директории
5027:ERR_FILE_ARRAYRESIZE_ERROR = Ошибка изменения размера массива
5028:ERR_FILE_STRINGRESIZE_ERROR = Ошибка изменения размера строки
5029:ERR_FILE_STRUCT_WITH_OBJECTS = Структура содержит строки или динамические массивы
Последнее редактирование модератором: 15.02.2016
chocolate
Гуру форума
Для того, чтобы не искать номер ошибки в ручную, нажимаете ctrl+f и вводите код ошибки
Тему сделал важной.
expforex
Программиров
Вы думаете кто-то поймет почему такая ошибка возникла? 90% не знают почему возникает ошибка 130 например. И задают кучу ненужных вопросов.
expforex
Программиров
Разбор полетов! Коды ошибок, их значения и способы устранения.
Разбор полетов! Коды ошибок, их значения и способы устранения.
Ввиду частых обращений ко мне, как специалисту в области программирования советников на мт4, с вопросами об ошибках, я попытаюсь Вам рассказать наиболее частые ошибки трейдера, и ошибки советников, способы их устранения и причины их возникновения.
Каждый советник имеет свой функциональный режим, но будем исходить из стандартного набора проблем и распространенных ошибок советников.
Краткая справка по ошибкам изложена в Коды Ошибок, а также в самом терминале MetaTrader4
Исходя из них — мы попробуем в стиле Руководства по ошибкам электронной техники описать проблему и способ ее решения.
Если Вашей ошибки нет в данной таблице, или способы решения не помогли, обратитесь к автору Вашего советника, но перед этим воспользуйтесь статьей Log файлы для детального рассмотрения проблемы с роботами* (Expforex Прибыльные советники — — Стратегии Форекс -)
ошибка 4, 146
Торговый сервер занят
1. Советник подал слишком много приказов одновременно
2. Не дождавшись ответа от сервера, при выполнении операции — советник пытается отправить новый приказ, Сервер перегружен
1. Перезагрузка терминала
2. Оптимизация кода советника с помощью функций обработки ошибок.
ошибка8, 141
Слишком частые запросы
1. Предыдущие причины ошибки, в сильно частом запросе.
ошибка129
Неправильная цена
1. Цена по которой Вы пытаетесь открыть позицию (BUY SELL)- неправильная
1. Золотое правило: BUY нужно открывать по Ask а закрывать по BID
SELL нужно открывать по BID а закрывать по ASK
ошибка130,145
Неправильные стопы
1. Стопы= Стоплосс, тейкпрофит или уровень открытия отложенника или лимитника.
2. Стопы расположены слишком близко к цене
3. Ваш счет открыт в группе ECN (ЕЦН) или NDD (НДД)
4. Ваш брокер использует Рыночное исполнение позиций
1. Проверьте значения Ваших стоплосс, тейпрофитов
2. Уточните минимальный стоп уровень по Вашему инструменту у брокера, при выставлении стопов — соблюдайте уровень минимальной дистанции
3. В хорошо написанном советнике должны быть функции работы на счетах ECN и NDD
ошибка131
Неправильный объем
1. Неправильный лот при открытии сделки
2. Лот, который вы пытаетесь открыть, меньше минимального
3. Лот, который вы пытаетесь открыть больше максимального
4. Разрядность лота отличается от разрядности брокера.
1. Проверьте правильность открытия лота, изучите спецификацию контракта и прочтите условия торговли в Вашем ДЦ
2.3. Проверьте, Минимальный и Максимальный лот в Вашем ДЦ и на Вашем счете. На некоторых типах счетов, минимальный лот может быть 0.01 а также 0.1 и даже 3. Максимальный лот может быть 5 лотов и 999 лотов и другие.
4. Уточните разрядность лотов на Вашем сервере. Если например разрядность лотов=1, то можно открыть лот 0.1 или 0.5 или 1.2 и так далее, с 1 знаком после запятой, если разрядность лота 2 знака, то исходя из минимального лота, лот может быть 0.01, 0.06, 0.17, 1.48. Также в некоторых ДЦ существует порядок степени лотов, например можно открыть 0.5 и 1 и 1.5 и так далее, а например 0.6 открыть нельзя. Уточните у своего брокера порядок установки лотов.
ошибка132
Рынок закрыт
1. Рынок закрыт в Выходные дни
1.Пробуйтесвязаться с рынком после выходных
ошибка133
Торговля запрещена
1. В данный момент торговля запрещена
2. По данной валютной паре запрещено торговать
1. Попробуйте торговать после выходных
ошибка134
Недостаточно денег для совершения операции
1. Лот, который Вы пытаетесь открыть, слишком большой, на него не хватает маржи
1. Проверьте уровень свободных средств, ирассчитайтесредства, которые Вам нужны, для открытия лота
2. Следите за уровнем Ваших свободных средств
ошибка135..138
Цена изменилась
1. Реквот
2. Слишком быстрый рынок
3. Брокер или ДЦ не дает Вам поставить позицию по заявленной цене
1. Не торгуйте в такие моменты
2. Увеличьте уровеньпроскальзывания, но помните что это влечет за собой открытие позиций не по заявленной Вами цене.
3. Сделайте в советнике функцию обработки ошибок и количество попыток открытия позиций
ошибка 147
Использование даты истечения ордера запрещено брокером
1. Ваш советник или Вы пытаетесь установить срок истечения отложенного ордера
1. В советнике, в функции OrderSend в параметре срок истечения поставьте=0
2. Не устанавливайте срок истечения ордера.
ошибка 148
Количество открытых и отложенных ордеров достигло предела, установленного брокером.
1. Максимальноеколичествооткрытых ордеров и позиций достигнут предела, установленного брокером.
1. Удалите или закройте часть позиций
2. Остановите процесс открытия новых позиций
3. Соблюдайте иерархию сделок, лучше открыть 1 позицию лото 0.1 одновременно, чем 10 позиций лотом 0.01 с потерей спреда.
- Вы пытаетесь поделить число на 0.
- Проверьте Весь код советника на наличие такой грубой ошибки, или же проверьте все значения из MarketInfo функций на момент возвращения 0, иногда при MarketInfo(Symbol(),MODE_SPREAD) возвращается не спред а 0 (у брокеров с плавающим спредом)
- В Вашем терминале запрещен вызов DLL
- Разрешите вызов DLL через Меню – сервис – Настройки – Советник – Разрешить вызов DLL, но помните, разрешайте данную опцию только для советников, в которых Вы уверены, и уверены что в ДЛЛ не сидит какой-нибудь троян. Проверьте ДЛЛ на наличие троянов с помощью антивируса.
- Библиотека повреждена
- Вызов библиотеки осуществляется с ошибкой
- Проверьте библиотеку DLL
- Обратитесь к разработчику данной библиотеки
- В Вашем терминале запрещен вызов функций из внешних экспертов
- Разрешите вызов функций через Меню – сервис – Настройки – Советник – Разрешить вызов внешних экспертов,
- Данный файл не существует
- Данный файл заблокирован
- Проверьте наличие указанного файла в папке experts – files
- Проверьте не заблокирован ли файл системой антивируса. Разрешен ли режим записичтения файла
- Символа нет в обзоре рынка
- В обзоре рынка – правой кнопкой мыши – показать все символы
- Проверить названия символа в советнике и наличие его в обзоре рынка
- Некоторые советники используют четкие названия без суфиксов, а брокеры намеренно ставят суфиксы, например EURUSDx где х – суфикс.
- Тикет ордера, который выбирает эксперт – не существует
- Эксперт пытается выбрать тикет, но данный ордер был закрыт другим советником или руками.
- При попытке осуществления приказа над ордером, тикет был исполнен и закрыт брокером.
- Если данная ошибка появляется очень часто, 100-1000 раз за минуту, проверьте функции Вашего советника
- Отключите другие советники, или настройте их так, чтобы они не конфликтовали, не закрывайте ордер руками, когда эксперт выполняет операцию
- Советнику запрещено торговать, на графике грустный смайл или крестик
- Включите галочку «Разрешить советнику торговать» в вкладе при установке советника, либо в меню- сервис – настройки – советники.
- В настройках советника, в вкладке Общие не разрешен тип позиций
- В Вкладке Общие, при установке советника есть выбор позиций:
Long Short – Разрешены BUY SELL
Only Long– Разрешен BUY
Only Short – Разрешен SELL
НЕ ЗАБЫВАЕМ ГОВОРИТЬ СПАСИБО И НАЖИМАТЬ КНОПКУ
Источник: forexsystemsru.com
Запрос на покупку не может быть выполнен — ошибка:4756 [Неподдерживаемый режим заполнения]
Я попытался использовать свой советник, но получил следующее сообщение об ошибке:
Запрос на покупку не может быть выполнен — ошибка:4756
В чем смысл этой ошибки? Означает ли это, что брокер заблокирован с помощью роботов EA?
РЕДАКТИРОВАТЬ: Я также проверил вкладку журнала и нашел этот журнал ошибок:
2019.01.13 12:07:23.775 Trades ‘2323232’: failed exchange buy 1.0K وبملت at 2623 sl: 2373 tp: 2873 [Unsupported filling mode]
РЕДАКТИРОВАТЬ 2: Я также попытался прокомментировать код fill_type или проверить все методы типов заполнения. Единственное изменение произошло, когда я использовал этот код:
mrequest.type_filling = ORDER_FILLING_RETURN; //ORDER_FILLING_FOK; // ORDER_FILLING_IOC;
И получил эти новые ошибки во вкладке журнала:
2019.01.14 12: 22: 26.819 Сделки ‘89412’: принята биржевая покупка 1.0K خساپا на рынке sl: 1297 тп: 1433
2019.01.14 12: 22: 26.828 Сделки ‘89412’: отклонены биржевые покупки 1.0K atساپا на рынке sl: 1297 tp: 1433
Источник: stackru.com
Обработка ошибок
Даже если Вы создадите идеального «эксперта», ошибок не избежать, уж очень много факторов которых Вы не можете контролировать (связь, провайдер, ДЦ, терминал и тд.). Ошибки при выполнении торговых операций (открытие, удаление или модификация ордеров) можно разделить на две группы.
Первая – это когда «советник» не верно оформляет «заказ» на торговую операцию. Такой ордер терминал не исполняет а возвращает нам код ошибки. Код ошибки это число, например ошибка номер 130 – неправильно выставлены стопы.
Вторая – это когда с нашей стороны ордер оформлен верно и терминал послал его на исполнение, возвращается ошибка обрив связи, брокер занят и тд.
Итак научим наш «советник» распознавать эти ошибки и реагировать на них.
При установке ордеров мы используем торговую функцию OrderSend, при успешном исходе она возвращает номер открытого ордера, а при неудачи (ошибке) -1.
При удалении (OrderDelete), если ордер удален получим TRUE, если нет FALSE (ошибка).
Что бы узнать код ошибки вызывается функция GetLastError(), которая возвращает номер последней ошибки.
После каждой торговой операции (открытие, модификация и удаление), проверяем на наличие ошибок, в нашем «советнике» таких блоков где нужно вставить код четыре, каждый раз после функции OrderSend и OrderDelete.
Если ошибка есть – вызываем функцию GetLastError. Получим номер ошибки, но этот номер нам нужен как зайцу стопсигнал, все эти номера все одно не упомнишь. Вызываем функцию inf и передаем ей номер ошибки.
inf(15, GetLastError()); // если дошли сюда значит есть ошибка. узнаем какая именно
В этой функции есть блок который распознает ошибку и уже на «человеческом» языке сообщит нам в чем проблема.
case 15: switch(Number) // Переход на номер ошибки < case 2: Graf_Text = «Общая ошибка.»; break; case 4: Graf_Text = «Торговый сервер занят.»; break; case 129: Graf_Text = «Неправильная цена. «; break; case 135: Graf_Text = «Цена изменилась.»; break; case 136: Graf_Text = «Нет цен. Ждём новый тик..»; break; case 137: Graf_Text = «Брокер занят.»; break; case 146: Graf_Text = «Подсистема торговли занята.»; break; case 5 : Graf_Text = «Старая версия терминала.»; break; case 64: Graf_Text = «Счет заблокирован.»; break; case 133: Graf_Text = «Торговля запрещена»; break; case 134: Alert(«Недостаточно денег для совершения операции.»); return(0); // Выход из функции default: Graf_Text = StringConcatenate(«Возникла ошибка «,Number); >break;
Здесь нет ничего сложного и Вы сами можете сделать так, чтобы «советник» обрабатывал те ошибки, которые Вы посчитаете наиболее важными.
То что мы знаем об ошибке – хорошо, еще лучше чтобы «эксперт» сам реагировал на конкретную ситуацию. Например, если есть ошибка 137 (Брокер занят), а «советник» будет продолжать посылать по 100 запросов в секунду, счет могут заблокировать. В этом и подобных случаях чтобы наш «эксперт» не был назойливым при подобных ошибках будем делать паузу (пережидать несколько секунд).
if(IsTesting() == false) Sleep(5000); // если это не тестирование — «засыпаем» на 5 секунд.
Sleep() – функция останавливает «эксперта» на заданное время.
IsTesting() – функция возвращает TRUE в режиме тестирования, иначе возвращает FALSE.
Если это тестирование то паузы не нужны.
Вносим изменения в блок обработки ошибок.
case 15: switch(Number) // Переход на номер ошибки < case 2: Graf_Text = «Общая ошибка.»; break; case 4: Graf_Text = «Торговый сервер занят.»; if(IsTesting() == false) Sleep(5000); // если это не тестирование — «засыпаем» на 5 секунд. break; case 129: Graf_Text = «Неправильная цена.»; break; case 130: Graf_Text = «Неправильная дистанция.»; break; case 135: Graf_Text = «Цена изменилась.»; break; case 136: Graf_Text = «Нет цен. Ждём новый тик..»; if(IsTesting() == false) Sleep(1); // если это не тестирование — «засыпаем» на 1 миллисекунду. break; case 137: Graf_Text = «Брокер занят.»; if(IsTesting() == false)Sleep(5000); // если это не тестирование — «засыпаем» на 5 секунд. break; case 146: Graf_Text = «Подсистема торговли занята.»; if(IsTesting() == false) Sleep(500); // если это не тестирование — «засыпаем» на пол секунды. break; case 5 : Graf_Text = «Старая версия терминала.»; break; case 64: Graf_Text = «Счет заблокирован.»; break; case 133: Graf_Text = «Торговля запрещена»; break; case 134: Alert(«Недостаточно денег для совершения операции.»); return(0); // Выход из функции default: Graf_Text = StringConcatenate(«Возникла ошибка «,Number); >break;
Теперь «советник» будет не только сообщать об ошибках но и реагировать на них.
Источник: forexlab.ru
Справочник по языку программирования MQL5
Е с т ь н е к от о р ы е о с о б е н н ос ти р аб о ты п р и ук азан и и ф л аг о в ч те н и я и зап и с и :
Е с л и у к аза н F I L E _R E A D – де л ае т с я п о п ы т к а от к р ы т и я уж е с у щ е с т в у ю щ е г о ф ай л а. Е с л и ф ай л н е
с ущ е с тв у е т , т о о тк р ы ть ф ай л н е п о л у ч и тс я, н ов ы й ф ай л н е с о здае т с я .
Е с л и F I LE _R E AD | F I L E _W R I T E – с оздаё т с я н ов ы й ф ай л е с л и фа й л с так и м и ме н ем от с ут с тв у е т .
Е с л и F I LE _W RI T E – ф ай л с о здае т с я зан ов о с н у л е в ы м р азм е р ом .
П р и о тк р ы ти и ф ай л а об яза те л ь н о д о л же н б ы ть у к аз ан ф л аг F I L E _W RI T E и / и л и ф л аг F I L E _ R E A D .
Фл аг и , оп р е дел яю щ и е ти п ч те н и я о тк р ы то г о ф ай л а, и ме ю т п р и о р и т е т. Самы й с тар ш и й ф л аг
F I L E _ CSV , зат е м с л е ду е т п о с та р ш и н с т в у ф л а г F I L E _B I N , и н аи ме н ьш и й п р и о р и т е т и ме ет ф л аг
F I L E _ T X T . Та к и м о б р аз ом , ес л и в д р у г б у ду т у к аз ан ы с р аз у н е с к о л ь к о ф л аг о в ( F I LE _T XT| F I L E _CSV
и ли F I L E _ TXT | F I L E _B I N и л и F I L E _B I N | F I L E _CSV ) , т о бу д е т и с п о л ь зо в ан с амы й с т ар ш и й п о
п р и о р и те т у ф л аг .
Фл аг и , о п р еде л я ю щ и е ти п к о ди р о в к и , т ак же и ме ю т п р и ор и те т . Фл аг F I L E _ U N I C OD E и ме е т б ол е е
с тар ш и й п р и ор и те т , че м ф л аг F I L E _A N SI . П о э то му п р и у к аз ан и и к о мб и н ац и и F I L E _U N I CO D E |
F I L E _ A N S I б уде т и с п о л ь зо в ат ь с я ф л аг F I L E _ U N I C OD E .
Е с л и н е у к аза н о н и F I L E _U N I C OD E , н и F I LE _A N S I , то п одр азу м е в ае т с я F I L E _ U N I C OD E . Е с л и н е
Источник: www.studmed.ru
Recommended: ASR Pro
Download this software and fix your PC in minutes.
If you have Ordersend Error 3 Metatrader installed on your system, this guide will help you fix it. OrderSend 3 error is called ERR_INVALID_TRADE_PARAMETERS (Invalid Trade Parameters) inside MT4 principle. Why is OrderSend error 3 displayed? ERR_INVALID_TRADE_PARAMETERS means that some of the parameters passed to the OrderSend () element are incorrect.
i go
Okay, try one series … the code is long enough because I will focus on another track.
// + ——————————————– – ———— ———————- +// | Submit a request with the specified characteristics (TP, SL – absolute values) Â Â |// + ———————————————– ———— ——————- +int PlaceOrderAbs (int Type, double Lots, double Price, int Slippage, double StopLoss, double TakeProfit, string Name, bool TakeCare = false, int HoldSeconds = 0, datetime Expire = 0, int MagicNr = 0)
Although usually the same set of text is executed at the same time, it still works stably (I’ve tried doing the calculations at least 20 times).
Here are samples of each type of journal when it is currently placing a pending order:
06/12/2012 18:12 Â XXXXX EURUSD, M5: # 2 06/12/2012 18:12 Stop selling 0.01 EURUSD 1.24982 1.25049 1.24915 0.00000 0.00 0.00 0.00 PivotAllSell 0 Expired 2012/06/12 6:23 PM06/12/2012 06:12 PM Â XXXXX EURUSD, M5: open sell # 2 originates from 0.01 EURUSD at a price of 1.24982 sl: 1.25049 tp: 1.24915 OK2012.06.18: 12 XXXXX 12 EURUSD, M5: INFORMATION: MarketInfo – Ask: 1.25039000, Bid: 1.25029000, StopLevel: 40.0 (0.00040000), FreezeLevel: 0.0 (0.0000000000)2012.06.12 18: 12 XXXXX EURUSD, M5: PlaceOrderAbs information: params – Type: 5, Lots: 0.01000000, Price: 1.24982000, Slippagee: 1, SL: 1.25049000 TP: 1.24915000, HoldSeconds: 6000, Expiry Date: 2012.06.12 18:232012.06.12 EURUSD, M5: 18: 12Â xxxxx INFORMATION: placement pending sale with SL: 1.25049000, TP: 1.24915000
And here is the log if you were unable to place an unauthorized order:
06/12/2012 06:12 PM Â XXXXX EURUSD, M5: Evaluation information: Terms of sale termination. Bid-OpenPrice (> = StopLevel): 0.00082, SL-OpenPrice (> = StopLevel): 0.00067, OpenPrice-TP (> = StopLevel): 0.000672012.06.12 18:12 Â XXXXX INFORMATION: eurusd, m5: OrderSend parameters – Lots: 0.01000000, Price: 1.24982, Slippage: 1, SL: 1.25049, TP: 1.24915, Closing: 2012.06.12 18:222012.06.12 18:12 Â XXXXX EURUSD, M5: ERROR: order failed, error: 3 invalid parameters2012 trade.06.12 18:12 Â XXXXX EURUSD, M5: Error OrderSend 32012.06.18: 12 XXXXX 12 EURUSD, M5: INFORMATION: MarketInfo – Ask: 1.25076000, Bid: 1.25064000, StopLevel: 40.0 (0.00040000), FreezeLevel: 0.0 (0.00000000)2012.06.12 18:12 Â XXXXX EURUSD, M5: Information PlaceOrderAbs: parameters by type: 5, Lots: 0.01000000, Price: 1.24982000, Slippage: 1, SL: 1.25049000 TP: 1.24915000, HoldSeconds: 6000, Expiry date: 2012.06.12 18:222012.06.12 EURUSD, M5: 18: 12Â xxxxx INFORMATION: placement pending sale with SL: 1.25049000, TP: 1.24915000
What really makes me suspicious is that one day later, on the same EA disc as the previous failed attempt, it managed to establish order growths:
2012/06/12 18:13 PM Â XXXXX EURUSD, M5: 1 2012/06/12 18:13 PM Promo-stop 0.01 EURUSD 1.24982 1.25049 1.24915 0.00000 0.00 0, 00 0.00 PivotAllSell 0 Expiry date 2012/06/12 6: 23h2012.06.12 18:13 Â XXXXX EURUSD, M5: Open stop selling # 1 0.01 EURUSD at 1.24982 sl: 1.25049 tp: 1.24915 ok2012.06.12 18: 13 Â XXXXX EURUSD, M5: INFORMATION: MarketInfo – Ask: 1.25086000, Bid: 1.25074000, StopLevel: 40.0 (0.00040000), FreezeLevel: 0.0 (0.00000000)2012.06.18: 13 Â XXXXX 12 EURUSD, M5: INFORMATION: Parameters PlaceOrderAbs – Type: 5, Lots: 0.01000000, Price: 1.24982000, Slippage: 1, SL: 1.25049000 TP: 1.24915000, HoldSeconds: 6000, Expiry date: 2012.06.12 18:232012.06.12 18:13 XXXXX EURUSD, M5: Placement information: expected SALE with SL: 1.25049000, TP: 1.24915000
As you will see, all the parameters entered are the same except for the Expire parameter.
Recommended: ASR Pro
Are you tired of your computer running slowly? Is it riddled with viruses and malware? Fear not, my friend, for ASR Pro is here to save the day! This powerful tool is designed to diagnose and repair all manner of Windows issues, while also boosting performance, optimizing memory, and keeping your PC running like new. So don’t wait any longer — download ASR Pro today!
I’ve only experienced this on Strategy Tester , absolutely not on a demo account, but I don’t know if this could be a new problem.
Download this software and fix your PC in minutes.
Ordersend Fehler 3 Metatrader
Orderend Errore 3 Metatrader
Orderverzendfout 3 Metatrader
Commandesend Erreur 3 Metatrader
Oshibka Ordersend 3 Metatrader
주문 보내기 오류 3 메타 트레이더
Orderend Error 3 Metatrader
Erro 3 De Ordem De Envio De Metatrader
Ordenar Error 3 Metatrader
Orderskicka Fel 3 Metatrader