Orders Execution
Miscellaneous
0
Views
0
Downloads
0
Favorites
Urdala_Tester
//+------------------------------------------------------------------+
//| Urdala_Tester.mq4 |
//| Ñåðãåé (urdala) Ðàøåâñêèé |
//| http://urdala-forex.at.ua |
//+------------------------------------------------------------------+
#property copyright "Ñåðãåé (urdala) Ðàøåâñêèé"
#property link "http://urdala-forex.at.ua"
extern bool UseLine = true;
extern bool StartLine = false;
extern bool OpenStep = true;
extern string File = "Orders.csv";
extern int Slippage = 10;
extern double CloseProfit = 0;
extern double CloseProfitProc= 0;
extern int Magic = 777;
/////////////////////////////////////////////////////////////////////////
int D,i,i1,Ticket,TicketFind;
string Text,Read,Com;
double Lot,Price0,Price0New;
double PriceOP,PriceTP,PriceSL;
int Handle;
string Data[10][1000];
bool Take;
int init()
{
D=1;
if (Digits==5 || Digits==3)D=10;
return(0);
}
/////////////////////////////////////////////////////////////////////////
//*********************************************************************//
/////////////////////////////////////////////////////////////////////////
int start()
{
int Orders;
double ProfitAll;
for (i=0; i<OrdersTotal(); i++)
{
OrderSelect(i,SELECT_BY_POS);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic){Orders++;ProfitAll+=OrderProfit()+OrderSwap()-OrderCommission();}
}
if ((CloseProfit>0 && ProfitAll>CloseProfit) || (CloseProfit<0 && ProfitAll<CloseProfit))
{
CloseMarket();DelOtl();
if (ObjectFind("0")==0){ObjectDelete("0");Price0=0;}
return(0);
}
if ((CloseProfitProc>0 && ProfitAll>AccountBalance()/100.0*CloseProfitProc) || (CloseProfitProc<0 && ProfitAll<AccountBalance()/100.0*CloseProfitProc))
{
CloseMarket();DelOtl();
if (ObjectFind("0")==0){ObjectDelete("0");Price0=0;}
return(0);
}
//////////////////////////////////////////////////////////////////////
if (!UseLine && Orders==0)
{
if (ObjectFind("0")!=0)ObjectCreate("0",OBJ_HLINE,0,0,Bid);
}
if (ObjectFind("0")!=0)
{
Comment("Æäåì óñòàíîâêè íóëåâîé îòìåòêè");
Price0=0;
if (Orders>0)CloseMarket();DelOtl();
Take=false;
return(0);
}
Price0New=NormalizeDouble(ObjectGet("0",OBJPROP_PRICE1),Digits);
if (Price0New!=Price0 && Price0!=0)
{
ObjectSet("0",OBJPROP_PRICE1,Price0);
return(0);
}
Price0=Price0New;
Text="Íóëåâàÿ îòìåòêà = "+DoubleToStr(Price0,Digits);
Text=Text+"\nÎáùàÿ ïðèáûëü = "+DoubleToStr(ProfitAll,2);
if (NormalizeDouble(Bid,Digits)<Price0+Slippage*Point && NormalizeDouble(Bid,Digits)>Price0-Slippage*Point)Take=true;
if (StartLine && !Take && UseLine){Comment("Æäåì êàñàíèÿ íóëåâîé îòìåòêè");return(0);}
/////////////////////////////////////////////////////////////////////////
Handle=FileOpen(File,FILE_CSV|FILE_READ,";");
if (Handle<0){Comment("Íå íàéäåí ôàéë ",File);return(0);}
int FileOrders;
while (!IsStopped())
{
Read=FileReadString(Handle);
if (FileIsEnding(Handle))break;
if (Read!="buy" && Read!="sell")
{
while(!IsStopped())
{
Read=FileReadString(Handle);
if(FileIsLineEnding(Handle))break;
}
continue;
}
Text=Text+"\n"+(FileOrders+2)+" "+Read;FileOrders++;Data[0][FileOrders-1]=Read;
i=1;
while(!IsStopped())
{
Read=FileReadString(Handle);
if(i<5)Text=Text+" "+Read;
Data[i][FileOrders-1]=Read;
if(FileIsLineEnding(Handle))break;
i++;
}
}
FileClose(Handle);
Text=Text+"\n\nÎðäåðîâ â ôàéëå = "+FileOrders;
Comment(Text);
/////////////////////////////////////////////////////////////////////////
//Îòêðûòèå âñåõ îðäåðîâ ñðàçó
if ((Take || !StartLine) && !OpenStep)
{
for (i=0;i<FileOrders;i++)
{
PriceOP=NormalizeDouble(Price0+StrToDouble(Data[2][i])*Point,Digits);
TicketFind=FindOrder(i+2);
if (TicketFind==0)
{
///////////////////////////////////////////////////////
if (Data[0][i]=="buy")
{
if (StrToDouble(Data[3][i])>0)PriceSL=NormalizeDouble(PriceOP-StrToDouble(Data[3][i])*Point,Digits);
else PriceSL=0;
if (StrToDouble(Data[4][i])>0)PriceTP=NormalizeDouble(PriceOP+StrToDouble(Data[4][i])*Point,Digits);
else PriceTP=0;
Com=i+2;
if (Ask>PriceOP-Slippage*Point && Ask<PriceOP+Slippage*Point)
{
OpenOrder(Symbol(),OP_BUY,StrToDouble(Data[1][i]),Ask,0,0,Com,Magic);
continue;
}
if (Ask>PriceOP-Slippage*Point){OpenOrder(Symbol(),OP_BUYLIMIT,StrToDouble(Data[1][i]),PriceOP,PriceSL,PriceTP,Com,Magic);continue;}
if (Ask<PriceOP+Slippage*Point){OpenOrder(Symbol(),OP_BUYSTOP,StrToDouble(Data[1][i]),PriceOP,PriceSL,PriceTP,Com,Magic);continue;}
}
///////////////////////////////////////////////////////
if (Data[0][i]=="sell")
{
if (StrToDouble(Data[3][i])>0)PriceSL=NormalizeDouble(PriceOP+StrToDouble(Data[3][i])*Point,Digits);
else PriceSL=0;
if (StrToDouble(Data[4][i])>0)PriceTP=NormalizeDouble(PriceOP-StrToDouble(Data[4][i])*Point,Digits);
else PriceTP=0;
Com=i+2;
if (Bid>PriceOP-Slippage*Point && Bid<PriceOP+Slippage*Point)
{
Ticket=OpenOrder(Symbol(),OP_SELL,StrToDouble(Data[1][i]),Bid,0,0,Com,Magic);
continue;
}
if (Bid>PriceOP-Slippage*Point){OpenOrder(Symbol(),OP_SELLSTOP,StrToDouble(Data[1][i]),PriceOP,PriceSL,PriceTP,Com,Magic);continue;}
if (Bid<PriceOP+Slippage*Point){OpenOrder(Symbol(),OP_SELLLIMIT,StrToDouble(Data[1][i]),PriceOP,PriceSL,PriceTP,Com,Magic);continue;}
}
}
////////////////////////////////////////////////////////
if (TicketFind>0)
{
OrderSelect(TicketFind,SELECT_BY_TICKET,MODE_TRADES);
if (Data[0][i]=="buy")
{
if (StrToDouble(Data[3][i])>0)PriceSL=NormalizeDouble(PriceOP-StrToDouble(Data[3][i])*Point,Digits);
else PriceSL=0;
if (StrToDouble(Data[4][i])>0)PriceTP=NormalizeDouble(PriceOP+StrToDouble(Data[4][i])*Point,Digits);
else PriceTP=0;
}
if (Data[0][i]=="sell")
{
if (StrToDouble(Data[3][i])>0)PriceSL=NormalizeDouble(PriceOP+StrToDouble(Data[3][i])*Point,Digits);
else PriceSL=0;
if (StrToDouble(Data[4][i])>0)PriceTP=NormalizeDouble(PriceOP-StrToDouble(Data[4][i])*Point,Digits);
else PriceTP=0;
}
if (NormalizeDouble(OrderStopLoss(),Digits)!=PriceSL || NormalizeDouble(OrderTakeProfit(),Digits)!=PriceTP)
ModifyOrder(OrderTicket(),OrderOpenPrice(),PriceSL,PriceTP);
}
////////////////////////////////////////////////////////////
}
}
/////////////////////////////////////////////////////////////////////////
//Îòêðûòèå îðäåðîâ ïîïîðÿäêó
if ((Take || !StartLine) && OpenStep)
{
//íàõîäèì ïîñëåäíèé îòêðûòûé îðäåð.
int LastNomMarket,LastNomPending,n;
for (i=0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
{
n=StrToInteger(OrderComment());
if (OrderType()>1)LastNomPending=n;
else LastNomMarket=n;
}
}
/////////////////////////////
for (i=0;i<FileOrders;i++)
{
PriceOP=NormalizeDouble(Price0+StrToDouble(Data[2][i])*Point,Digits);
TicketFind=FindOrder(i+2);
if (TicketFind==0 && LastNomPending==0)
{
///////////////////////////////////////////////////////
if (Data[0][i]=="buy")
{
if (StrToDouble(Data[3][i])>0)PriceSL=NormalizeDouble(PriceOP-StrToDouble(Data[3][i])*Point,Digits);
else PriceSL=0;
if (StrToDouble(Data[4][i])>0)PriceTP=NormalizeDouble(PriceOP+StrToDouble(Data[4][i])*Point,Digits);
else PriceTP=0;
Com=i+2;
if (Ask>PriceOP-Slippage*Point && Ask<PriceOP+Slippage*Point)
{
OpenOrder(Symbol(),OP_BUY,StrToDouble(Data[1][i]),Ask,0,0,Com,Magic);
continue;
}
if (Ask>PriceOP-Slippage*Point){OpenOrder(Symbol(),OP_BUYLIMIT,StrToDouble(Data[1][i]),PriceOP,PriceSL,PriceTP,Com,Magic);LastNomPending=i;continue;}
if (Ask<PriceOP+Slippage*Point){OpenOrder(Symbol(),OP_BUYSTOP,StrToDouble(Data[1][i]),PriceOP,PriceSL,PriceTP,Com,Magic);LastNomPending=i;continue;}
}
///////////////////////////////////////////////////////
if (Data[0][i]=="sell")
{
if (StrToDouble(Data[3][i])>0)PriceSL=NormalizeDouble(PriceOP+StrToDouble(Data[3][i])*Point,Digits);
else PriceSL=0;
if (StrToDouble(Data[4][i])>0)PriceTP=NormalizeDouble(PriceOP-StrToDouble(Data[4][i])*Point,Digits);
else PriceTP=0;
Com=i+2;
if (Bid>PriceOP-Slippage*Point && Bid<PriceOP+Slippage*Point)
{
Ticket=OpenOrder(Symbol(),OP_SELL,StrToDouble(Data[1][i]),Bid,0,0,Com,Magic);
continue;
}
if (Bid>PriceOP-Slippage*Point){OpenOrder(Symbol(),OP_SELLSTOP,StrToDouble(Data[1][i]),PriceOP,PriceSL,PriceTP,Com,Magic);LastNomPending=i;continue;}
if (Bid<PriceOP+Slippage*Point){OpenOrder(Symbol(),OP_SELLLIMIT,StrToDouble(Data[1][i]),PriceOP,PriceSL,PriceTP,Com,Magic);LastNomPending=i;continue;}
}
}
////////////////////////////////////////////////////////
if (TicketFind>0)
{
OrderSelect(TicketFind,SELECT_BY_TICKET,MODE_TRADES);
if (Data[0][i]=="buy")
{
if (StrToDouble(Data[3][i])>0)PriceSL=NormalizeDouble(PriceOP-StrToDouble(Data[3][i])*Point,Digits);
else PriceSL=0;
if (StrToDouble(Data[4][i])>0)PriceTP=NormalizeDouble(PriceOP+StrToDouble(Data[4][i])*Point,Digits);
else PriceTP=0;
}
if (Data[0][i]=="sell")
{
if (StrToDouble(Data[3][i])>0)PriceSL=NormalizeDouble(PriceOP+StrToDouble(Data[3][i])*Point,Digits);
else PriceSL=0;
if (StrToDouble(Data[4][i])>0)PriceTP=NormalizeDouble(PriceOP-StrToDouble(Data[4][i])*Point,Digits);
else PriceTP=0;
}
if (NormalizeDouble(OrderStopLoss(),Digits)!=PriceSL || NormalizeDouble(OrderTakeProfit(),Digits)!=PriceTP)
ModifyOrder(OrderTicket(),OrderOpenPrice(),PriceSL,PriceTP);
}
////////////////////////////////////////////////////////////
}
}
/////////////////////////////////////////////////////////////////////////
return(0);
}
/////////////////////////////////////////////////////////////////////////
//*******************************************************************////
/////////////////////////////////////////////////////////////////////////
int FindOrder(int ticket)
{
for (i1=0; i1<OrdersTotal(); i1++)
{
OrderSelect(i1,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && StrToInteger(OrderComment())==ticket)return(OrderTicket());
}
return(0);
}
/////////////////////////////////////////////////////////////////////////
int DelOtl()
{
for (int j=0; j<OrdersTotal(); j++)
{
OrderSelect(j,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()>1)
{
OrderDelete(OrderTicket());
j--;
}
}
}
/////////////////////////////////////////////////////////////////////////
int CloseMarket()
{
for (int j=0; j<OrdersTotal(); j++)
{
OrderSelect(j,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()<2)
{
CloseOrder(OrderTicket(),OrderLots());
j--;
}
}
}
/////////////////////////////////////////////////////////////////////////////
int OpenOrder(string symbol,int cmd,double volume,double price,double stoploss,double takeprofit,string comment,int magic)
{
int err,i1,ticket;
color clr;
while(i1<10)
{
RefreshRates();
if (cmd==0)price=Ask;
if (cmd==1)price=Bid;
if (cmd==0 || cmd==2 || cmd==4)clr=Blue;
if (cmd==1 || cmd==3 || cmd==5)clr=Red;
ticket=OrderSend(symbol,cmd,volume,NormalizeDouble(price,Digits),Slippage,NormalizeDouble(stoploss,Digits),NormalizeDouble(takeprofit,Digits),comment,magic,0,clr);
err = GetLastError();
if (err == 0) break;
Print(WindowExpertName(),Symbol(),Error(err)," ïðè îòêðûòèè îðäåðà");
Sleep(100);
i1++;
}
return(ticket);
}
/////////////////////////////////////////////////////////////////////////////
int CloseOrder(int ticket, double lots)
{
int err,i1;
double price;
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
if (lots<MarketInfo(Symbol(),MODE_MINLOT))lots=MarketInfo(Symbol(),MODE_MINLOT);
while(i1<10)
{
RefreshRates();
if (OrderType()==0)price=Bid;
if (OrderType()==1)price=Ask;
if (OrderType()>1){OrderDelete(ticket);return(0);}
OrderClose(ticket,lots,NormalizeDouble(price,Digits),Slippage,Goldenrod);
err = GetLastError();
if (err == 0) break;
Print(WindowExpertName(),Symbol(),Error(err)," ïðè çàêðûòèè îðäåðà");
Sleep(100);
i1++;
}
return(0);
}
//////////////////////////////////////////////////////////////////////////////
int ModifyOrder(int ticket,double price,double stoploss,double takeprofit)
{
int err,i1;
while(i1<10)
{
RefreshRates();
OrderModify(ticket,NormalizeDouble(price,Digits),NormalizeDouble(stoploss,Digits),NormalizeDouble(takeprofit,Digits),0,CLR_NONE);
err = GetLastError();
if (err == 0) break;
Print(WindowExpertName(),Symbol(),Error(err)," ïðè ìîäèôèêàöèè îðäåðà");
Sleep(100);
i1++;
}
return(0);
}
///////////////////////////////////////////////////////////////////////////////
string Error(int error_code)
{
string error_string;
switch(error_code)
{
case 0: error_string="Íåò îøèáîê"; break;
case 1: error_string="Íåò îøèáêè, íî ðåçóëüòàò íåèçâåñòåí"; break;
case 2: error_string="Îáùàÿ îøèáêà"; break;
case 3: error_string="Íåïðàâèëüíûå ïàðàìåòðû"; break;
case 4: error_string="Òîðãîâûé ñåðâåð çàíÿò"; break;
case 5: error_string="Ñòàðàÿ âåðñèÿ êëèåíòñêîãî òåðìèíàëà"; break;
case 6: error_string="Íåò ñâÿçè ñ òîðãîâûì ñåðâåðîì"; break;
case 7: error_string="Íåäîñòàòî÷íî ïðàâ"; break;
case 8: error_string="Ñëèøêîì ÷àñòûå çàïðîñû"; break;
case 9: error_string="Íåäîïóñòèìàÿ îïåðàöèÿ íàðóøàþùàÿ ôóíêöèîíèðîâàíèå ñåðâåðà"; break;
case 64: error_string="Ñ÷åò çàáëîêèðîâàí"; break;
case 65: error_string="Íåïðàâèëüíûé íîìåð ñ÷åòà"; break;
case 128: error_string="Èñòåê ñðîê îæèäàíèÿ ñîâåðøåíèÿ ñäåëêè"; break;
case 129: error_string="Íåïðàâèëüíàÿ öåíà"; break;
case 130: error_string="Íåïðàâèëüíûå ñòîïû"; break;
case 131: error_string="Íåïðàâèëüíûé îáúåì"; break;
case 132: error_string="Ðûíîê çàêðûò"; break;
case 133: error_string="Òîðãîâëÿ çàïðåùåíà"; break;
case 134: error_string="Íåäîñòàòî÷íî äåíåã äëÿ ñîâåðøåíèÿ îïåðàöèè"; break;
case 135: error_string="Öåíà èçìåíèëàñü"; break;
case 136: error_string="Íåò öåí"; break;
case 137: error_string="Áðîêåð çàíÿò"; break;
case 138: error_string="Íîâûå öåíû"; break;
case 139: error_string="Îðäåð çàáëîêèðîâàí è óæå îáðàáàòûâàåòñÿ"; break;
case 140: error_string="Ðàçðåøåíà òîëüêî ïîêóïêà"; break;
case 141: error_string="Ñëèøêîì ìíîãî çàïðîñîâ"; break;
case 145: error_string="Ìîäèôèêàöèÿ çàïðåùåíà, òàê êàê îðäåð ñëèøêîì áëèçîê ê ðûíêó"; break;
case 146: error_string="Ïîäñèñòåìà òîðãîâëè çàíÿòà"; break;
case 147: error_string="Èñïîëüçîâàíèå äàòû èñòå÷åíèÿ îðäåðà çàïðåùåíî áðîêåðîì"; break;
case 148: error_string="Êîëè÷åñòâî îòêðûòûõ è îòëîæåííûõ îðäåðîâ äîñòèãëî ïðåäåëà, óñòàíîâëåííîãî áðîêåðîì.";break;
case 4000: error_string="Íåò îøèáêè"; break;
case 4001: error_string="Íåïðàâèëüíûé óêàçàòåëü ôóíêöèè"; break;
case 4002: error_string="Èíäåêñ ìàññèâà - âíå äèàïàçîíà"; break;
case 4003: error_string="Íåò ïàìÿòè äëÿ ñòåêà ôóíêöèé"; break;
case 4004: error_string="Ïåðåïîëíåíèå ñòåêà ïîñëå ðåêóðñèâíîãî âûçîâà"; break;
case 4005: error_string="Íà ñòåêå íåò ïàìÿòè äëÿ ïåðåäà÷è ïàðàìåòðîâ"; break;
case 4006: error_string="Íåò ïàìÿòè äëÿ ñòðîêîâîãî ïàðàìåòðà"; break;
case 4007: error_string="Íåò ïàìÿòè äëÿ âðåìåííîé ñòðîêè"; break;
case 4008: error_string="Íåèíèöèàëèçèðîâàííàÿ ñòðîêà"; break;
case 4009: error_string="Íåèíèöèàëèçèðîâàííàÿ ñòðîêà â ìàññèâå"; break;
case 4010: error_string="Íåò ïàìÿòè äëÿ ñòðîêîâîãî ìàññèâà"; break;
case 4011: error_string="Ñëèøêîì äëèííàÿ ñòðîêà"; break;
case 4012: error_string="Îñòàòîê îò äåëåíèÿ íà íîëü"; break;
case 4013: error_string="Äåëåíèå íà íîëü"; break;
case 4014: error_string="Íåèçâåñòíàÿ êîìàíäà"; break;
case 4015: error_string="Íåïðàâèëüíûé ïåðåõîä"; break;
case 4016: error_string="Íåèíèöèàëèçèðîâàííûé ìàññèâ"; break;
case 4017: error_string="Âûçîâû DLL íå ðàçðåøåíû"; break;
case 4018: error_string="Íåâîçìîæíî çàãðóçèòü áèáëèîòåêó"; break;
case 4019: error_string="Íåâîçìîæíî âûçâàòü ôóíêöèþ"; break;
case 4020: error_string="Âûçîâû âíåøíèõ áèáëèîòå÷íûõ ôóíêöèé íå ðàçðåøåíû"; break;
case 4021: error_string="Íåäîñòàòî÷íî ïàìÿòè äëÿ ñòðîêè, âîçâðàùàåìîé èç ôóíêöèè"; break;
case 4022: error_string="Ñèñòåìà çàíÿòà"; break;
case 4050: error_string="Íåïðàâèëüíîå êîëè÷åñòâî ïàðàìåòðîâ ôóíêöèè"; break;
case 4051: error_string="Íåäîïóñòèìîå çíà÷åíèå ïàðàìåòðà ôóíêöèè"; break;
case 4052: error_string="Âíóòðåííÿÿ îøèáêà ñòðîêîâîé ôóíêöèè"; break;
case 4053: error_string="Îøèáêà ìàññèâà"; break;
case 4054: error_string="Íåïðàâèëüíîå èñïîëüçîâàíèå ìàññèâà-òàéìñåðèè"; break;
case 4055: error_string="Îøèáêà ïîëüçîâàòåëüñêîãî èíäèêàòîðà"; break;
case 4056: error_string="Ìàññèâû íåñîâìåñòèìû"; break;
case 4057: error_string="Îøèáêà îáðàáîòêè ãëîáàëüíûåõ ïåðåìåííûõ"; break;
case 4058: error_string="Ãëîáàëüíàÿ ïåðåìåííàÿ íå îáíàðóæåíà"; break;
case 4059: error_string="Ôóíêöèÿ íå ðàçðåøåíà â òåñòîâîì ðåæèìå"; break;
case 4060: error_string="Ôóíêöèÿ íå ðàçðåøåíà"; break;
case 4061: error_string="Îøèáêà îòïðàâêè ïî÷òû"; break;
case 4062: error_string="Îæèäàåòñÿ ïàðàìåòð òèïà string"; break;
case 4063: error_string="Îæèäàåòñÿ ïàðàìåòð òèïà integer"; break;
case 4064: error_string="Îæèäàåòñÿ ïàðàìåòð òèïà double"; break;
case 4065: error_string=" êà÷åñòâå ïàðàìåòðà îæèäàåòñÿ ìàññèâ"; break;
case 4066: error_string="Çàïðîøåííûå èñòîðè÷åñêèå äàííûå â ñîñòîÿíèè îáíîâëåíèÿ"; break;
case 4067: error_string="Îøèáêà ïðè âûïîëíåíèè òîðãîâîé îïåðàöèè"; break;
case 4099: error_string="Êîíåö ôàéëà"; break;
case 4100: error_string="Îøèáêà ïðè ðàáîòå ñ ôàéëîì"; break;
case 4101: error_string="Íåïðàâèëüíîå èìÿ ôàéëà"; break;
case 4102: error_string="Ñëèøêîì ìíîãî îòêðûòûõ ôàéëîâ"; break;
case 4103: error_string="Íåâîçìîæíî îòêðûòü ôàéë"; break;
case 4104: error_string="Íåñîâìåñòèìûé ðåæèì äîñòóïà ê ôàéëó"; break;
case 4105: error_string="Íè îäèí îðäåð íå âûáðàí"; break;
case 4106: error_string="Íåèçâåñòíûé ñèìâîë"; break;
case 4107: error_string="Íåïðàâèëüíûé ïàðàìåòð öåíû äëÿ òîðãîâîé ôóíêöèè"; break;
case 4108: error_string="Íåâåðíûé íîìåð òèêåòà"; break;
case 4109: error_string="Òîðãîâëÿ íå ðàçðåøåíà. Íåîáõîäèìî âêëþ÷èòü îïöèþ Ðàçðåøèòü ñîâåòíèêó òîðãîâàòü â ñâîéñòâàõ ýêñïåðòà."; break;
case 4110: error_string="Äëèííûå ïîçèöèè íå ðàçðåøåíû. Íåîáõîäèìî ïðîâåðèòü ñâîéñòâà ýêñïåðòà."; break;
case 4111: error_string="Êîðîòêèå ïîçèöèè íå ðàçðåøåíû. Íåîáõîäèìî ïðîâåðèòü ñâîéñòâà ýêñïåðòà."; break;
case 4200: error_string="Îáúåêò óæå ñóùåñòâóåò"; break;
case 4201: error_string="Çàïðîøåíî íåèçâåñòíîå ñâîéñòâî îáúåêòà"; break;
case 4202: error_string="Îáúåêò íå ñóùåñòâóåò"; break;
case 4203: error_string="Íåèçâåñòíûé òèï îáúåêòà"; break;
case 4204: error_string="Íåò èìåíè îáúåêòà"; break;
case 4205: error_string="Îøèáêà êîîðäèíàò îáúåêòà"; break;
case 4206: error_string="Íå íàéäåíî óêàçàííîå ïîäîêíî"; break;
default: error_string="Îøèáêà ïðè ðàáîòå ñ îáúåêòîì";
}
return(error_string);
}
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---