Orders Execution
Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
musketeer
//+------------------------------------------------------------------+
//| musketeer.mq4 |
//| Copyright 04.2015, galladion |
//| https://vk.com/id1398982 |
//+------------------------------------------------------------------+
#property copyright "Copyright 04.2015, galladion"
#property link "https://vk.com/id1398982"
#property version "1.00"
#property strict
string Symb=Symbol();
bool Work=true;
string work_msg;
string Global_Close="PClose";
string Global_Prof_flag = "PFlag";
string Global_work_flag = "WFlag_"+SymbolInfoString(Symbol(),SYMBOL_DESCRIPTION);
double work_flag,p_close=0,TP_flag=0,Prof_flag=0;
int Total= 0;
int flag = 0;
extern int Mag_N = 123;
extern int Mag_M = 456;
extern int TP = 15; //TakeProfit
extern int SL = 30; //StopLoss
extern int min_Pr=5; //îæèäàåìûé ïðîôèò ñ îðäåðà
extern int Fast_MA = 12;// ïåðèîä áûñòðîãî ìóâèíãà äëÿ âõîäà
extern int Slow_MA = 60;// ïåðèîä ìåäëåííîãî ìóâèíãà äëÿ âõîäà
extern double min_lot=0.1;// ìèíèìàëüíûé (áàçîâûé) ëîò
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
if(GlobalVariableCheck(Global_work_flag)==true) work_flag=GlobalVariableGet(Global_work_flag);
if(GlobalVariableCheck(Global_Close)==true) p_close=GlobalVariableGet(Global_Close);
if(GlobalVariableCheck(Global_Prof_flag)==true) Prof_flag=GlobalVariableGet(Global_Prof_flag);
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
if(GlobalVariableSet(Global_work_flag,work_flag)==0) Alert("Îøèáêà çàïèñè ãëîáàëüíîé ïåðåìåííîé");
if(GlobalVariableSet(Global_Close,p_close)==0) Alert("Îøèáêà çàïèñè ãëîáàëüíîé ïåðåìåííîé");
if(GlobalVariableSet(Global_Prof_flag,Prof_flag)==0) Alert("Îøèáêà çàïèñè ãëîáàëüíîé ïåðåìåííîé");
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
int
F_order_all=0;
string
Order_Symb[100];
int k;
if(GlobalVariableCheck(Global_work_flag) == true) work_flag = GlobalVariableGet(Global_work_flag);
if(GlobalVariableCheck(Global_Prof_flag) == true) Prof_flag = GlobalVariableGet(Global_Prof_flag);
bool
level_tp= false,
Cls_All =false,
Ans=false,
Opn_B =false,
Opn_S =false;
double
Profit_Glob_All=0,
Pr=0,
Price[10]={0},
Lot[10];
Total=0;
datetime Ttime[10];
int
Tick_Sl=0,
Tick[10]= {0},
Tip[10] = {-1},
Ticket=0;
double pt_cost=MarketInfo(Symbol(),MODE_TICKVALUE);
Lot[0]=min_lot;
//---
//---îïðåäåëåíèå êîíòðîëüíûõ òî÷åê
// ïðîñìàòðèâàåì âñå îòêðûòûå îðäåðà
// îòìåòàåì ñòàðòîâûå îðäåðà(ïî ìèí.ëîòó è 1-ìó ìåäæèêó) íå ñîîòâ ñèìâîëó ÷àðòà
// ïî îñòàëüíûì îðäåðàì çàïèñûâàåì èìÿ èíñðóìåíòà â ìàññèâ
// âûáèðàÿ ïðè ýòîì òîëüêî óíèêàëüíûå çàïèñè
// åñëè âñå îðäåðà îòêðûòû ñ ìèí.ëîòîì - îáíóëÿåì ãëîá.ïåðåìåííóþ.
for(int i=1; i<=OrdersTotal(); i++)
{
if(OrderSelect(i-1,SELECT_BY_POS)==true)
{
if(OrderMagicNumber()==Mag_N && OrderLots()==min_lot && OrderSymbol()!=Symb)continue;
for(k=0;k<=F_order_all;k++)
{
if(Order_Symb[k]==OrderSymbol()) break;
}
if(k>F_order_all)
{
Order_Symb[F_order_all]=OrderSymbol();
F_order_all++;
}
}
}
if(Prof_flag!=0 && F_order_all==1 && OrderSymbol()==Symb && OrderLots()==min_lot)
{
Prof_flag=0;
if(GlobalVariableSet(Global_Prof_flag,Prof_flag)==0) Alert("Îøèáêà çàïèñè ãëîáàëüíîé ïåðåìåííîé");
}
//---
// ñòèòàåì ïðîôèò ïî ñâîåìó ñèìâîëó è ñèìâîëàì ñ íåìèíèìàëüíûì ëîòîì
// åñëè ïðîôèò áîëüøå çîëîæåííîé ìèíèìàëüíîé ïðèáûëè - çàêðûâàåì âñå íåñòàíäàðòíûå îðäåðà
for(int j=F_order_all-1; j>=0; j--)
{
for(int i=0; i<=OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS)==true)
{
if(OrderSymbol()!=Order_Symb[j])continue;
Profit_Glob_All +=OrderProfit();
Profit_Glob_All +=OrderSwap();
Profit_Glob_All +=OrderCommission();
}
}
}
//---
Profit_Glob_All+=Prof_flag;
if(Profit_Glob_All>=min_Pr && Prof_flag!=0) Cls_All=true;
//---------------
//---çàêðûòèå îðäåðîâ
// çàêðûòèå íåñò.îðäåðîâ ïðîâîäèòñÿ òîëüêî îäíèì ýêñïåðòîì, äëÿ ýòîãî ââîäèì ãëîá.ïåðåìåííóþ
// åñëè ïî èíñòðóìåíòó îòêðûòî 2 ðàçíîíàïð. îðäåðà - çàêðûâàåì îäèí çà ñ÷åò äðóãîãî
// åñëè îòêðûò òîëüêî 1 îðäåð - òî ïðîñòî çàêðûâàåì
if(GlobalVariableCheck(Global_Close)==true) p_close=GlobalVariableGet(Global_Close);
if(Cls_All==true && p_close==0)
{
if(GlobalVariableSet(Global_Close,1)==0) Alert("Îøèáêà çàïèñè ãëîáàëüíîé ïåðåìåííîé");
for(int j=0; j<F_order_all; j++)
{
for(int i=0; i<=OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS)==true)
{
int Order_Tick_1 = OrderTicket();
int Order_Type_1 = OrderType();
double Order_Lot_1=OrderLots();
string Order_Symb_1=OrderSymbol();
if(Order_Symb_1!=Order_Symb[j])continue;
while(true)
{
//--
for(int l=0; l<=OrdersTotal(); l++)
{
if(OrderSelect(l,SELECT_BY_POS)==true)
{
if(OrderSymbol()!=Order_Symb[j])continue;
if(OrderTicket()==Order_Tick_1)continue;
RefreshRates();
Alert(Symb," Ïîïûòêà çàêðûòü ",Order_Tick_1,"/",OrderTicket()," ",OrderSymbol(),". Îæèäàíèå îòâåòà..");
Ans=OrderCloseBy(Order_Tick_1,OrderTicket());
if(Ans==true)
{
Alert(Symb," Çàêðûò îðäåð ",Order_Tick_1,"/",OrderTicket()," ,",OrderSymbol());
Order_Tick_1=0;
}
if(Fun_Error(GetLastError())==1)
continue;
break;
}
}
if(Order_Tick_1==0)break;
if(Order_Tick_1!=0 && Order_Lot_1==min_lot && Order_Symb_1==Symb)break;
//--
RefreshRates();
if(Order_Type_1==0) Pr=MarketInfo(Order_Symb_1,MODE_BID); else Pr=MarketInfo(Order_Symb_1,MODE_ASK);
Alert(Symb," Ïîïûòêà çàêðûòü ",Order_Tick_1,". Îæèäàíèå îòâåòà..");
Ans=OrderClose(Order_Tick_1,Order_Lot_1,Pr,2);
if(Ans==true)
Alert(Symb," Çàêðûò îðäåð ",Order_Tick_1," ,",Order_Symb_1);
if(Fun_Error(GetLastError())==1)
continue;
break;
}
}
}
}
if(GlobalVariableSet(Global_Close,0)==0) Alert("Îøèáêà çàïèñè ãëîáàëüíîé ïåðåìåííîé");
if(GlobalVariableSet(Global_Prof_flag,0)==0) Alert("Îøèáêà çàïèñè ãëîáàëüíîé ïåðåìåííîé");
return;
}
//---------------
//---ó÷åò îðäåðîâ
for(int i=1; i<=OrdersTotal(); i++)
{
if(OrderSelect(i-1,SELECT_BY_POS)==true)
{
if(OrderSymbol()!=Symb)continue;
if(OrderMagicNumber()==Mag_M)
{
Tick_Sl=OrderTicket();
}
if(OrderMagicNumber()!=Mag_N)continue;
Tick[Total] =OrderTicket();
Tip[Total] =OrderType();
Price[Total] =OrderOpenPrice();
Lot[Total] =OrderLots();
Ttime[Total] =OrderOpenTime();
Total++;
}
}
//---------------
if(Total==0 && Profit_Glob_All-Prof_flag>=0)
{
Prof_flag=0;
Profit_Glob_All=0;
if(GlobalVariableSet(Global_Prof_flag,Prof_flag)==0) Alert("Îøèáêà çàïèñè ãëîáàëüíîé ïåðåìåííîé");
}
//-----ïðîâåðêà íà îøèáêè ðàáîòû ýêñïåðòà
if(Work==false)
{
if(work_flag==0)
{
Alert("Êðèòè÷åñêàÿ îøèáêà. Ýêñïåðò íå ðàáîòàåò. ",Symb," ",work_msg);
work_flag=1;
if(GlobalVariableSet(Global_work_flag,work_flag)==0) Alert("Îøèáêà çàïèñè ãëîáàëüíîé ïåðåìåííîé");
ObjectCreate("work_msg",OBJ_LABEL,0,0,0);
ObjectSet("work_msg",OBJPROP_CORNER,0);
ObjectSet("work_msg",OBJPROP_XDISTANCE,10);
ObjectSet("work_msg",OBJPROP_YDISTANCE,10);
ObjectSetInteger(0,"work_msg",OBJPROP_BACK,false);
ObjectSetText("work_msg",work_msg,18,"Arial",clrWhiteSmoke);
}
return;
}
//--------------
//----------------------------------------------------------------------------------------------------
//---îðåäåëåíèå òî÷êè îòêðûòèÿ îðäåðîâ
RefreshRates();
double Fast_MA_0 = iMA(NULL,0,Fast_MA,0,MODE_EMA,PRICE_OPEN,0);
double Slow_MA_0 = iMA(NULL,0,Slow_MA,0,MODE_EMA,PRICE_OPEN,0);
if(Fast_MA_0 > Slow_MA_0)Opn_B=true;
if(Fast_MA_0 < Slow_MA_0)Opn_S=true;
//--------------
//---------îïðåäåëåíèå ëîòà êîíòðîðäåðà
Lot[Total]=round(100*((min_lot*TP*pt_cost+fabs(Profit_Glob_All))/(TP*pt_cost)))/100;
//---------------
Comment(StringFormat("Âûâîäèì äàííûå\nProfit_Glob_All = %0.2f\nProf_flag = %0.2f\nËîò = %0.2f\nTP = %0g\nÑò-òü ïò. = %0.2f",Profit_Glob_All-Prof_flag,Prof_flag,Lot[Total],TP,Lot[0]*MarketInfo(Symbol(),MODE_TICKVALUE)));
//---îïðåäåëåíèå òî÷êè âõîäà íà îòêðûòèå îáðàòíîãî îðäåðà
if(Total==1 && Tick_Sl==0)
{
if(Tip[0]==0 && Opn_S!=true
&& Bid<Price[0]-SL*Point)
{Opn_S=true;level_tp=true;}
if(Tip[0]==1 && Opn_B!=true
&& Ask>Price[0]+SL*Point)
{Opn_B=true;level_tp=true;}
}
//---------------
//---îòêðûòèå îáðàòíîãî îðäåðà
while(level_tp)//åñëè level_tp==true
{
RefreshRates();
if(Opn_B==true && Tip[Total-1]==1)
{
Alert("Ïîïûòêà îòêðûòü îáð. Buy ",Symb," - ",Lot[0],". Îæèäàíèå îòâåòà..");
Ticket=OrderSend(Symb,OP_BUY,Lot[0],Ask,2,0,0,NULL,Mag_M);
if(Ticket>0)
{
Alert("Îòêðûò îáð. îðäåð Buy ",Ticket," ,",Symb);
while(true)
{
bool res=OrderModify(Tick[Total-1],Price[Total-1],0,0,0,CLR_NONE);
if(res)
{
Alert("Îðäåð óñïåøíî ìîäèôèöèðîâàí ",Symb,".");
TP_flag=Price[Total-1]-TP*Point;
level_tp=false;
return;
}
if(Fun_Error(GetLastError())==1)continue;
Alert("Îøèáêà ìîäèôèêàöèè îðäåðà ",Symb,". Êîä îøèáêè=",GetLastError());
return;
}
}
if(Fun_Error(GetLastError())==1)continue;
Alert("Îøèáêà îòêð. îáð. Buy ",Symb," - ",Lot[0],"!!!");
return;
}
if(Opn_S==true && Tip[Total-1]==0)
{
Alert("Ïîïûòêà îòêðûòü îáð. Sell ",Symb," - ",Lot[0],". Îæèäàíèå îòâåòà..");
Ticket=OrderSend(Symb,OP_SELL,Lot[0],Bid,2,0,0,NULL,Mag_M);//Îòêðûòèå Sell
if(Ticket>0) // Ïîëó÷èëîñü :)
{
Alert("Îòêðûò îáð. îðäåð Sell ",Ticket," ,",Symb);
while(true)
{
bool res=OrderModify(Tick[Total-1],Price[Total-1],0,0,0,CLR_NONE);
if(res)
{
Alert("Îðäåð óñïåøíî ìîäèôèöèðîâàí ",Symb,".");
TP_flag=Price[Total-1]+TP*Point;
level_tp=false;
return;
}
if(Fun_Error(GetLastError())==1)continue;
Alert("Îøèáêà ìîäèôèêàöèè îðäåðà ",Symb,". Êîä îøèáêè=",GetLastError());
return;
}
}
if(Fun_Error(GetLastError())==1)continue;
Alert("Îøèáêà îòêð. îáð. Sell ",Symb," - ",Lot[0],"!!!");
return;
}
}
//---------------
//----------------------------------------------------------------------------------------
//---öèêë îòêðûòèÿ îðäåðîâ
while(true)
{
//---------îòêðûòèå íà÷àëüíîãî/êîíòð. îðäåðà
RefreshRates();
if(Opn_B==true)
{
if(Total==0) Alert("Ïîïûòêà îòêðûòü íà÷. Buy ",Symb,". Îæèäàíèå îòâåòà..");
else if(Tip[Total-1]==1 || (TP_flag!=0 && Tip[Total-1]==0 && Bid>=TP_flag)) Alert("Ïîïûòêà îòêðûòü êîíòð. Buy ",Symb,". Îæèäàíèå îòâåòà..");
else return;
Ticket=OrderSend(Symb,OP_BUY,Lot[Total],Ask,2,0,Ask+TP*Point,NULL,Mag_N);
if(Ticket>0)
{
if(Total==0)
{
Alert("Îòêðûò íà÷. îðäåð Buy ",Ticket," ,",Symb);
return;
}
else
{
Alert("Îòêðûò êîíòð. îðäåð Buy ",Ticket," ,",Symb);
if(Tick_Sl==0) flag=1; else flag=2;
// ord_op=Ask;ord_tp=AV/Point;
break;
}
}
if(Fun_Error(GetLastError())==1)
continue;
}
if(Opn_S==true)
{
if(Total==0) Alert("Ïîïûòêà íà÷. îòêðûòü Sell ",Symb,". Îæèäàíèå îòâåòà..");
else if(Tip[Total-1]==0 || (TP_flag!=0 && Tip[Total-1]==1 && Ask<=TP_flag)) Alert("Ïîïûòêà êîíòð. îòêðûòü Sell ",Symb,". Îæèäàíèå îòâåòà..");
else return;
Ticket=OrderSend(Symb,OP_SELL,Lot[Total],Bid,2,0,Bid-TP*Point,NULL,Mag_N);
if(Ticket>0)
{
if(Total==0)
{
Alert("Îòêðûò íà÷. îðäåð Sell ",Ticket," ,",Symb);
return;
}
else
{
Alert("Îòêðûò êîíòð. îðäåð Sell ",Ticket," ,",Symb);
if(Tick_Sl==0) flag=1; else flag=2;
break;
}
}
if(Fun_Error(GetLastError())==1)
continue;
}
//---
break;
}
//---------------
//---çàêðûòèå îðäåðîâ
while(true)
{
//---------------
if(flag==1)
{
for(int n=0;n<Total;n++)
{
while(true)
{
RefreshRates();
if(Tip[n]==0) Pr=Bid; else Pr=Ask;
Alert("Ïîïûòêà çàêðûòü ",Tick[n],". Îæèäàíèå îòâåòà..");
Ans=OrderClose(Tick[n],Lot[n],Pr,2);
if(Ans==true)
{
Alert("Çàêðûò îðäåð ",Tick[n]," ,",Symb);
if(OrderSelect(Tick[n],SELECT_BY_TICKET)==true)
{
Prof_flag += OrderProfit();
Prof_flag += OrderSwap();
Prof_flag += OrderCommission();
}
else Alert("OrderSelect() âåðíóë îøèáêó - ",GetLastError());
}
if(Fun_Error(GetLastError())==1)
continue;
break;
}
}
flag=0;
if(GlobalVariableSet(Global_Prof_flag,Prof_flag)==0) Alert("Îøèáêà çàïèñè ãëîáàëüíîé ïåðåìåííîé");
return;
}
if(flag==2)
{
RefreshRates();
Alert("Ïîïûòêà çàêðûòü ",Tick[0],". Îæèäàíèå îòâåòà..");
Ans=OrderCloseBy(Tick[0],Tick_Sl);
if(Ans==true)
{
Alert("Çàêðûò îðäåð ",Tick[0]," ,",Symb);
if(OrderSelect(Tick[0],SELECT_BY_TICKET)==true)
{
Prof_flag += OrderProfit();
Prof_flag += OrderSwap();
Prof_flag += OrderCommission();
}
else Alert("OrderSelect() âåðíóë îøèáêó - ",GetLastError());
if(OrderSelect(Tick_Sl,SELECT_BY_TICKET)==true)
{
Prof_flag += OrderProfit();
Prof_flag += OrderSwap();
Prof_flag += OrderCommission();
}
else Alert("OrderSelect() âåðíóë îøèáêó - ",GetLastError());
flag=0;TP_flag=0;
}
if(Fun_Error(GetLastError())==1)
continue;
if(GlobalVariableSet(Global_Prof_flag,Prof_flag)==0) Alert("Îøèáêà çàïèñè ãëîáàëüíîé ïåðåìåííîé");
return;
}
break;
}
//---------------
}
//+------------------------------------------------------------------+
int Fun_Error(int Error)
{
switch(Error)
{
case 4: Alert("Òîðãîâûé ñåðâåð çàíÿò. Ïðîáóåì åù¸ ðàç..");
Sleep(3000); // Ïðîñòîå ðåøåíèå
return(1); // Âûõîä èç ôóíêöèè
case 135:Alert("Öåíà èçìåíèëàñü. Ïðîáóåì åù¸ ðàç..");
RefreshRates(); // Îáíîâèì äàííûå
return(1); // Âûõîä èç ôóíêöèè
case 128:Alert("Ïðîáóåì åù¸ ðàç..");
RefreshRates(); // Îáíîâèì äàííûå
return(1); // Âûõîä èç ôóíêöèè
case 136:Alert("Íåò öåí. Æä¸ì íîâûé òèê..");
while(RefreshRates()==false) // Äî íîâîãî òèêà
Sleep(1); // Çàäåðæêà â öèêëå
return(1); // Âûõîä èç ôóíêöèè
case 137:Alert("Áðîêåð çàíÿò. Ïðîáóåì åù¸ ðàç..");
Sleep(3000); // Ïðîñòîå ðåøåíèå
return(1); // Âûõîä èç ôóíêöèè
case 138:Alert("Îáíîâèì öåíó. Ïðîáóåì åù¸ ðàç..");
RefreshRates(); // Îáíîâèì äàííûå
return(1); // Âûõîä èç ôóíêöèè
case 146:Alert("Ïîäñèñòåìà òîðãîâëè çàíÿòà. Ïðîáóåì åù¸..");
Sleep(500); // Ïðîñòîå ðåøåíèå
return(1); // Âûõîä èç ôóíêöèè
// Êðèòè÷åñêèå îøèáêè
case 9: Alert("Íåäîïóñòèìàÿ îïåðàöèÿ íàðóøàþùàÿ ôóíêöèîíèðîâàíèå ñåðâåðà.");
Work=false; // Áîëüøå íå ðàáîòàòü
work_msg="Íåäîïóñòèìàÿ îïåðàöèÿ íàðóøàþùàÿ ôóíêöèîíèðîâàíèå ñåðâåðà.";
return(0); // Âûõîä èç ôóíêöèè
case 148: Alert("Êîëè÷åñòâî îòêðûòûõ è îòëîæåííûõ îðäåðîâ äîñòèãëî ïðåäåëà, óñòàíîâëåííîãî áðîêåðîì.");
Work=false;
work_msg="Êîëè÷åñòâî îòêðûòûõ è îòëîæåííûõ îðäåðîâ äîñòèãëî ïðåäåëà, óñòàíîâëåííîãî áðîêåðîì.";
return(0);
case 149: Alert("Ïîïûòêà îòêðûòü ïðîòèâîïîëîæíóþ ïîçèöèþ ê óæå ñóùåñòâóþùåé â ñëó÷àå, åñëè õåäæèðîâàíèå çàïðåùåíî.");
Work=false;
work_msg="Ïîïûòêà îòêðûòü ïðîòèâîïîëîæíóþ ïîçèöèþ ê óæå ñóùåñòâóþùåé â ñëó÷àå, åñëè õåäæèðîâàíèå çàïðåùåíî.";
return(0);
case 150: Alert("Ïîïûòêà çàêðûòü ïîçèöèþ ïî èíñòðóìåíòó â ïðîòèâîðå÷èè ñ ïðàâèëîì FIFO");
Work=false;
work_msg="Ïîïûòêà çàêðûòü ïîçèöèþ ïî èíñòðóìåíòó â ïðîòèâîðå÷èè ñ ïðàâèëîì FIFO";
return(0);
case 2: Alert("Îáùàÿ îøèáêà.");
return(0); // Âûõîä èç ôóíêöèè
case 5: Alert("Ñòàðàÿ âåðñèÿ òåðìèíàëà.");
Work=false; // Áîëüøå íå ðàáîòàòü
work_msg="Ñòàðàÿ âåðñèÿ òåðìèíàëà.";
return(0); // Âûõîä èç ôóíêöèè
case 64: Alert("Ñ÷åò çàáëîêèðîâàí.");
Work=false; // Áîëüøå íå ðàáîòàòü
work_msg="Ñ÷åò çàáëîêèðîâàí.";
return(0); // Âûõîä èç ôóíêöèè
case 133:Alert("Òîðãîâëÿ çàïðåùåíà.");
Work=false; // Áîëüøå íå ðàáîòàòü
work_msg="Òîðãîâëÿ çàïðåùåíà.";
return(0); // Âûõîä èç ôóíêöèè
case 131:Alert("Lot áîëüøå ìàêñèñóìà.");
Work=false; // Áîëüøå íå ðàáîòàòü
work_msg="Lot áîëüøå ìàêñèñóìà.";
return(0); // Âûõîä èç ôóíêöèè
case 134:Alert("Íåäîñòàòî÷íî äåíåã äëÿ ñîâåðøåíèÿ îïåðàöèè.");
Work=false; // Áîëüøå íå ðàáîòàòü
work_msg="Íåäîñòàòî÷íî äåíåã äëÿ ñîâåðøåíèÿ îïåðàöèè.";
return(0); // Âûõîä èç ôóíêöèè
case 0:return(0); // Âûõîä èç ôóíêöèè
default: Alert("Âîçíèêëà îøèáêà ",Error); // Äðóãèå âàðèàíòû
return(0); // Âûõîä èç ôóíêöèè
}
}
//+------------------------------------------------------------------+
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
---