Mql4 ordersend error 4051

Функция OrderClose — Error 4051 Решил начать программировать на mql. Написал советник , проверяя как открываются и закрываются ордера. Открывается ордер при соответствующих условиях нормально, а при закррытии появляется Error 4051 — Invalid ticket to OrderClose Function. Помогите пожалуйста разобраться, что я делаю не так. Код советника ниже. double MA; MA=iMA(NULL,0,MA_Period,0,MODE_SMA,0,0); int T; T=OrdersTotal(); […]

Решил начать программировать на mql. Написал советник , проверяя как открываются и закрываются ордера. Открывается ордер при соответствующих условиях нормально, а при закррытии появляется Error 4051 — Invalid ticket to OrderClose Function. Помогите пожалуйста разобраться, что я делаю не так. Код советника ниже.

double MA;
MA=iMA(NULL,0,MA_Period,0,MODE_SMA,0,0);
int T;
T=OrdersTotal();
int ticket;
bool a;

После открытия позиции тикет у Вас не сохраняется. И при следующем запуске start переменная ticket инициализируется нулём. Нужно объявить ею как статическую или глобальную чтобы её значение сохранялось. Также полезно контролировать выполнение функции OrderSelect , например:

выбираю ордер, узнаю тип, узнаю тиккет, пытаюсь удалить отложенный ордер — выдаёт ошибка 4051

if (a2>1)
OrderDelete(ticket2);
Alert (GetLastError()); // Сообщение об ошибке 4051

Ордера на продажу переводит в без убыток нормально, а тралить начинает с ошибки 4051. Выдает 130. Но если условие соответствует, модифицирует.

2021.04.15 21:18:45.263 2019.01.24 18:51:05 %WR EURUSD,M15: OrderModify error 130
2021.04.15 21:18:45.263 2019.01.24 18:51:05 %WR EURUSD,M15: Ордер OP_SELL за №33: модифицирован стоп лосс не удалось. Ошибка №130
2021.04.15 21:18:45.263 2019.01.24 18:51:05 %WR EURUSD,M15: OrderModify error 130
2021.04.15 21:18:45.263 2019.01.24 18:51:05 %WR EURUSD,M15: Ордер OP_SELL за №33: модифицирован стоп лосс
2021.04.15 21:18:45.263 2019.01.24 18:51:05 %WR EURUSD,M15: modify #33 sell 0.10 EURUSD at 1.13438 sl: 1.13398 tp: 0.00000 ok
2021.04.15 21:18:45.263 2019.01.24 18:51:04 %WR EURUSD,M15: Ордер OP_SELL за №33: модифицирован стоп лосс не удалось. Ошибка №130
2021.04.15 21:18:45.263 2019.01.24 18:51:04 %WR EURUSD,M15: OrderModify error 130
2021.04.15 21:18:45.263 2019.01.24 18:51:04 %WR EURUSD,M15: Ордер OP_SELL за №33: модифицирован стоп лосс не удалось. Ошибка №130
2021.04.15 21:18:45.263 2019.01.24 18:51:04 %WR EURUSD,M15: OrderModify error 130
2021.04.15 21:18:45.263 2019.01.24 18:51:04 %WR EURUSD,M15: Ордер OP_SELL за №33: модифицирован стоп лосс не удалось. Ошибка №130
2021.04.15 21:18:45.263 2019.01.24 18:51:04 %WR EURUSD,M15: OrderModify error 130
2021.04.15 21:18:45.263 2019.01.24 18:51:03 %WR EURUSD,M15: Ордер OP_SELL за №33: модифицирован стоп лосс
2021.04.15 21:18:45.263 2019.01.24 18:51:03 %WR EURUSD,M15: modify #33 sell 0.10 EURUSD at 1.13438 sl: 1.13418 tp: 0.00000 ok
2021.04.15 21:18:45.263 2019.01.24 18:51:03 %WR EURUSD,M15: Ордер OP_SELL за №33: модифицирован стоп лосс не удалось. Ошибка №4051
2021.04.15 21:18:45.263 2019.01.24 18:51:03 %WR EURUSD,M15: OrderModify error 4051
2021.04.15 21:18:45.263 2019.01.24 18:51:03 %WR EURUSD,M15: invalid stoploss for OrderModify function
2021.04.15 21:18:45.263 2019.01.24 18:51:03 %WR EURUSD,M15: Ордер OP_SELL за №33: модифицирован стоп лосс в безубыток
2021.04.15 21:18:45.263 2019.01.24 18:51:03 %WR EURUSD,M15: modify #33 sell 0.10 EURUSD at 1.13438 sl: 1.13438 tp: 0.00000 ok
2021.04.15 21:18:45.233 2019.01.24 18:15:00 %WR EURUSD,M15: Ордер OP_SELL открыт!

А с ордерами на покупку все ОКей.

ПС. Нормализация не помогает. Да к тому же все нормализовано в OnInit.

Источник

MT4 Error 4051: How to Fix Invalid Trading Lot Amount

What is MT4 error 4051?

The MT4 error 4051 is a MetaTrader OrderSend error suggesting the trading platform is denying an order due to an invalid trading lot amount.

Whenever an MT4 receives a trade request, it thoroughly examines the parameters of the order. When an EA sends an order request, the system automatically verifies the maximum and minimum limit of trading volumes allowed for the particular entry. At any point, the platform detects an order with a trading lot that you are not permitted to execute; it denies the order request showing ERR_INVALID_FUNCTION_PARAMETER_VALUE.

An OrderSend error 4051 doesn’t necessarily mean the system rejects all the trade requests or disables your trading bot permanently. The MT4 executes an order immediately when it comes with an appropriate amount of trading lot. On the other hand, the restriction over the trading volume prevents your account from suffering unexpected losses due to the wrong parameters of an EA.

Why does MT4 error 4051 happen?

You are exceeding your trading limit

The minimum order limit in MT4 is 0.01 lots, and the maximum limit is 200 lots. If your bot determines a trading lot less than 0.01 or greater than 200, the system will reject the order and show the OrderSend error 4051.

In some cases, your broker server might fail to read the lot amount correctly. For instance, you are trying to execute an order with 0.01 volume, but the minimum order limit of the broker is 0.1. So the server will define the volume as invalid since it turns lesser than the minimum order limit.

Conversely, if you ever try to place an order with more than 200 lots at a time, the MT4 will still refuse to activate the order because it exceeds the maximum trade volume limit.

Your EA is generating inappropriate order parameters

Such problems mainly occur due to an error in EA coding. A malfunction in the programming code may tempt your bot to produce unrealistic trading lot figures which are not recognized as valid parameters by MetaTrader or the broker server.

Apart from an invalid trading lot, your trade can be disallowed for the malfunction of other parameters. For instance, you cannot place a buy order with a stop-loss limit greater than your trade entry or take profit level. These types of problems may happen for two reasons:

  • An error in the EA coding
  • The EA is not compatible with the trading system

How to fix MT4 error 4051?

How to fix OrderSend error for invalid lot amount

    Use NormalizeDouble in your code

When the system confirms an invalid function parameters value, you may consider using the NormalizeDouble function:

Parameters:
value – determines a value with a floating point.
digits – determines the accuracy formate such as the number of digits after the decimal point.
Please note that you must normalize all the values calculated for stop-loss, take-profit, and pending order prices.
Adjust the value of NormalizeDouble

Sometimes a normalized number may become greater than the DoubleToString value like the following example:


Make sure normalized figures are rounded

Here is an example showing how to keep the normalized values round figured:


Broker trading limitations for lot size

f your system still shows the OrderSend error 4051, it might be an issue with your broker trading limitations. In that case, contact the broker and try to be more specific about their maximum and minimum limit of trading lots.

Источник

Ошибка 4051

В истории есть закрытые ордера.

Выбирать ордер нужно в цикле (в общем случае)
Например так (МТ4) —

Дело не в том, какой цикл использовать (можно хоть for, хоть while), а в том, как он построен. В коде, который Вы привели, цикла нет вообще, выбирается ордер, которого заведомо нет в списке. Проверки успешности выбора ордера тоже нет.

Параметры в функции OrderSend вообще очень странные.

Дело не в том, какой цикл использовать (можно хоть for, хоть while), а в том, как он построен. В коде, который Вы привели, цикла нет вообще, выбирается ордер, которого заведомо нет в списке. Проверки успешности выбора ордера тоже нет.

Параметры в функции OrderSend вообще очень странные.

Не нужно рассчитывать на историю счета. В МТ4 пользователь может изменить глубину отображения истории, чем собьет с толку любой алгоритм, ориентирующийся на нее. Лучше отслеживать наличие ордеров, открытых советником, в списке рабочих ордеров. И только тогда, когда ордер исчез из этого списка (был закрыт), открывать следующий ордер.

Не нужно рассчитывать на историю счета. В МТ4 пользователь может изменить глубину отображения истории, чем собьет с толку любой алгоритм, ориентирующийся на нее. Лучше отслеживать наличие ордеров, открытых советником, в списке рабочих ордеров. И только тогда, когда ордер исчез из этого списка (был закрыт), открывать следующий ордер.

Эксперт работает не с одним ордером? Тогда все усложняется. При открытии каждого ордера нужно запомнить его тикет в собственном массиве. А потом на каждом тике проверять, существует ли этот ордер.

При открытии ордера:

Затем для проверки существования ордера:

Ну и кроме того нужно озаботиться сохранением накопленных данных (в файл, к примеру) для случаев прерывания работы советника.

Эксперт работает не с одним ордером? Тогда все усложняется. При открытии каждого ордера нужно запомнить его тикет в собственном массиве. А потом на каждом тике проверять, существует ли этот ордер.

При открытии ордера:

Затем для проверки существования ордера:

Ну и кроме того нужно озаботиться сохранением накопленных данных (в файл, к примеру) для случаев прерывания работы советника.

Это всего лишь пример кода. Писалось даже без проверки синтаксиса. Смысл — показать направление. Поэтому могут быть какие-то мелкие ошибки.

Это всего лишь пример кода. Писалось даже без проверки синтаксиса. Смысл — показать направление. Поэтому могут быть какие-то мелкие ошибки.

Источник

Error 4051, somewhere in code?

Im trying to backtest this martingale EA and i get this error 4051 in the journal, and i can see it

effects up to 50% of orders from opening, when i compiled the code this warning comes up

» return value of ‘OrderModify’ should be checked Template EA.mq4 265 14″

i have pasted the part of the code below where the warning is, unfortunately i dont know how to code just yet, and wouldnt

have a clue how to fix it.

Anybody can help me with it?

return value of ‘OrderModify’ should be checked Template EA.mq4 265 14

First, the 4051 error is a runtime error that exists in your OrderSend() function call. From the info in the log, it appears that the information contained in the lotsize variable you are passing to OrderSend() is invalid. Check how you are calculating the lot size to find the error. Also, please use the search function to compare your calculation for lot size to others who have posted/answered questions in this forum about lot size calculation.

Finally, here is a link to a good discussion regarding checking return values:

Thanks for the reply i have given a good shot at the information you gave me, but i really have no idea how to code yet, im just starting to learn

and i really want to use and backtest this EA, any chance you can have a quick look at the code for me? i think it is a very easy fix just i wouldnt have a clue where to start..

i attached it if you have the time would be super helpful 🙂

If you really have no idea how to code yet, it really is better if you start with small and simple code and thereafter work into more and more complex coding once you get better and more comfortable with the language. Just a suggestion.

I’m not going to debug your code. you will learn more about coding and MQL4 if you do it yourself. This forum has many, many answers—you just have to search for them. With that said, I do have a suggestion: try not to use NormalizeDouble() in your normalizelot() function; the results may be unreliable in this context.

I suggest the following instead:

This code forces your lot size (aka, size) to be a multiple of lotstep, rather than rounded to the nearest decimal digit of lotstep. It also forces «size» to be at or above minlot and at or below maxlot, as you had in your code.

Источник

OrderClose error 4051

Hi, I have been trying out two EAs in S/Tester; one is a BUY oriented EA, the other is exactly the same but SELL oriented. The Buy oriented works fine fine but the Sell gives ‘OrderClose error 4051’

I’ve narrowed this down to the specific area of code but, apart from long/short trade difference, can’t why one works and not the other.

This is the first time I’ve asked this forum for help, but just about given up on this one.

All comments welcome. Many thanks.

When you post code please use the CODE button (Alt-S)!

Did you read Sergey’s post?

Sergey Golubev :

When you post code please use the CODE button (Alt-S)!

Please edit your post and use the code button (Alt+S) when pasting code.

EDIT your original post, please do not just post the code correctly in a new post.

Did you read Sergey’s post?

Please edit your post and use the code button (Alt+S) when pasting code.

EDIT your original post, please do not just post the code correctly in a new post.

Re-post it. Yes okay.

This is a re-post.

Hi, I have been trying out two EAs in S/Tester; one is a BUY oriented EA, the other is exactly the same but SELL oriented. The Buy oriented works fine fine but the Sell gives ‘OrderClose error 4051’

I’ve narrowed this down to the specific area of code but, apart from long/short trade difference, can’t why one works and not the other.

The two sets of code are:-

— Buy Oriented EA that works:

Sell Oriented EA Code giving Errors: «OrderClose error 4051″ and » invalid ticket for OrderClose function»:

So far as I can see it’s the ‘Retracement’ part of the code which is giving the problem. All contributions gratefully received. Many thanks

Источник

Adblock
detector

В исполняющей подсистеме клиентского терминала имеется возможность сохранения кода ошибки в случае ее возникновения при выполнении mql-программы. Для каждой исполняемой mql-программы предусмотрена своя собственная специальная переменная last_error. Перед запуском функции OnInit() переменная last_error обнуляется. В случае возникновения патовой ситуации во время вычислений или во время вызова встроенной функции переменная last_error принимает соответствующий код ошибки. Значение, сохраненное в этой переменной, можно получить при помощи функции GetLastError(). При этом переменная last_error обнуляется.

Существует ряд критических ошибок, при возникновении которых выполнение программы немедленно завершается:

Константа Значение Описание
ERR_WRONG_FUNCTION_POINTER 4001 При вызове внутренней функции обнаружен неправильный указатель вызываемой функции
ERR_NO_MEMORY_FOR_CALL_STACK 4003 При вызове внутренней функции невозможно перераспределить память для стека вызовов функции
ERR_RECURSIVE_STACK_OVERFLOW 4004 При рекурсивном вызове функции исчерпан стек данных
ERR_NO_MEMORY_FOR_PARAM_STRING 4006 При вызове внутренней функции невозможно распределить память для передачи строки в качестве параметра функции
ERR_NO_MEMORY_FOR_TEMP_STRING 4007 Невозможно распределить временный буфер для операций со строками
ERR_NO_MEMORY_FOR_ARRAYSTRING 4010 При присвоении невозможно перераспределить память для строки в массиве
ERR_TOO_LONG_STRING 4011 При присвоении слишком длинная результатная строка для помещения в служебный буфер (невозможно перераспределить память для служебного буфера)
ERR_REMAINDER_FROM_ZERO_DIVIDE 4012 Деление на 0 при взятии остатка от деления
ERR_ZERO_DIVIDE 4013 Деление на 0
ERR_UNKNOWN_COMMAND 4014 Неизвестная инструкция

Если выполнение программы было прервано из-за критической ошибки, то при следующем запуске функции OnTick или функции OnDeinit можно прочитать код этой ошибки, используя функцию GetLastError(). Перед выполнением функций OnTick и OnDeinit переменная last_error не сбрасывается.

Существует ряд критических ошибок, связанных с вызовом импортируемых функций, при возникновении которых выполнение эксперта или индикатора немедленно прерывается и функция OnTick не запускается до тех пор, пока не будет произведена переинициализация эксперта или индикатора.

Константа Значение Описание
ERR_CANNOT_LOAD_LIBRARY 4018 При вызове импортируемой функции произошла ошибка загрузки dll или ex4-библиотеки
ERR_CANNOT_CALL_FUNCTION 4019 При вызове импортируемой из функции выяснилось, что dll или ex4-библиотека не содержит эту функцию
ERR_DLL_CALLS_NOT_ALLOWED 4017 При вызове импортируемой из dll функции выяснилось, что установлен запрет на вызовы из dll
ERR_EXTERNAL_CALLS_NOT_ALLOWED 4020 При вызове импортируемой из ex4-библиотеки выяснилось, что установлен запрет на вызовы из ex4
ERR_FUNCTION_NOT_CONFIRMED 4060 Не подтвержден вызов импортируемой из dll функции. Если нажата кнопка «Нет», то выполнение программы не прерывается. Если нажата кнопка «Отмена», то выполнение программы немедленно прерывается

Остальные ошибки не прерывают работу программы.

Константа Значение Описание
ERR_ARRAY_INDEX_OUT_OF_RANGE 4002 Обращение к элементу массива, номер которого находится за пределами массива
ERR_NOT_INITIALIZED_STRING 4008 Неинициализированная строка; строке, участвующей в каком-либо выражении, не присвоено никакого значения
ERR_NOT_INITIALIZED_ARRAYSTRING 4009 Неинициализированная строка в массиве строк; строке, участвующей в каком-либо выражении, не присвоено никакого значения
ERR_NO_MEMORY_FOR_RETURNED_STR 4021 Невозможно перераспределить память для строки, возвращаемой из функции

Никогда не генерируется код ошибки ERR_NO_MQLERROR (4000).

Имеется ряд ошибок, которые случаются только в результате сбоя. При постоянном проявлении какой-либо из нижеуказанных ошибок следует связаться с разработчиками.

Константа Значение Описание
ERR_WRONG_FUNCTION_POINTER 4001 При вызове внутренней функции обнаружен неправильный указатель вызываемой функции
ERR_UNKNOWN_COMMAND 4014 Неизвестная инструкция
ERR_NOT_INITIALIZED_ARRAY 4016 Неинициализированный массив
ERR_INVALID_FUNCTION_PARAMSCNT 4050 Неверное количество параметров, передаваемых во встроенную функцию
ERR_STRING_FUNCTION_INTERNAL 4052 Ошибка при работе со строками
ERR_TRADE_ERROR 4067 Ошибка при выполнении торговой функции
ERR_SOME_OBJECT_ERROR 4207 Ошибка при работе с объектами

Существует несколько встроенных функций, которые всегда меняют значение переменной last_error.

Функция Коды ошибок
AccountFreeMarginCheck ERR_STRING_PARAMETER_EXPECTED (4062), ERR_INTEGER_PARAMETER_EXPECTED (4063), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_UNKNOWN_SYMBOL (4106), ERR_NOT_ENOUGH_MONEY (134)
OrderSend ERR_CUSTOM_INDICATOR_ERROR (4055), ERR_STRING_PARAMETER_EXPECTED (4062), ERR_INTEGER_PARAMETER_EXPECTED (4063), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INVALID_PRICE_PARAM (4107), ERR_UNKNOWN_SYMBOL (4106), ERR_TRADE_NOT_ALLOWED (4109), ERR_LONGS_NOT_ALLOWED (4110), ERR_SHORTS_NOT_ALLOWED (4111), коды от торгового сервера
OrderClose ERR_CUSTOM_INDICATOR_ERROR (4055), ERR_INTEGER_PARAMETER_EXPECTED (4063), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INVALID_PRICE_PARAM (4107), ERR_INVALID_TICKET (4108), ERR_UNKNOWN_SYMBOL (4106), ERR_TRADE_NOT_ALLOWED (4109), коды от торгового сервера
OrderCloseBy ERR_CUSTOM_INDICATOR_ERROR (4055), ERR_INTEGER_PARAMETER_EXPECTED (4063), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INVALID_TICKET (4108), ERR_UNKNOWN_SYMBOL (4106), ERR_TRADE_NOT_ALLOWED (4109), коды от торгового сервера
OrderDelete ERR_CUSTOM_INDICATOR_ERROR (4055), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INVALID_TICKET (4108), ERR_UNKNOWN_SYMBOL (4106), ERR_TRADE_NOT_ALLOWED (4109), коды от торгового сервера
OrderModify ERR_CUSTOM_INDICATOR_ERROR (4055), ERR_INTEGER_PARAMETER_EXPECTED (4063), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INVALID_PRICE_PARAM (4107), ERR_INVALID_TICKET (4108), ERR_UNKNOWN_SYMBOL (4106), ERR_TRADE_NOT_ALLOWED (4109), коды от торгового сервера
GetLastError ERR_NO_ERROR (0)

Некоторые функции меняют значение переменной last_error только в случае возникновения какой-либо ошибки.

Функция Коды ошибок
ArrayBsearch ERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053), ERR_INVALID_FUNCTION_PARAMVALUE (4051)
ArrayCopy ERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053), ERR_INCOMPATIBLE_ARRAYS (4056), ERR_INVALID_FUNCTION_PARAMVALUE (4051)
ArrayCopyRates ERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053), ERR_INCOMPATIBLE_ARRAYS (4056), ERR_STRING_PARAMETER_EXPECTED (4062),
ArrayCopySeries ERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053), ERR_INCORRECT_SERIESARRAY_USING (4054), ERR_INCOMPATIBLE_ARRAYS (4056), ERR_STRING_PARAMETER_EXPECTED (4062), ERR_HISTORY_WILL_UPDATED (4066), ERR_INVALID_FUNCTION_PARAMVALUE (4051)
ArrayDimension ERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053)
ArrayGetAsSeries ERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053)
ArrayInitialize ERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053), ERR_INVALID_FUNCTION_PARAMVALUE (4051)
ArrayIsSeries ERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053)
ArrayMaximum ERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053), ERR_INVALID_FUNCTION_PARAMVALUE (4051)
ArrayMinimum ERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053), ERR_INVALID_FUNCTION_PARAMVALUE (4051)
ArrayRange ERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053), ERR_INTEGER_PARAMETER_EXPECTED (4063), ERR_INVALID_FUNCTION_PARAMVALUE (4051)
ArrayResize ERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053), ERR_INVALID_FUNCTION_PARAMVALUE (4051)
ArraySetAsSeries ERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053)
ArraySize ERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053)
ArraySort ERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053), ERR_INCORRECT_SERIESARRAY_USING (4054), ERR_INVALID_FUNCTION_PARAMVALUE (4051)
FileClose ERR_INVALID_FUNCTION_PARAMVALUE (4051)
FileDelete ERR_WRONG_FILE_NAME (4101), ERR_SOME_FILE_ERROR (4100)
FileFlush ERR_INVALID_FUNCTION_PARAMVALUE (4051)
FileIsEnding ERR_INVALID_FUNCTION_PARAMVALUE (4051)
FileIsLineEnding ERR_INVALID_FUNCTION_PARAMVALUE (4051)
FileOpen ERR_TOO_MANY_OPENED_FILES (4102), ERR_WRONG_FILE_NAME (4101), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_SOME_FILE_ERROR (4100), ERR_CANNOT_OPEN_FILE (4103)
FileOpenHistory ERR_TOO_MANY_OPENED_FILES (4102), ERR_WRONG_FILE_NAME (4101), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_SOME_FILE_ERROR (4100), ERR_CANNOT_OPEN_FILE (4103)
FileReadArray ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INCOMPATIBLE_FILEACCESS (4104), ERR_SOME_ARRAY_ERROR (4053), ERR_SOME_FILE_ERROR (4100), ERR_END_OF_FILE (4099)
FileReadDouble ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INCOMPATIBLE_FILEACCESS (4104), ERR_END_OF_FILE (4099)
FileReadInteger ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INCOMPATIBLE_FILEACCESS (4104), ERR_END_OF_FILE (4099)
FileReadNumber ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INCOMPATIBLE_FILEACCESS (4104), ERR_SOME_FILE_ERROR (4100), ERR_END_OF_FILE (4099)
FileReadString ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INCOMPATIBLE_FILEACCESS (4104), ERR_SOME_FILE_ERROR (4100), ERR_TOO_LONG_STRING (4011), ERR_END_OF_FILE (4099)
FileSeek ERR_INVALID_FUNCTION_PARAMVALUE (4051)
FileSize ERR_INVALID_FUNCTION_PARAMVALUE (4051)
FileTell ERR_INVALID_FUNCTION_PARAMVALUE (4051)
FileWrite ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_SOME_FILE_ERROR (4100)
FileWriteDouble ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INCOMPATIBLE_FILEACCESS (4104), ERR_SOME_FILE_ERROR (4100)
FileWriteInteger ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INCOMPATIBLE_FILEACCESS (4104), ERR_SOME_FILE_ERROR (4100)
FileWriteString ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INCOMPATIBLE_FILEACCESS (4104), ERR_SOME_FILE_ERROR (4100), ERR_STRING_PARAMETER_EXPECTED (4062)
FileWriteArray ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INCOMPATIBLE_FILEACCESS (4104), ERR_SOME_FILE_ERROR (4100),
GlobalVariableCheck ERR_STRING_PARAMETER_EXPECTED (4062)
GlobalVariableDel ERR_STRING_PARAMETER_EXPECTED (4062), ERR_GLOBAL_VARIABLES_PROCESSING (4057)
GlobalVariableGet ERR_STRING_PARAMETER_EXPECTED (4062), ERR_GLOBAL_VARIABLE_NOT_FOUND (4058)
GlobalVariablesDeleteAll ERR_STRING_PARAMETER_EXPECTED (4062), ERR_GLOBAL_VARIABLES_PROCESSING (4057)
GlobalVariableSet ERR_STRING_PARAMETER_EXPECTED (4062), ERR_GLOBAL_VARIABLES_PROCESSING (4057)
GlobalVariableSetOnCondition ERR_STRING_PARAMETER_EXPECTED (4062), ERR_GLOBAL_VARIABLE_NOT_FOUND (4058)
iCustom ERR_STRING_PARAMETER_EXPECTED (4062), ERR_INVALID_FUNCTION_PARAMVALUE (4051)
технические индикаторы, функции доступа к таймсериям ERR_HISTORY_WILL_UPDATED (4066)
технические индикаторы OnArray ERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053)
IndicatorBuffers ERR_INVALID_FUNCTION_PARAMVALUE (4051)
IndicatorDigits ERR_INVALID_FUNCTION_PARAMVALUE (4051)
IndicatorShortName ERR_STRING_PARAMETER_EXPECTED (4062), ERR_INVALID_FUNCTION_PARAMVALUE (4051)
MarketInfo ERR_STRING_PARAMETER_EXPECTED (4062), ERR_FUNC_NOT_ALLOWED_IN_TESTING (4059), ERR_UNKNOWN_SYMBOL (4106), ERR_INVALID_FUNCTION_PARAMVALUE (4051)
MathArccos ERR_INVALID_FUNCTION_PARAMVALUE (4051)
MathArcsin ERR_INVALID_FUNCTION_PARAMVALUE (4051)
MathMod ERR_ZERO_DIVIDE (4013)
MathSqrt ERR_INVALID_FUNCTION_PARAMVALUE (4051)
MessageBox ERR_FUNC_NOT_ALLOWED_IN_TESTING (4059), ERR_CUSTOM_INDICATOR_ERROR (4055), ERR_STRING_PARAMETER_EXPECTED (4062)
ObjectCreate ERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_UNKNOWN_OBJECT_TYPE (4203), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_OBJECT_ALREADY_EXISTS (4200), ERR_NO_SPECIFIED_SUBWINDOW (4206)
ObjectDelete ERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_OBJECT_DOES_NOT_EXIST (4202)
ObjectDescription ERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_OBJECT_DOES_NOT_EXIST (4202)
ObjectFind ERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204)
ObjectGet ERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_OBJECT_DOES_NOT_EXIST (4202), ERR_UNKNOWN_OBJECT_PROPERTY (4201)
ObjectGetFiboDescription ERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_OBJECT_DOES_NOT_EXIST (4202), ERR_UNKNOWN_OBJECT_TYPE (4203), ERR_UNKNOWN_OBJECT_PROPERTY (4201)
ObjectGetShiftByValue ERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_OBJECT_DOES_NOT_EXIST (4202), ERR_OBJECT_COORDINATES_ERROR (4205)
ObjectGetValueByShift ERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_OBJECT_DOES_NOT_EXIST (4202), ERR_OBJECT_COORDINATES_ERROR (4205)
ObjectMove ERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_OBJECT_DOES_NOT_EXIST (4202)
ObjectName ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_ARRAY_INDEX_OUT_OF_RANGE (4002)
ObjectSet ERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_OBJECT_DOES_NOT_EXIST (4202), ERR_UNKNOWN_OBJECT_PROPERTY (4201)
ObjectSetText ERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_OBJECT_DOES_NOT_EXIST (4202)
ObjectSetFiboDescription ERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_STRING_PARAMETER_EXPECTED (4062), ERR_OBJECT_DOES_NOT_EXIST (4202), ERR_UNKNOWN_OBJECT_TYPE (4203), ERR_UNKNOWN_OBJECT_PROPERTY (4201)
ObjectType ERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_OBJECT_DOES_NOT_EXIST (4202)
OrderClosePrice ERR_NO_ORDER_SELECTED (4105)
OrderCloseTime ERR_NO_ORDER_SELECTED (4105)
OrderComment ERR_NO_ORDER_SELECTED (4105)
OrderCommission ERR_NO_ORDER_SELECTED (4105)
OrderExpiration ERR_NO_ORDER_SELECTED (4105)
OrderLots ERR_NO_ORDER_SELECTED (4105)
OrderMagicNumber ERR_NO_ORDER_SELECTED (4105)
OrderOpenPrice ERR_NO_ORDER_SELECTED (4105)
OrderOpenTime ERR_NO_ORDER_SELECTED (4105)
OrderPrint ERR_NO_ORDER_SELECTED (4105)
OrderProfit ERR_NO_ORDER_SELECTED (4105)
OrderStopLoss ERR_NO_ORDER_SELECTED (4105)
OrderSwap ERR_NO_ORDER_SELECTED (4105)
OrderSymbol ERR_NO_ORDER_SELECTED (4105)
OrderTakeProfit ERR_NO_ORDER_SELECTED (4105)
OrderTicket ERR_NO_ORDER_SELECTED (4105)
OrderType ERR_NO_ORDER_SELECTED (4105)
PlaySound ERR_WRONG_FILE_NAME (4101)
SendFTP ERR_FUNC_NOT_ALLOWED_IN_TESTING (4059), ERR_CUSTOM_INDICATOR_ERROR (4055), ERR_STRING_PARAMETER_EXPECTED (4062)
SendMail ERR_FUNC_NOT_ALLOWED_IN_TESTING (4059), ERR_STRING_PARAMETER_EXPECTED (4062), ERR_FUNCTION_NOT_CONFIRMED (4060), ERR_SEND_MAIL_ERROR (4061)
SetIndexArrow ERR_INVALID_FUNCTION_PARAMVALUE (4051)
SetIndexBuffer ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INCORRECT_SERIESARRAY_USING (4054), ERR_INCOMPATIBLE_ARRAYS (4056)
SetIndexDrawBegin ERR_INVALID_FUNCTION_PARAMVALUE (4051)
SetIndexEmptyValue ERR_INVALID_FUNCTION_PARAMVALUE (4051)
SetIndexLabel ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_STRING_PARAMETER_EXPECTED (4062)
SetIndexShift ERR_INVALID_FUNCTION_PARAMVALUE (4051)
SetIndexStyle ERR_INVALID_FUNCTION_PARAMVALUE (4051)
SetLevelValue ERR_INVALID_FUNCTION_PARAMVALUE (4051)
Sleep ERR_CUSTOM_INDICATOR_ERROR (4055)
StringFind ERR_STRING_PARAMETER_EXPECTED (4062)
StringGetChar ERR_STRING_PARAMETER_EXPECTED (4062), ERR_NOT_INITIALIZED_STRING (4008), ERR_ARRAY_INDEX_OUT_OF_RANGE (4002)
StringLen ERR_STRING_PARAMETER_EXPECTED (4062)
StringSetChar ERR_STRING_PARAMETER_EXPECTED (4062), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_NOT_INITIALIZED_STRING (4008), ERR_TOO_LONG_STRING (4011), ERR_ARRAY_INDEX_OUT_OF_RANGE (4002)
StringSubstr ERR_STRING_PARAMETER_EXPECTED (4062), ERR_TOO_LONG_STRING (4011)
StringTrimLeft ERR_STRING_PARAMETER_EXPECTED (4062)
StringTrimRight ERR_STRING_PARAMETER_EXPECTED (4062)
WindowIsVisible ERR_FUNC_NOT_ALLOWED_IN_TESTING (4059)
WindowFind ERR_FUNC_NOT_ALLOWED_IN_TESTING (4059), ERR_STRING_PARAMETER_EXPECTED (4062), ERR_NOT_INITIALIZED_STRING (4008)
WindowHandle ERR_FUNC_NOT_ALLOWED_IN_TESTING (4059), ERR_STRING_PARAMETER_EXPECTED (4062), ERR_NOT_INITIALIZED_STRING (4008)
WindowScreenShot ERR_WRONG_FILE_NAME (4101), ERR_INVALID_FUNCTION_PARAMVALUE (4051)

Следующие функции не меняют значение переменной last_error ни при каких условиях:
AccountBalance, AccountCompany, AccountCredit, AccountCurrency, AccountEquity, AccountFreeMargin, AccountLeverage, AccountMargin, AccountName, AccountNumber, AccountProfit, AccountServer, Alert, CharToStr, Comment, Day, DayOfWeek, DayOfYear, DoubleToStr, GetTickCount, HideTestIndicators, Hour, IndicatorCounted, IsConnected, IsDemo, IsDllsAllowed, IsExpertEnabled, IsLibrariesAllowed, IsOptimization, IsStopped, IsTesting, IsTradeAllowed, IsTradeContextBusy, IsVisualMode, MathAbs, MathArctan, MathCeil, MathCos, MathExp, MathFloor, MathLog, MathMax, MathMin, MathPow, MathRand, MathRound, MathSin, MathSrand, MathTan, Minute, Month, NormalizeDouble, ObjectsDeleteAll, ObjectsTotal, OrderSelect, OrdersHistoryTotal, Period, Print, RefreshRates, Seconds, SetLevelStyle, StringConcatenate, StrToTime, StrToDouble, Symbol, TerminalCompany, TerminalName, TerminalPath, TimeCurrent, TimeDay, TimeDayOfWeek, TimeDayOfYear, TimeHour, TimeLocal, TimeMinute, TimeMonth, TimeSeconds, TimeToStr, TimeYear, UninitializeReason, WindowBarsPerChart, WindowFirstVisibleBar, WindowPriceOnDropped, WindowTimeOnDropped, WindowsTotal, WindowOnDropped, WindowRedraw, WindowXOnDropped, WindowYOnDropped, Year.

I’m getting a error 4051 with this code when I use it with a OrderModify function, but only on the take profit part. the stoplose modifies correctly. Any ideas as to why?

double LStopLose = iOpen(NULL, 0,0) — (iATR(NULL, 0, 5, 1) * 2);
double SStopLose = iOpen(NULL, 0,0) + (iATR(NULL, 0, 5, 1) * 2);

double LTakeProfit = iOpen(NULL, 0,0) + (iATR(NULL, 0, 5, 1) * 3);
double STakeProfit = iOpen(NULL, 0,0) — (iATR( NULL, 0, 5, 1) * 3);

Show your order and the calculations that lead up to it.

I was having some 130 errors, so I made two modifies, put alerts on them to see if it was the take profit or stop lose

ok, figured out the src thing, thought it was something in the meta trader program, not this board.

I’ll check your answer sometime tomorrow. good night.

Second. Wat can be it mean?

Please read documentation. OrderTicket returns ticket number for the currently selected order.
Note: The order must be previously selected by the OrderSelect() function. I.e. you can use OrderTicket function only after OrderSelect!

Ok, you get ticket number (for example returned from OrderSend). For example this ticket number is 10002345. What do You mean using SELECT_BY_POS value?

1. You must call OrderSelect function before using OrderTicket

ok, so i look at this code from a sample EA that comes with the meta trader program.

with ‘ticket’ being defined as the OrderSend line, how does that get defined as the ordernumber?

OrderSelect(index, SEL_BY_POSITON); — first time through selects order #4,which is ticket E

int ticket = OrderTicket(); —- returns the ticket number of ticket E — the «selected» ticket

double price = OrderOpenPrice(); — returns the opening price for ticket E — the «selected» ticket

Решил начать программировать на mql. Написал советник , проверяя как открываются и закрываются ордера. Открывается ордер при соответствующих условиях нормально, а при закррытии появляется Error 4051 — Invalid ticket to OrderClose Function. Помогите пожалуйста разобраться, что я делаю не так. Код советника ниже.

double MA;
MA=iMA(NULL,0,MA_Period,0,MODE_SMA,0,0);
int T;
T=OrdersTotal();
int ticket;
bool a;

После открытия позиции тикет у Вас не сохраняется. И при следующем запуске start переменная ticket инициализируется нулём. Нужно объявить ею как статическую или глобальную чтобы её значение сохранялось. Также полезно контролировать выполнение функции OrderSelect , например:

выбираю ордер, узнаю тип, узнаю тиккет, пытаюсь удалить отложенный ордер — выдаёт ошибка 4051

if (a2>1)
OrderDelete(ticket2);
Alert (GetLastError()); // Сообщение об ошибке 4051

Ордера на продажу переводит в без убыток нормально, а тралить начинает с ошибки 4051. Выдает 130. Но если условие соответствует, модифицирует.

2021.04.15 21:18:45.263 2019.01.24 18:51:05 %WR EURUSD,M15: OrderModify error 130
2021.04.15 21:18:45.263 2019.01.24 18:51:05 %WR EURUSD,M15: Ордер OP_SELL за №33: модифицирован стоп лосс не удалось. Ошибка №130
2021.04.15 21:18:45.263 2019.01.24 18:51:05 %WR EURUSD,M15: OrderModify error 130
2021.04.15 21:18:45.263 2019.01.24 18:51:05 %WR EURUSD,M15: Ордер OP_SELL за №33: модифицирован стоп лосс
2021.04.15 21:18:45.263 2019.01.24 18:51:05 %WR EURUSD,M15: modify #33 sell 0.10 EURUSD at 1.13438 sl: 1.13398 tp: 0.00000 ok
2021.04.15 21:18:45.263 2019.01.24 18:51:04 %WR EURUSD,M15: Ордер OP_SELL за №33: модифицирован стоп лосс не удалось. Ошибка №130
2021.04.15 21:18:45.263 2019.01.24 18:51:04 %WR EURUSD,M15: OrderModify error 130
2021.04.15 21:18:45.263 2019.01.24 18:51:04 %WR EURUSD,M15: Ордер OP_SELL за №33: модифицирован стоп лосс не удалось. Ошибка №130
2021.04.15 21:18:45.263 2019.01.24 18:51:04 %WR EURUSD,M15: OrderModify error 130
2021.04.15 21:18:45.263 2019.01.24 18:51:04 %WR EURUSD,M15: Ордер OP_SELL за №33: модифицирован стоп лосс не удалось. Ошибка №130
2021.04.15 21:18:45.263 2019.01.24 18:51:04 %WR EURUSD,M15: OrderModify error 130
2021.04.15 21:18:45.263 2019.01.24 18:51:03 %WR EURUSD,M15: Ордер OP_SELL за №33: модифицирован стоп лосс
2021.04.15 21:18:45.263 2019.01.24 18:51:03 %WR EURUSD,M15: modify #33 sell 0.10 EURUSD at 1.13438 sl: 1.13418 tp: 0.00000 ok
2021.04.15 21:18:45.263 2019.01.24 18:51:03 %WR EURUSD,M15: Ордер OP_SELL за №33: модифицирован стоп лосс не удалось. Ошибка №4051
2021.04.15 21:18:45.263 2019.01.24 18:51:03 %WR EURUSD,M15: OrderModify error 4051
2021.04.15 21:18:45.263 2019.01.24 18:51:03 %WR EURUSD,M15: invalid stoploss for OrderModify function
2021.04.15 21:18:45.263 2019.01.24 18:51:03 %WR EURUSD,M15: Ордер OP_SELL за №33: модифицирован стоп лосс в безубыток
2021.04.15 21:18:45.263 2019.01.24 18:51:03 %WR EURUSD,M15: modify #33 sell 0.10 EURUSD at 1.13438 sl: 1.13438 tp: 0.00000 ok
2021.04.15 21:18:45.233 2019.01.24 18:15:00 %WR EURUSD,M15: Ордер OP_SELL открыт!

А с ордерами на покупку все ОКей.

ПС. Нормализация не помогает. Да к тому же все нормализовано в OnInit.

Источник

Can´t find the reason why OrderModify Error 4051 is happening

I just can´t find why my EA is showing this error when I use the Trailing Stop option.

I am attaching here the code where I call the function Trailing Stop and then the function itself

After that I am showing the messsages from the Alerts That I have inserted in the code

In short, The StopLoss of the Selected Order is the same as the new Stop Loss that the trailing Stop is calculating

If I am right, I have specifically coded that in such case the EA will not run the OrderModify function

But the Error 4051 is happening even though the OrderModify function is not being called

Well, at least that is my deduction

Will someone please check what is wrong with my code?

This is the Trailing Stop function

so, after I check that Modify==false, there is a break instruction, so the EA should get out of the while(true) loop and should NOT execute the OrderModify instruction, but somehow it is beeing called and if my new SL is equal to the OrderStopLoss then error 4051 is understandable. But why is the OrderModify instruction being executed, will someone please explain?

here are the messages when I backtested the EA:

What I see here is that the new SL (variable SL) is 1.3418 and the OrderStopLoss (variable loss) is exactly 1.3418

That is why the condition if (SL

Have you looked up the meaning of 4051:Invalid function parameter value. So try to change the values of OrderModify(..), like price, SL, and profit.

Check the minimal difference (MODE_STOPLEVEL and MODE_FREEZELEVEL)

Maybe instead of price use either OrderOpenPrice() or 0 as you don’t change a pending order , .

There is another section in my code where I modify the initial Sl and TP values for a recently opened trade.

Might it be possible that the error is being generated THERE and that the sentence Error=GetLastError() is receiving the Error generated on that part of the code?

BTW, thanks for your answer , I will check the parameters ‘ values on both OrderModify funtions.

best regards. JHF

So then why is the EA showing «Occurred error 4051»?

That is the last error that happened . . . it may be completely somewhere else in your code . . . and completely unrelated to your Trailing Stop function, if you want to check this then at the start of your Trailing Stop function add . . . ResetLastError();

Part of the issue is that your trailing stop function returns False even if there was no failure . . . then you go looking for an error . . . why ? you need to fix this design flaw.

That is the last error that happened . . . it may be completely somewhere else in your code . . . and completely unrelated to your Trailing Stop function, if you want to check this then at the start of your Trailing Stop function add . . . ResetLastError();

Part of the issue is that your trailing stop function returns False even if there was no failure . . . then you go looking for an error . . . why ? you need to fix this design flaw.

I am getting the same kind of error message but with openselect function ( OrderSelect returned error of 4051):

Can anyone help please?

Here is copy of my journal:

2014.12.08 15:25:41.375 2014.03.25 00:00 Testing_loop_v1 EURGBP-,Daily: OrderSelect returned error of 4051

2014.12.08 15:25:41.375 2014.03.25 00:00 Testing_loop_v1 EURGBP-,Daily: Type : 1 — Position : 2 Total Trades : 3

2014.12.08 15:25:41.375 2014.03.25 00:00 Testing_loop_v1 EURGBP-,Daily: Type : 1 — Position : 1 Total Trades : 3

2014.12.08 15:25:41.375 2014.03.25 00:00 Testing_loop_v1 EURGBP-,Daily: Type : 0 — Position : 0 Total Trades : 3

2014.12.08 15:25:41.375 2014.03.25 00:00 Testing_loop_v1 EURGBP-,Daily: open #6 sell 0.10 EURGBP- at 0.83859 tp: 0.83429 ok

2014.12.08 15:25:41.375 2014.03.25 00:00 Testing_loop_v1 EURGBP-,Daily: Alert: ### — New BAR (UP) — ### : 4

2014.12.08 15:25:41.093 2014.03.24 00:00 Testing_loop_v1 EURGBP-,Daily: OrderSelect returned error of 4051

2014.12.08 15:25:41.093 2014.03.24 00:00 Testing_loop_v1 EURGBP-,Daily: Type : 1 — Position : 1 Total Trades : 2

014.12.08 15:25:41.093 2014.03.24 00:00 Testing_loop_v1 EURGBP-,Daily: Type : 0 — Position : 0 Total Trades : 2

2014.12.08 15:25:41.093 2014.03.24 00:00 Testing_loop_v1 EURGBP-,Daily: open #5 sell 0.10 EURGBP- at 0.83601 tp: 0.83421 ok

2014.12.08 15:25:41.093 2014.03.24 00:00 Testing_loop_v1 EURGBP-,Daily: Alert: ### — New BAR (UP) — ### : 3

2014.12.08 15:25:40.906 2014.03.21 10:38 Tester: take profit #4 at 0.83650 (0.83650 / 0.83657)

2014.12.08 15:25:40.843 2014.03.21 00:00 Testing_loop_v1 EURGBP-,Daily: OrderSelect returned error of 4051

2014.12.08 15:25:40.843 2014.03.21 00:00 Testing_loop_v1 EURGBP-,Daily: Type : 0 — Position : 1 Total Trades : 2

2014.12.08 15:25:40.843 2014.03.21 00:00 Testing_loop_v1 EURGBP-,Daily: Type : 0 — Position : 0 Total Trades : 2

2014.12.08 15:25:40.843 2014.03.21 00:00 Testing_loop_v1 EURGBP-,Daily: open #4 buy 0.10 EURGBP- at 0.83475 tp: 0.83650 ok

2014.12.08 15:25:40.843 2014.03.21 00:00 Testing_loop_v1 EURGBP-,Daily: Alert: ### — New BAR (DOWN) — ### : 2

2014.12.08 15:25:40.656 2014.03.20 13:47 Tester: take profit #1 at 0.83415 (0.83408 / 0.83415)

2014.12.08 15:25:40.500 2014.03.20 00:00 Testing_loop_v1 EURGBP-,Daily: OrderSelect returned error of 4051

2014.12.08 15:25:40.500 2014.03.20 00:00 Testing_loop_v1 EURGBP-,Daily: Type : 0 — Position : 1 Total Trades : 2

2014.12.08 15:25:40.500 2014.03.20 00:00 Testing_loop_v1 EURGBP-,Daily: Type : 1 — Position : 0 Total Trades : 2

2014.12.08 15:25:40.500 2014.03.20 00:00 Testing_loop_v1 EURGBP-,Daily: open #3 buy 0.10 EURGBP- at 0.83625 tp: 0.83969 ok

2014.12.08 15:25:40.500 2014.03.20 00:00 Testing_loop_v1 EURGBP-,Daily: Alert: ### — New BAR (DOWN) — ### : 1

2014.12.08 15:25:40.437 2014.03.19 22:26 Tester: take profit #2 at 0.83607 (0.83600 / 0.83607)

2014.12.08 15:25:40.125 2014.03.19 00:00 Testing_loop_v1 EURGBP-,Daily: OrderSelect returned error of 4051

2014.12.08 15:25:40.125 2014.03.19 00:00 Testing_loop_v1 EURGBP-,Daily: Type : 1 — Position : 1 Total Trades : 2

2014.12.08 15:25:40.125 2014.03.19 00:00 Testing_loop_v1 EURGBP-,Daily: Type : 1 — Position : 0 Total Trades : 2

2014.12.08 15:25:40.125 2014.03.19 00:00 Testing_loop_v1 EURGBP-,Daily: open #2 sell 0.10 EURGBP- at 0.83967 tp: 0.83607 ok

2014.12.08 15:25:40.125 2014.03.19 00:00 Testing_loop_v1 EURGBP-,Daily: Alert: ### — New BAR (UP) — ### : 2

2014.12.08 15:25:36.718 2014.03.18 00:00 Testing_loop_v1 EURGBP-,Daily: OrderSelect returned error of 4051

2014.12.08 15:25:36.718 2014.03.18 00:00 Testing_loop_v1 EURGBP-,Daily: Type : 1 — Position : 0 Total Trades : 1

2014.12.08 15:25:36.718 2014.03.18 00:00 Testing_loop_v1 EURGBP-,Daily: open #1 sell 0.10 EURGBP- at 0.83672 tp: 0.83415 ok

2014.12.08 15:25:36.718 2014.03.18 00:00 Testing_loop_v1 EURGBP-,Daily: Alert: ### — New BAR (UP) — ### : 1

And here is part my code:

for(int pos=0;pos v_total_trades = OrdersTotal();

// I am just displaying a message for now so I can find the problem,

Print(«Type : «, OrderType() + » — Position : «, pos + » Total Trades : » + v_total_trades);

Print(«OrderSelect returned error of «,GetLastError());

Источник

Adblock
detector

Понравилась статья? Поделить с друзьями:
  • Mql ошибка 148
  • Mq error 2540
  • Mprog error read eeprom failed device 0
  • Mpr lpr communication error
  • Mpm winnt error