Ошибка 4051 codesys

Thank you for the reply. I got it working by performing Risk_Percent*0.01 rather than Risk_Percent/100. Dont understand why one works and the other doesn’t, they both give the exact same answer. If I left the Risk_Percent a double I wouldn’t be able to alter it in the input box ? It would always be a value?

I want to implement a particular trailing stop but im having a small amount of difficulties with it also. I would like it to start a trailing stop once it gets to Xpercent between OpenOrderPrice and Take_Profit. Can you have a look at it please. The elements in bold are the only ones I shifted from a normal trailing stop.

Factors:
Inserted Code extern int Start_Trailing_Stop_Percent = 70; extern int Trailing_Stop = 100; double LowestShift = iLowest(Symbol(), PERIOD_H1, MODE_LOW, 50, 1); double HighestShift = iHighest(Symbol(), PERIOD_H1, MODE_HIGH, 50, 1); double Lowest = iLow(Symbol(), PERIOD_H1, LowestShift); double Maximum = iHigh(Symbol(), PERIOD_H1, HighestShift); double Buy_Take_Profit = ((Bid-Lowest) Ask); double Sell_Take_Profit = (Bid-(Highest-Ask));
Trailing Stop:
Inserted Code for(int I=0;ilt;OrdersTotal();I ) { //Select Open trades if(OrderSelect(I,SELECT_BY_POS,MODE_TRADES) == false) {} //Perform monitoring stop on buy trade if (OrderType() == OP_BUY OrderSymbol() == Symbol()) { if(Trailing_Stopgt;0) { #91;b#93;if(Bidgt;-LRB-(((Start_Trailing_Stop_Percent*0.01)*(Buy_Take_Pro fit-OrderOpenPrice())))) OrderOpenPrice()) {#91;/b#93; if(OrderStopLoss()lt;Bid-Point*Trailing_Stop) { if(OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*Trailing_Stop,OrderTakeProfit(),0,clrGreen)) return; else {} } } } } //Perform monitoring stop on Sell trade if(OrderType() == OP_SELL OrderSymbol() == Symbol()){ if(Trailing_Stopgt;0) { #91;b#93;if(Asklt;(OrderOpenPrice()-((((Start_Trailing_Stop_Percent*0.01)*(OrderOpenPr ice()-Sell_Take_Profit)))))) {#91;/b#93; if((OrderStopLoss()gt;(Ask Point*Trailing_Stop)) || (OrderStopLoss()==0)) { if(OrderModify(OrderTicket(),OrderOpenPrice(),Ask Point*Trailing_Stop,OrderTakeProfit(),0,clrRed)) return; else {} } } } } }


Единственный в мире Музей Смайликов

Самая яркая достопримечательность Крыма

Скачать 5.57 Mb.

Название Руководство пользователя по программированию плк в CoDeSys 3
Дата 25.10.2022
Размер 5.57 Mb.
Формат файла pdf
Имя файла CODESYS_manual.pdf
Тип Руководство пользователя
#754593
страница 49 из 50

Подборка по базе: Детский массаж. Поэтапное руководство.pdf, Инструкция для пользователя по подключению к АИС Расчет через FT, Руководство пользователя 7.docx, Работа в АИС СГО под функцией пользователя Учитель (1+).pdf, Приложение 5. Методическое руководство к дидактическому матер, РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ ПО ПРОВЕДЕНИЮ ЭКСПЕРТИЗЫ ЗАЯВОК.docx, Практическая работа. Составление руководства пользователя ис.doc, Методическое руководство.docx, Памятка пользователя в МИС.pdf, Базисное руководство по психотерапии.pdf


констант'»
Извлечение адреса для встроенных констант невозможно. Если необходимо, отключите опцию
’Replace Constants’ in ’Project’ ’Options’ ’Build’.
4040
«Метка ‘<имя>’ не задана»
Определите метку с именем либо измените имя на существующее.
4041
«Повторное определение метки ‘<имя>'»
Метка ‘<имя>’ определена повторно. Удалите одно из определений.
4042
«Число меток в последовательности не должно превышать <число>»
Число последовательных меток ограничено. Вставьте пустую инструкцию.
4043
«Неверный формат метки. Метка должна быть идентификатором, за которым может следо-
вать двоеточие»
Недопустимое имя метки или пропущено двоеточие в конце идентификатора.
4050
«POU ‘<имя>’ не определен»
Определите POU с именем ‘<имя>’ командой ‘Project’ ‘Add Object’ или измените ‘<имя>’ на су- ществующий POU.
4051
«‘<имя>’ не является функцией»

Приложение K: Ошибки и предупреждения компилятора
CoDeSys V2.3 10-135
Вместо <имя> используйте функцию, определенную в проекте или библиотеках.
4052
«‘<имя>’ должен быть объявленным экземпляром функционального блока ‘<имя>'»
Используйте существующий экземпляр функционального блока или объявите его.
4053
«‘<имя>’ не является допустимым блоком или оператором»
Измените ‘<имя>’ на имя POU или оператор, определенный в проекте.
4054
«В качестве параметра для ‘INDEXOF’ требуется имя POU»
Заданный оператор не является именем POU.
4060
«Параметру ‘VAR_IN_OUT’ ‘<имя>’ из ‘<имя>’ требуется переменная с доступом по записи»
Для параметра VAR_IN_OUT должен иметь доступ на запись, поскольку его значение может быть изменено в POU.
4061
«‘VAR_IN_OUT’ должен быть использован параметр ‘<имя>’ из ‘<имя>’.»
Для параметра VAR_IN_OUT нужна переменная с доступом на запись, поскольку ее значение мо- жет быть изменено в POU.
4062
«Нет внешнего доступа к параметру ‘VAR_IN_OUT’ ‘<имя>’ из ‘<имя>’.»
Параметр VAR_IN_OUT можно использовать только внутри POU, поскольку он передается по ссылке.
4063
«Параметр ‘VAR_IN_OUT’ ‘<имя>’ из ‘<имя>’ не может быть использован с битовыми
адресами.»
Биты не имеют физических адресов. Измените переменную или прямой адрес.
4064
«‘VAR_IN_OUT’ нельзя перезаписывать в вызове локального действия!»
Удалите параметры VAR_IN_OUT из локального вызова действия.
4070
«POU содержит слишком сложное выражение»
Уменьшите глубину вложений в выражении, разбив его на несколько отдельных выражений. Ис- пользуйте промежуточные переменные.

Приложение K: Ошибки и предупреждения компилятора
CoDeSys V2.3 10-136
4071
«Слишком сложная цепь»
Разделите цепь на несколько цепей.
4072
«Неуместное использование идентификатора действия в FB типа (‘<имя>’) и экземпляра
(‘<имя>’).»
Вы определили действия в функциональном блоке fb, например a1 и a2, но при вызове действия вы указываете имя блока, а не экземпляра.
Например: fb.a1 вместо inst.a1.
4100
«‘^’ требует указателя»
Вы пытаетесь использовать переменную, которая не является указателем.
4110
«В ‘[<индекс>]’ должен быть индекс массива»
Попытка использовать индексы с переменной, которая не является массивом.
4111
«Индексное выражение массива должно быть типа ‘INT'»
Используйте целочисленное выражение или переменную в индексах массива.
4112
«Слишком много индексов массива»
Проверьте число индексов в массиве (1, 2 или 3) и удалите лишние.
4113
«Слишком мало индексов массива»
Проверьте число индексов в массиве (1, 2 или 3) и добавьте недостающие.
4114
«Одна из констант индексов находится за пределами массива»
Проверьте, принадлежит ли указанный индекс диапазону, заданному в объявлении массива.
4120
«‘.’ подразумевает структурную переменную»
Слева от точки должен быть идентификатор структуры, экземпляра, функционального блока или имя функции либо программы.
4121
» ‘<имя>’ не является компонентом


Размер этой области определяется настройкой целевойплатформы. Если вы не нашли этого параметра в опциях памяти, свяжитесь с изготовителем ПЛК (обратите внимание: если хотя бы одна переменная функционального блока объявлена как Retain, товсе данные экземпляра сохраняются в Retain области!)3803″Out of global data memory. Variable ‘<name>’, ‚<number>’ bytes.»Израсходована вся память глобальных переменных. Размер этой области определяется настройкой целевой платформы. Если вы не нашли этого параметра в опциях памяти, свяжитесь с изготовителемПЛК3820″‘VAR_OUTPUT’ and ‘VAR_IN_OUT’ not allowed in functions»В функциях нельзя использовать выходы или входы-выходы.3821″At least one input required for functions»Функция должна иметь как минимум один параметр.3840″Unknown global variable ‘<name>’!»В POU используется глобальная переменная VAR_EXTERNAL, необъявленная в списке глобальных.3841″Declaration of ‘<name>’ do not match global declaration!»Тип переменной в объявлении VAR_EXTERNAL не совпадает с типом в списке глобальных объявлений.3850″Declaration of an unpacked struct ‘<name>’ inside a packed struct ‘<name>’ is not allowed!»Такое определение структуры нарушает распределение памяти.

Измените определение соответствующим образом.3900″Multiple underlines in indentifier»Удалите повторное подчеркивание в идентификаторе.CoDeSys V2.310-130Приложение J: Ошибки и предупреждения компилятора3901″At most 4 numerical fields allowed in addresses»Попытка присваивания%QB0.1.1.0.1).попрямому адресу, содержащему более 4-х уровней (например,3902″Keywords must be uppercase»Используйте заглавные буквы в ключевых словах или включите опцию ‚Autoformat’ in ‚Project’ ‚Options’.3903″Invalid duration constant»Нотация константы не соответствует МЭК 61131-3.3904″Overflow in duration constant»Заданное значение длительности нельзя преобразовать во внутренний формат. Максимальное значение длительности: t#49d17h2m47s295ms.3905″Invalid date constant»Нотация константы не соответствует МЭК 61131-3.3906″Invalid time of day constant»Нотация константы не соответствует МЭК 61131-3.3907″Invalid date and time constant»Нотация константы не соответствует МЭК 61131-3.3908″Invalid string constant»Строковая константа содержит недопустимый символ.4000″Identifier expected»В этой позиции должен быть корректный идентификатор.CoDeSys V2.310-131Приложение J: Ошибки и предупреждения компилятора4001″Variable ‘<Name>’ not declared»Объявите переменную локально или глобально.4010″Type mismatch: Cannot convert ‘<Name>’ to ‘<Name>’.»Проверьте, какой тип данных требуется этому оператору, и измените тип или используйте другую переменную.4011″Type mismatch in parameter ‘<Name>’ of ‘<Name>’: Cannot convert ‘<Name>’ to ‘<Name>’.»Тип актуального параметра не может быть автоматически преобразован в тип формального параметра.Используйте другую переменную или явное преобразование типов.4012″Type mismatch in parameter ‘<Name>’ of ‘<Name>’: Cannot convert ‘<Name>’ to ‘<Name>’.»Значение ошибочного типа присваивается входной переменной ‘<Name>.

Замените переменную илиукажите соответствующий префикс константы.4013″Type mismatch in output ‘<Name>’ of ‘<Name>’: Cannot convert ‘<Name>’ to ‘<Name>’.»Значение ошибочного типа присваивается выходной переменной ‘<Name>. Замените переменную илиукажите соответствующий префикс константы.4014″Typed literal: Cannot convert ‘<name>’ to ‘<name>'»Тип константы не соответствует заданному префиксу.Например: SINT#2554015″Data type ‘<name>’ illegal for direct bit access»Прямая битовая адресация допускается только с целыми типами или битовыми строками, но не дляпрямоадресуемых переменных. Возможно, вы используете переменную типа REAL/LREAL или константу <var1>.<bit>, либо прямоадресуемую переменную.4016″Bit index ‘<number>’ out of range for variable of type ‘<name>'»Вы пытаетесь использовать бит, не определенный для данного типа переменных.CoDeSys V2.310-132Приложение J: Ошибки и предупреждения компилятора4017″‘MOD’ is not defined for ‘REAL'»Оператор MOD применим только для целых типов.4020″Variable with write access or direct address required for ‘ST’, ‘STN’, ‘S’, ‘R'»Замените первый операнд переменной, имеющей доступ на запись.4021″No write access to variable ‘<name>’ allowed»Замените переменную на другую, имеющую доступ на запись.4022″Operand expected»Добавьте операнд команды.4023″Number expected after ‘+’ or ‘-‘»Введите число.4024″Expecting <Operator 0> or <Operator 1> or …

before ‘<Name>'»Задайте значимый операнд в указанной позиции.4025″Expecting ‘:=’ or ‘=>’ before ‘<Name>'»Введите один из двух операторов в указанной позиции.4026″‘BITADR’ expects a bit address or a variable on a bit address»Используйте корректный битовый адрес (т.е. %IX0.1).4027″Integer number or symbolic constant expected»Введите число или идентификатор переменной.4028″‘INI’ operator needs function block instance or data unit type instance»CoDeSys V2.310-133Приложение J: Ошибки и предупреждения компилятораПроверьте тип переменной, для которой используется оператор №1.4029″Nested calls of the same function are not possible.»Функция не должна вызывать сама себя.Используйте промежуточные переменные.4030″Expressions and constants are not allowed as operands of ‘ADR'»Для выражений и констант извлечение адреса невозможно.4031″‘ADR’ is not allowed on bits! Use ‘BITADR’ instead.»Используйте BITADR.

Заметьте, что BITADR не дает физический адрес памяти.4032″’<number>’ operands are too few for ‘<name>’. At least ‘<number>’ are needed»Проверьте число операндов для данного оператора и добавьте недостающие.4033″’<number>’ operands are too many for ‘<name>’. At least ‘<number>’ are needed»Проверьте число операндов для данного оператора и уберите лишние.4034″Division by 0″Вы пытаетесь выполнить деление на 0 с константами. Если вы намеренно хотите спровоцировать деление на ноль при исполнении, используйте переменную.4035″ADR must not be applied on ‘VAR CONSTANT’ if ‘replaced constants’ is activated»Извлечение адреса для встроенных констант невозможно.

Если необходимо, отключите опцию ’Replace Constants’ in ’Project’ ’Options’ ’Build’.4040″Label ‘<name>’ is not defined»Определите метку с именем <LabelName> либо измените имя на существующее.4041″Duplicate definition of label ‘<name>'»CoDeSys V2.310-134Приложение J: Ошибки и предупреждения компилятораМетка ‘<Name>’ определена повторно. Удалите одно из определений.4042″No more than <number> labels in sequence are allowed»Число последовательных меток ограничено. Вставьте пустую инструкцию.4043″Format of label invalid. A label must be a name optionally followed by a colon.Недопустимое имя метки или пропущено двоеточие в конце идентификатора.4050″POU ‘<name>’ is not defined»Определите POU с именем ‘<Name>’ командой ‘Project’ ‘Add Object’ или измените ‘<Name>’ на существующий POU.4051″‘<name>’ is no function»Вместо <Name> используйте функцию, определенную в проекте или библиотеках.4052″‘<name>’ must be a declared instance of FB ‘<name>'»Используйте существующий экземпляр функционального блока или объявите его.4053″‘<name>’ is no valid box or operator»Измените ‘<Name>’ на имя POU или оператор, определенный в проекте.4054″POU name expected as parameter of ‘INDEXOF'»Заданный оператор не является именем POU.4060″‘VAR_IN_OUT’ parameter ‘<name>’ of ‘<name>’ needs variable with write access as input»Для параметра VAR_IN_OUT должен иметь доступ на запись, поскольку его значение может быть изменено в POU.4061″‘VAR_IN_OUT’ parameter ‘<name>’ of ‘<name>’ must be used.»CoDeSys V2.310-135Приложение J: Ошибки и предупреждения компилятораДля параметра VAR_IN_OUT нужна переменная с доступом на запись, поскольку ее значение можетбыть изменено в POU.4062″No external access to ‘VAR_IN_OUT’ parameter ‘<name>’ of ‘<name>’.»Параметр VAR_IN_OUT можно использовать только внутри POU, поскольку он передается по ссылке.4063″‘VAR_IN_OUT’ parameter ‘<name>’ of ‘<name>’ must not be used with bit addresses.»Биты не имеют физических адресов.

Измените переменную или прямой адрес.4064″‘VAR_IN_OUT’ must not be overwritten in local action call!»Удалите параметры VAR_IN_OUT из локального вызова действия.4070″The POU contains a too complex expression»Уменьшите глубину вложений в выражении, разбив его на несколько отдельных выражений. Используйте промежуточные переменные.4071″Network too complex»Разделите цепь на несколько цепей.4072″Inconsistent use of an action identifier in FB type (‘<name>’) and instance (‘<name>’).»Вы определили действия в функциональном блоке fb, например a1 и a2, но при вызове действия выуказываете имя блока, а не экземпляра.Например: fb.a1 вместо inst.a1.4100″‘^’ needs a pointer type»Вы пытаетесь использовать переменную, которая не является указателем.4110″‘[<index>]’ needs array variable»Попытка использовать индексы с переменной, которая не является массивом.CoDeSys V2.310-136Приложение J: Ошибки и предупреждения компилятора4111″Index expression of an array must be of type ‘INT'»Используйте целочисленное выражение или переменную в индексах массива.4112″Too many indexes for array»Проверьте число индексов в массиве (1, 2 или 3) и удалите лишние.4113″Too few indexes for array»Проверьте число индексов в массиве (1, 2 или 3) и добавьте недостающие.4114″One of the constant indizes is not within the array range»Проверьте, принадлежит ли указанный индекс диапазону, заданному в объявлении массива.4120″‘.’ needs structure variable»»Слева от точки должен быть идентификатор структуры, экземпляра, функционального блока или имяфункции либо программы.4121″ ‘<Name>’ is not a component of <object name>»Компонент ‘<Name>’ не входит в определение объекта <object name>.4122″‘<name>’ is not an input variable of the called function block»Проверьте наименования входных переменных функционального блока и используйте один из них.4200″‘LD’ expected»Вставьте хотя бы одну инструкцию LD после jump метки в редакторе IL.4201″IL Operator expected»Каждая инструкция IL должна начинаться с оператора или метки перехода.CoDeSys V2.310-137Приложение J: Ошибки и предупреждения компилятора4202″Unexpected end of text in brackets»Вставьте закрывающую скобку после текста.4203″<Name> in brackets not allowed»Оператор <name> не допустим в скобках IL.( ‘JMP’, ‘RET’, ‘CAL’, ‘LDN’, ‘LD’, ‘TIME’)4204″Closing bracket with no corresponding opening bracket»Вставьте открывающую или удалите закрывающую скобку.4205″No comma allowed after ‘)'»Уберите запятую после закрывающей скобки.4206″Label in brackets not allowed»Сместите метку так, чтобы она оказалась вне скобок.4207″‘N’ modifier requires operand of type ‘BOOL’,’BYTE’,’WORD’ or ‘DWORD'»Модификатор N применим только к логическим переменным.4208″Conditional Operator requires type ‘BOOL'»Убедитесь, что выражение дает логический результат? или используйте преобразование типа.4209″Function name not allowed here»Замените вызов функции переменной или константой.4210″‘CAL’, ‘CALC’ and ‘CALN’ require a function block instance as operand»Оставьте экземпляр функционального блока, который вы вызываете.CoDeSys V2.310-138Приложение J: Ошибки и предупреждения компилятора4211″Comments are only allowed at the end of line in IL»Переместите комментарий в конец строки или на отдельную строку.4212″Accumulator is invalid before conditional statement»Значение аккумулятора не определено.

Я забил код в скрипт, и нормально открывает по рынку, без ошибок…

Кстати, это условие:

if (SellTicket==0)

{

}

Если это скрипт, то условие совершенно бесполезное, так как ограничивать количество ордеров в скрипте не имеющем циклов, без смысленно.

Но если этот код из експерта, то так вы тоже не ограничите количество ордеров, так как переменная int SellTicket; инициализируется(обнуляется) в функции int start(){} на каждом тике.

Нужно вынести int SellTicket; за пределы Старта, то- есть вверх!

И тогда это условие будет физически ограничивать количество устанавливаемых ордеров, так как при установке ордера переменная получит не нулевое значение.

Мэкс, спасибо за комментарии. Я внёс некоторые изменения. Сразу уточню — это часть советника. Но, ошибка 130 может возникать только в строке где OrderSend.

Почему-то в 4-хзнаке всё работает, а в пятизнаке — выдаёт по-прежнему ошибку 130.

Возможно, как опытный программист вы сможете найти неточность или роковую ошибку пятизнака.

Заранее благодарен, если подскажите.

//+——————————————————————+

//| ccc.mq4 |

//| Copyright © 2011, MetaQuotes Software Corp. |

//| http://www.metaquotes.net |

//+——————————————————————+

#property copyright «VAGEYEV»

#include <stdlib.mqh>

//+——————————————————————+

//| expert initialization function |

//+——————————————————————+

int UseSlippage;

double UsePoint;

extern int Slippage = 5;

extern double StopLoss = 30;

extern double T_P=300;

extern int MagicNumber = 0;

int init()

{

//—-

UsePoint = PipPoint(Symbol());

UseSlippage = GetSlippage(Symbol(),Slippage);

//—-

return(0);

}

//+——————————————————————+

//| expert deinitialization function |

//+——————————————————————+

int deinit()

{

//—-

//—-

return(0);

}

//+——————————————————————+

//| expert start function |

//+——————————————————————+

int start()

{

//—-

double LotSize = 0.01;

// Open buy order

while(IsTradeContextBusy()) Sleep(10);

RefreshRates();

// Calculate stop loss and take profit

double OpenPrice = Ask;

double StopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL) * Point;

double UpperStopLevel = Ask + StopLevel;

double LowerStopLevel = Bid — StopLevel;

double MinStop = 5 * UsePoint;

// Calculate stop loss and take profit

if(StopLoss > 0) double BuyStopLoss = OpenPrice — (StopLoss * UsePoint);

if(T_P > 0) double BuyTakeProfit = OpenPrice + (T_P * UsePoint);

//Verify stop loss and take profit

if(BuyStopLoss > 0 && BuyStopLoss > LowerStopLevel)

{

BuyStopLoss = LowerStopLevel — MinStop;

}

if(BuyTakeProfit > 0 && BuyTakeProfit < UpperStopLevel)

{

BuyTakeProfit = UpperStopLevel + MinStop;

}

int BuyTicket = OrderSend(Symbol(),OP_BUY,3*LotSize,OpenPrice,UseSlippage,BuyStopLoss,BuyTakeProfit,»Buy Order»,MagicNumber,0,Green);

if (BuyTicket==-1)

{

int ErrorCode = GetLastError();

string ErrDesc = ErrorDescription(ErrorCode);

Print(ErrorCode,» «,ErrDesc);

string ErrAlert = StringConcatenate(ErrorCode,»: «,ErrDesc);

Alert(ErrAlert);

}

//—-

return(0);

}

// Get Slippage Function

int GetSlippage(string Currency, int SlippagePips)

{

int CalcDigits = MarketInfo(Currency,MODE_DIGITS);

if(CalcDigits == 2 || CalcDigits == 4) double CalcSlippage = SlippagePips;

else if(CalcDigits == 3 || CalcDigits == 5) CalcSlippage = SlippagePips * 10;

return(CalcSlippage);

}

// Pip Point Function

double PipPoint(string Currency)

{

int CalcDigits = MarketInfo(Currency,MODE_DIGITS);

if(CalcDigits == 2 || CalcDigits == 3) double CalcPoint = 0.01;

else if(CalcDigits == 4 || CalcDigits == 5) CalcPoint = 0.0001;

return(CalcPoint);

}

//+——————————————————————+

//+------------------------------------------------------------------+
//| ФУНКЦИЯ ОБРАБОТКИ ОШИБОК                                         |
//+------------------------------------------------------------------+
 int Fun_Error(int Error)                        
  {   switch(Error)
     {                                          // Преодолимые ошибки        
           case 0:      return (0);
           case 1:      Print("Попытка изменить уже установленные значения такими же значениями.");return(1);
           case 2:      Print("Общая ошибка. Прекратить все попытки торговых операций до выяснения обстоятельств.");return(0);
           case 3:      Print("В торговую функцию переданы неправильные параметры.");return(1);
           case 4:      Print("Торговый сервер занят.Пробуем ещё раз..");Sleep(3000);return(1);
           case 5:      Print("Старая версия клиентского терминала.");return(0);
           case 6:      Print("Нет связи с торговым сервером.");return(1);
           case 7:      Print("Недостаточно прав.");return(1);
           case 8:      Print("Слишком частые запросы.");return(1);
           case 9:      Print("Недопустимая операция нарушающая функционирование сервера.");return(1);
           case 64:     Print("Счет заблокирован. Необходимо прекратить все попытки торговых операций.");return(0);
           case 65:     Print("Неправильный номер счета.");return(1);
           case 128:    Print("Истек срок ожидания совершения сделки.");return(1);
           case 129:    Print("Неправильная цена bid или ask, возможно, ненормализованная цена.");return(1);
           case 130:    Print("Слишком близкие стопы или неправильно рассчитанные или ненормализованные цены в стопах (или в цене открытия отложенного ордера).");return(1);
           case 131:    Print("Неправильный объем, ошибка в грануляции объема.");return(1);
           case 132:    Print("Рынок закрыт.");return(1);
           case 133:    Print("Торговля запрещена.");return(0);
           case 134:    Print("Недостаточно денег для совершения операции.");return(0);
           case 135:    Print("Цена изменилась. Пробуем ещё раз..");RefreshRates();return(1);
           case 136:    Print("Нет цен. Ждём новый тик..");
                        while(RefreshRates()==false)           // До нового тика            
                        Sleep(1);
                        return(1);
           case 137:    Print("Брокер занят.Пробуем ещё раз..");Sleep(3000);return(1);
           case 138:    Print("Запрошенная цена устарела, либо перепутаны bid и ask.");return(1);
           case 139:    Print("Ордер заблокирован и уже обрабатывается.");return(1);
           case 140:    Print("Разрешена только покупка. Повторять операцию SELL нельзя.");return(1);
           case 141:    Print("Слишком много запросов.");return(1);
           case 142:    Print("Ордер поставлен в очередь.");return(1);
           case 143:    Print("Ордер принят дилером к исполнению.");return(1);
           case 144:    Print("Ордер аннулирован самим клиентом при ручном подтверждении сделки.");return(1);
           case 145:    Print("Модификация запрещена, так как ордер слишком близок к рынку и заблокирован из-за возможного скорого исполнения.");return(1);
           case 146:    Print("Подсистема торговли занята.Пробуем ещё..");Sleep(500);return(1);
           case 147:    Print("Использование даты истечения ордера запрещено брокером.");return(1);
           case 148:    Print("Количество открытых и отложенных ордеров достигло предела, установленного брокером.");return(1);
           case 149:    Print("Попытка открыть противоположную позицию к уже существующей в случае, если хеджирование запрещено.");return(1);
           case 4000:   return (0);
           case 4001:   Print("Неправильный указатель функции.");return(1);
           case 4002:   Print("Индекс массива - вне диапазона.");return(1);
           case 4003:   Print("Нет памяти для стека функций.");return(1);
           case 4004:   Print("Переполнение стека после рекурсивного вызова.");return(1);
           case 4005:   Print("На стеке нет памяти для передачи параметров.");return(1);
           case 4006:   Print("Нет памяти для строкового параметра.");return(1);
           case 4007:   Print("Нет памяти для временной строки.");return(1);
           case 4008:   Print("Неинициализированная строка.");return(1);
           case 4009:   Print("Неинициализированная строка в массиве.");return(1);
           case 4010:   Print("Нет памяти для строкового массива.");return(1);
           case 4011:   Print("Слишком длинная строка.");return(1);
           case 4012:   Print("Остаток от деления на ноль.");return(1);
           case 4013:   Print("Деление на ноль.");return(1);
           case 4014:   Print("Неизвестная команда.");return(1);
           case 4015:   Print("Неправильный переход.");return(1);
           case 4016:   Print("Неинициализированный массив.");return(1);
           case 4017:   Print("Вызовы DLL не разрешены.");return(1);
           case 4018:   Print("Невозможно загрузить библиотеку.");return(1);
           case 4019:   Print("Невозможно вызвать функцию.");return(1);
           case 4020:   Print("Вызовы внешних библиотечных функций не разрешены.");return(1);
           case 4021:   Print("Недостаточно памяти для строки, возвращаемой из функции.");return(1);
           case 4022:   Print("Система занята.");return(1);
           case 4050:   Print("Неправильное количество параметров функции.");return(1);
           case 4051:   Print("Недопустимое значение параметра функции.");return(1);
           case 4052:   Print("Внутренняя ошибка строковой функции.");return(1);
           case 4053:   Print("Ошибка массива.");return(1);
           case 4054:   Print("Неправильное использование массива-таймсерии.");return(1);
           case 4055:   Print("Ошибка пользовательского индикатора.");return(1);
           case 4056:   Print("Массивы несовместимы.");return(1);
           case 4057:   Print("Ошибка обработки глобальныех переменных.");return(1);
           case 4058:   Print("Глобальная переменная не обнаружена.");return(1);
           case 4059:   Print("Функция не разрешена в тестовом режиме.");return(1);
           case 4060:   Print("Функция не подтверждена.");return(1);
           case 4061:   Print("Ошибка отправки почты.");return(1);
           case 4062:   Print("Ожидается параметр типа string.");return(1);
           case 4063:   Print("Ожидается параметр типа integer.");return(1);
           case 4064:   Print("Ожидается параметр типа double.");return(1);
           case 4065:   Print("В качестве параметра ожидается массив.");return(1);
           case 4066:   Print("Запрошенные исторические данные в состоянии обновления.");return(1);
           case 4067:   Print("Ошибка при выполнении торговой операции.");return(1);
           case 4099:   Print("Конец файла.");return(1);
           case 4100:   Print("Ошибка при работе с файлом.");return(1);
           case 4101:   Print("Неправильное имя файла.");return(1);
           case 4102:   Print("Слишком много открытых файлов.");return(1);
           case 4103:   Print("Невозможно открыть файл.");return(1);
           case 4104:   Print("Несовместимый режим доступа к файлу.");return(1);
           case 4105:   Print("Ни один ордер не выбран.");return(1);
           case 4106:   Print("Неизвестный символ.");return(1);
           case 4107:   Print("Неправильный параметр цены для торговой функции.");return(1);
           case 4108:   Print("Неверный номер тикета.");return(1);
           case 4109:   Print("Торговля не разрешена. Необходимо включить опцию Разрешить советнику торговать в свойствах эксперта.");return(1);
           case 4110:   Print("Длинные позиции не разрешены. Необходимо проверить свойства эксперта.");return(1);
           case 4111:   Print("Короткие позиции не разрешены. Необходимо проверить свойства эксперта.");return(1);
           case 4200:   Print("Объект уже существует.");return(1);
           case 4201:   Print("Запрошено неизвестное свойство объекта.");return(1);
           case 4202:   Print("Объект не существует.");return(1);
           case 4203:   Print("Неизвестный тип объекта.");return(1);
           case 4204:   Print("Нет имени объекта.");return(1);
           case 4205:   Print("Ошибка координат объекта.");return(1);
           case 4206:   Print("Не найдено указанное подокно.");return(1);
           case 4207:   Print("Ошибка при работе с объектом.");return(1);
           return(0);
     }
     return(0);  
  }

Понравилась статья? Поделить с друзьями:
  • Ошибка 4050 фольксваген
  • Ошибка 408 касса меркурий
  • Ошибка 406 при оплате картой
  • Ошибка 4050 ман тга
  • Ошибка 408 peer is not answering