Orders Execution
Miscellaneous
0
Views
0
Downloads
0
Favorites
Urdala_Helper
//+------------------------------------------------------------------+
//| Urdala_Helper.mq4 |
//| Ñåðãåé (urdala) Ðàøåâñêèé |
//| urdala@mail.ru |
//+------------------------------------------------------------------+
#property copyright "Ñåðãåé (urdala) Ðàøåâñêèé"
#property link "urdala@mail.ru"
#property show_inputs
extern double Lot=0.01;
extern color Menucol=Black;
datetime X1,X2,X,XOP,XTP;
double Y1,Y2;
int deinit()
{
DelAll();
}
//--------------------------------------------------------------------
int start()
{
X1=WindowTimeOnDropped();
int delta=WindowBarsPerChart()*0.18;
if (iBarShift(Symbol(),0,X1)<delta) X1=Time[delta];
X2=Time[iBarShift(Symbol(),0,X1)-delta];
delta=(iBarShift(Symbol(),0,X1)+iBarShift(Symbol(),0,X2))/2;
X=Time[delta];
delta=WindowBarsPerChart()*0.03;
XOP=Time[iBarShift(Symbol(),0,X)-delta];
XTP=Time[iBarShift(Symbol(),0,X)+delta];
Y1=WindowPriceOnDropped();
Y2=Y1-(WindowPriceMax()-WindowPriceMin())*0.3;
int Klick,Ticket,OrdTot;
double OP,TP,SL,Price,Profit;
bool Oper;
//--------------------------------------------------------------------
WindowRedraw();
DelAll();
Menu1();
WindowRedraw();
for (int i=1; i<3000;i++)
{
if (ObjectGet("Open",OBJPROP_TIME1)!=X){Klick=1;DelAll();break;}
if (ObjectGet("Close",OBJPROP_TIME1)!=X){Klick=2;DelAll();break;}
if (ObjectGet("Modify",OBJPROP_TIME1)!=X){Klick=3;DelAll();break;}
if (ObjectGet("Exit",OBJPROP_TIME1)!=X){Klick=4;DelAll();break;}
Sleep(100);
}
if (Klick==1)
{
Klick=0;
Menu2();
WindowRedraw();
for (i=1; i<3000;i++)
{
if (ObjectGet("Market",OBJPROP_TIME1)!=X){Klick=1;DelAll();break;}
if (ObjectGet("Pending",OBJPROP_TIME1)!=X){Klick=2;DelAll();break;}
if (ObjectGet("Exit",OBJPROP_TIME1)!=X){Klick=4;DelAll();break;}
Sleep(100);
}
if (Klick==1)
{
Ticket=-1;
Klick=0;
DelAll();
Menu3();
WindowRedraw();
for (i=1; i<3000;i++)
{
if (ObjectGet("Buy",OBJPROP_TIME1)!=X){Klick=1;break;}
if (ObjectGet("Sell",OBJPROP_TIME1)!=X){Klick=2;break;}
if (ObjectGet("Exit",OBJPROP_TIME1)!=X){Klick=4;DelAll();break;}
Sleep(100);
}
if (Klick==1)Ticket=OpenOrder(Symbol(),0,Lot,Ask,0,0,"Urdala_Helper",0);
if (Klick==2)Ticket=OpenOrder(Symbol(),1,Lot,Bid,0,0,"Urdala_Helper",0);
if (Ticket>=0 && (ObjectGet("TP",OBJPROP_PRICE1)!=Y(50) || ObjectGet("SL",OBJPROP_PRICE1)!=Y(50)))
{
OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES);
TP=OrderTakeProfit();
SL=OrderStopLoss();
if (ObjectGet("TP",OBJPROP_PRICE1)!=Y(50))TP=ObjectGet("TP",OBJPROP_PRICE1);
if (ObjectGet("SL",OBJPROP_PRICE1)!=Y(50))SL=ObjectGet("SL",OBJPROP_PRICE1);
ModifyOrder(Ticket,OrderOpenPrice(),SL,TP);
}
DelAll();
return(0);
}
if (Klick==2)
{
Ticket=-1;
Klick=0;
DelAll();
Menu4();
WindowRedraw();
for (i=1; i<3000;i++)
{
if (ObjectGet("Stop",OBJPROP_TIME1)!=X){Klick=1;break;}
if (ObjectGet("Limit",OBJPROP_TIME1)!=X){Klick=2;break;}
if (ObjectGet("Exit",OBJPROP_TIME1)!=X){Klick=4;DelAll();break;}
Sleep(100);
}
if (Klick==1)
{
if (ObjectGet("OP",OBJPROP_PRICE1)>Bid && ObjectGet("OP",OBJPROP_PRICE1)!=Y(50))Ticket=OpenOrder(Symbol(),4,Lot,ObjectGet("OP",OBJPROP_PRICE1),0,0,"Urdala_Helper",0);
if (ObjectGet("OP",OBJPROP_PRICE1)<Bid && ObjectGet("OP",OBJPROP_PRICE1)!=Y(50))Ticket=OpenOrder(Symbol(),5,Lot,ObjectGet("OP",OBJPROP_PRICE1),0,0,"Urdala_Helper",0);
}
if (Klick==2)
{
if (ObjectGet("OP",OBJPROP_PRICE1)>Bid && ObjectGet("OP",OBJPROP_PRICE1)!=Y(50))Ticket=OpenOrder(Symbol(),3,Lot,ObjectGet("OP",OBJPROP_PRICE1),0,0,"Urdala_Helper",0);
if (ObjectGet("OP",OBJPROP_PRICE1)<Bid && ObjectGet("OP",OBJPROP_PRICE1)!=Y(50))Ticket=OpenOrder(Symbol(),2,Lot,ObjectGet("OP",OBJPROP_PRICE1),0,0,"Urdala_Helper",0);
}
if (Ticket>=0 && (ObjectGet("TP",OBJPROP_PRICE1)!=Y(50) || ObjectGet("SL",OBJPROP_PRICE1)!=Y(50)))
{
OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES);
TP=OrderTakeProfit();
SL=OrderStopLoss();
if (ObjectGet("TP",OBJPROP_PRICE1)!=Y(50))TP=ObjectGet("TP",OBJPROP_PRICE1);
if (ObjectGet("SL",OBJPROP_PRICE1)!=Y(50))SL=ObjectGet("SL",OBJPROP_PRICE1);
ModifyOrder(Ticket,OrderOpenPrice(),SL,TP);
}
DelAll();
return(0);
}
DelAll();
return(0);
}
if (Klick==2)
{
Klick=0;
DelAll();
Menu5();
WindowRedraw();
for (i=1; i<3000;i++)
{
if (ObjectGet("One",OBJPROP_TIME1)!=X){Klick=1;break;}
if (ObjectGet("Group",OBJPROP_TIME1)!=X){Klick=2;break;}
if (ObjectGet("Pending",OBJPROP_TIME1)!=X){Klick=3;break;}
if (ObjectGet("Exit",OBJPROP_TIME1)!=X){Klick=4;DelAll();break;}
Sleep(100);
}
if (Klick==1)
{
Klick=0;
DelAll();
Menu6();
WindowRedraw();
for (i=1; i<3000;i++)
{
if (ObjectGet("Close",OBJPROP_TIME1)!=X){Klick=1;break;}
if (ObjectGet("Exit",OBJPROP_TIME1)!=X){Klick=4;DelAll();break;}
if (ObjectGet("OP",OBJPROP_PRICE1)!=Y(50))
{
Price=NormalizeDouble(ObjectGet("OP",OBJPROP_PRICE1),Digits);
Ticket=TicketOP(Price);
if (Ticket==0)
{
Alert("Îðäåð íå íàéäåí");
DelAll();
return(0);
}
OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES);
ObjectMove("OP",0,Time[0],OrderOpenPrice());
WindowRedraw();
}
Sleep(100);
}
if (ObjectGet("OP",OBJPROP_PRICE1)!=Y(50))
{
Oper=false;
Price=NormalizeDouble(ObjectGet("OP",OBJPROP_PRICE1),Digits);
OrderSelect(TicketOP(Price),SELECT_BY_TICKET,MODE_TRADES);
if (OrderType()==0){CloseOrder(OrderTicket(),OrderLots(),Bid);Oper=true;}
if (OrderType()==1){CloseOrder(OrderTicket(),OrderLots(),Ask);Oper=true;}
if (OrderType()>1){OrderDelete(OrderTicket());Oper=true;}
if (Oper==false)Alert("Îðäåð íå íàéäåí.");
}
DelAll();
return(0);
}
if (Klick==2)
{
Klick=0;
DelAll();
Menu7();
WindowRedraw();
for (i=1; i<3000;i++)
{
if (ObjectGet("Buy",OBJPROP_TIME1)!=X){Klick=1;break;}
if (ObjectGet("Sell",OBJPROP_TIME1)!=X){Klick=2;break;}
if (ObjectGet("All",OBJPROP_TIME1)!=X){Klick=3;break;}
if (ObjectGet("Exit",OBJPROP_TIME1)!=X){Klick=4;DelAll();break;}
Sleep(100);
}
if (Klick==1)
{
for (i=0; i<OrdersTotal(); i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol()==Symbol() && OrderType()==0){CloseOrder(OrderTicket(),OrderLots(),Bid);i--;}
}
DelAll();
return(0);
}
if (Klick==2)
{
for (i=0; i<OrdersTotal(); i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol()==Symbol() && OrderType()==1){CloseOrder(OrderTicket(),OrderLots(),Ask);i--;}
}
DelAll();
return(0);
}
if (Klick==3)
{
for (i=0; i<OrdersTotal(); i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol()==Symbol() && OrderType()==0){CloseOrder(OrderTicket(),OrderLots(),Bid);i--;}
if (OrderSymbol()==Symbol() && OrderType()==1){CloseOrder(OrderTicket(),OrderLots(),Ask);i--;}
if (OrderSymbol()==Symbol() && OrderType()>1){OrderDelete(OrderTicket());i--;}
}
DelAll();
return(0);
}
}
if (Klick==3)
{
for (i=0; i<OrdersTotal(); i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol()==Symbol() && OrderType()>1){OrderDelete(OrderTicket());i--;}
}
DelAll();
return(0);
}
DelAll();
return(0);
}
if (Klick==3)
{
Klick=0;
DelAll();
Menu8();
WindowRedraw();
for (i=1; i<3000;i++)
{
if (ObjectGet("One",OBJPROP_TIME1)!=X){Klick=1;break;}
if (ObjectGet("Group",OBJPROP_TIME1)!=X){Klick=2;break;}
if (ObjectGet("Exit",OBJPROP_TIME1)!=X){Klick=4;DelAll();break;}
Sleep(100);
}
if (Klick==1)
{
Klick=0;
DelAll();
Menu9();
WindowRedraw();
for (i=1; i<3000;i++)
{
if (ObjectGet("Modify",OBJPROP_TIME1)!=X){Klick=1;break;}
if (ObjectGet("Exit",OBJPROP_TIME1)!=X){Klick=4;DelAll();break;}
if (ObjectGet("OP",OBJPROP_PRICE1)!=Y(50))
{
Price=NormalizeDouble(ObjectGet("OP",OBJPROP_PRICE1),Digits);
Ticket=TicketOP(Price);
if (Ticket==0)
{
Alert("Îðäåð íå íàéäåí");
DelAll();
return(0);
}
OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES);
ObjectMove("OP",0,Time[0],OrderOpenPrice());
WindowRedraw();
}
Sleep(100);
}
if (Klick==1 && (ObjectGet("TP",OBJPROP_PRICE1)!=Y(50) || ObjectGet("SL",OBJPROP_PRICE1)!=Y(50)))
{
TP=OrderTakeProfit();SL=OrderStopLoss();
if (ObjectGet("TP",OBJPROP_PRICE1)!=Y(50))TP=ObjectGet("TP",OBJPROP_PRICE1);
if (ObjectGet("SL",OBJPROP_PRICE1)!=Y(50))SL=ObjectGet("SL",OBJPROP_PRICE1);
ModifyOrder(OrderTicket(),OrderOpenPrice(),SL,TP);
}
DelAll();
return(0);
}
if (Klick==2)
{
Klick=0;
DelAll();
Menu7();
WindowRedraw();
for (i=1; i<3000;i++)
{
if (ObjectGet("Buy",OBJPROP_TIME1)!=X){Klick=1;break;}
if (ObjectGet("Sell",OBJPROP_TIME1)!=X){Klick=2;break;}
if (ObjectGet("All",OBJPROP_TIME1)!=X){Klick=3;break;}
if (ObjectGet("Exit",OBJPROP_TIME1)!=X){Klick=4;DelAll();break;}
Sleep(100);
}
if (Klick==1)
{
Klick=0;
DelAll();
Menu10();
BU(1);
WindowRedraw();
for (i=1; i<3000;i++)
{
if (ObjectGet("Modify",OBJPROP_TIME1)!=X){Klick=1;break;}
if (ObjectGet("Exit",OBJPROP_TIME1)!=X){Klick=4;DelAll();break;}
Sleep(100);
}
if (Klick==1 && ObjectGet("TP",OBJPROP_PRICE1)!=Y(50))
{
Profit=NormalizeDouble(ObjectGet("TP",OBJPROP_PRICE1),Digits);
for (i=0; i<OrdersTotal(); i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol()==Symbol())
{
if (OrderType()==0)
{
if (Bid<Profit)ModifyOrder(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),Profit);
if (Bid>Profit)ModifyOrder(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Profit-MarketInfo(Symbol(),MODE_SPREAD)*Point,Digits),OrderStopLoss());
}
}
}
DelAll();
return(0);
}
DelAll();
return(0);
}
if (Klick==2)
{
Klick=0;
DelAll();
Menu10();
BU(2);
WindowRedraw();
for (i=1; i<3000;i++)
{
if (ObjectGet("Modify",OBJPROP_TIME1)!=X){Klick=1;break;}
if (ObjectGet("Exit",OBJPROP_TIME1)!=X){Klick=4;DelAll();break;}
Sleep(100);
}
if (Klick==1 && ObjectGet("TP",OBJPROP_PRICE1)!=Y(50))
{
Profit=NormalizeDouble(ObjectGet("TP",OBJPROP_PRICE1),Digits);
for (i=0; i<OrdersTotal(); i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol()==Symbol())
{
if (OrderType()==1)
{
if (Bid>Profit)ModifyOrder(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),Profit);
if (Bid<Profit)ModifyOrder(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Profit+MarketInfo(Symbol(),MODE_SPREAD)*Point,Digits),OrderStopLoss());
}
}
}
DelAll();
return(0);
}
DelAll();
return(0);
}
if (Klick==3)
{
Klick=0;
DelAll();
Menu10();
BU(3);
WindowRedraw();
for (i=1; i<3000;i++)
{
if (ObjectGet("Modify",OBJPROP_TIME1)!=X){Klick=1;break;}
if (ObjectGet("Exit",OBJPROP_TIME1)!=X){Klick=4;DelAll();break;}
Sleep(100);
}
if (Klick==1 && ObjectGet("TP",OBJPROP_PRICE1)!=Y(50))
{
Profit=NormalizeDouble(ObjectGet("TP",OBJPROP_PRICE1),Digits);
for (i=0; i<OrdersTotal(); i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol()==Symbol())
{
if (OrderType()==0)
{
if (Bid<Profit)ModifyOrder(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),Profit);
if (Bid>Profit)ModifyOrder(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Profit-MarketInfo(Symbol(),MODE_SPREAD)*Point,Digits),OrderStopLoss());
}
if (OrderType()==1)
{
if (Bid>Profit)ModifyOrder(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),Profit);
if (Bid<Profit)ModifyOrder(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Profit+MarketInfo(Symbol(),MODE_SPREAD)*Point,Digits),OrderStopLoss());
}
}
}
DelAll();
return(0);
}
DelAll();
return(0);
}
DelAll();
return(0);
}
}
//DelAll();
return(0);
}
//--------------------------------------------------------------------
// Ôóíêöèè
//--------------------------------------------------------------------
double Y(int H)
{
double ykoord=Y1-(Y1-Y2)*H/100;
return (ykoord);
}
//--------------------------------------------------------------------
void Menu1()
{
Rect();
ObjectCreate("Open",OBJ_TEXT,0,X,Y(5));
ObjectSetText("Open","Îòêðûòèå",16,"Times New Roman",Menucol);
ObjectCreate("Close",OBJ_TEXT,0,X,Y(25));
ObjectSetText("Close","Çàêðûòèå",16,"Times New Roman",Menucol);
ObjectCreate("Modify",OBJ_TEXT,0,X,Y(45));
ObjectSetText("Modify","Ìîäèôèêàöèÿ",16,"Times New Roman",Menucol);
ObjectCreate("Line",OBJ_TEXT,0,X,Y(60));
ObjectSetText("Line","---------------------",16,"Times New Roman",Menucol);
ObjectCreate("Exit",OBJ_TEXT,0,X,Y(75));
ObjectSetText("Exit","Âûõîä",16,"Times New Roman",Menucol);
}
//---------------------------------------------------------------------
void Menu2()
{
Rect();
ObjectCreate("Market",OBJ_TEXT,0,X,Y(5));
ObjectSetText("Market","Ðûíî÷íûé",16,"Times New Roman",Menucol);
ObjectCreate("Pending",OBJ_TEXT,0,X,Y(25));
ObjectSetText("Pending","Îòëîæåííûé",16,"Times New Roman",Menucol);
ObjectCreate("Line",OBJ_TEXT,0,X,Y(60));
ObjectSetText("Line","---------------------",16,"Times New Roman",Menucol);
ObjectCreate("Exit",OBJ_TEXT,0,X,Y(75));
ObjectSetText("Exit","Âûõîä",16,"Times New Roman",Menucol);
}
//---------------------------------------------------------------------
void Menu3()
{
Rect();
ObjectCreate("Buy",OBJ_TEXT,0,X,Y(5));
ObjectSetText("Buy","Buy",16,"Times New Roman",Menucol);
ObjectCreate("Sell",OBJ_TEXT,0,X,Y(25));
ObjectSetText("Sell","Sell",16,"Times New Roman",Menucol);
ObjectCreate("TP",OBJ_ARROW,0,XTP,Y(50));
ObjectSet("TP",OBJPROP_ARROWCODE,5);
ObjectSet("TP",OBJPROP_COLOR,Green);
ObjectCreate("SL",OBJ_ARROW,0,X2-Period()*60,Y(50));
ObjectSet("SL",OBJPROP_ARROWCODE,5);
ObjectSet("SL",OBJPROP_COLOR,Red);
ObjectCreate("Line",OBJ_TEXT,0,X,Y(60));
ObjectSetText("Line","---------------------",16,"Times New Roman",Menucol);
ObjectCreate("Exit",OBJ_TEXT,0,X,Y(75));
ObjectSetText("Exit","Âûõîä",16,"Times New Roman",Menucol);
}
//---------------------------------------------------------------------
void Menu4()
{
Rect();
ObjectCreate("Stop",OBJ_TEXT,0,X,Y(5));
ObjectSetText("Stop","Stop",16,"Times New Roman",Menucol);
ObjectCreate("Limit",OBJ_TEXT,0,X,Y(25));
ObjectSetText("Limit","Limit",16,"Times New Roman",Menucol);
ObjectCreate("OP",OBJ_ARROW,0,XOP,Y(50));
ObjectSet("OP",OBJPROP_ARROWCODE,5);
ObjectSet("OP",OBJPROP_COLOR,Menucol);
ObjectCreate("TP",OBJ_ARROW,0,XTP,Y(50));
ObjectSet("TP",OBJPROP_ARROWCODE,5);
ObjectSet("TP",OBJPROP_COLOR,Green);
ObjectCreate("SL",OBJ_ARROW,0,X2,Y(50));
ObjectSet("SL",OBJPROP_ARROWCODE,5);
ObjectSet("SL",OBJPROP_COLOR,Red);
ObjectCreate("Line",OBJ_TEXT,0,X,Y(60));
ObjectSetText("Line","---------------------",16,"Times New Roman",Menucol);
ObjectCreate("Exit",OBJ_TEXT,0,X,Y(75));
ObjectSetText("Exit","Âûõîä",16,"Times New Roman",Menucol);
}
//---------------------------------------------------------------------
void Menu5()
{
Rect();
ObjectCreate("One",OBJ_TEXT,0,X,Y(5));
ObjectSetText("One","Îäèí",16,"Times New Roman",Menucol);
ObjectCreate("Group",OBJ_TEXT,0,X,Y(25));
ObjectSetText("Group","Ãðóïïà",16,"Times New Roman",Menucol);
ObjectCreate("Pending",OBJ_TEXT,0,X,Y(45));
ObjectSetText("Pending","Îòëîæåííûå",16,"Times New Roman",Menucol);
ObjectCreate("Line",OBJ_TEXT,0,X,Y(60));
ObjectSetText("Line","---------------------",16,"Times New Roman",Menucol);
ObjectCreate("Exit",OBJ_TEXT,0,X,Y(75));
ObjectSetText("Exit","Âûõîä",16,"Times New Roman",Menucol);
}
//---------------------------------------------------------------------
void Menu6()
{
Rect();
ObjectCreate("Close",OBJ_TEXT,0,X,Y(5));
ObjectSetText("Close","Çàêðûòü",16,"Times New Roman",Menucol);
ObjectCreate("OP",OBJ_ARROW,0,XOP,Y(50));
ObjectSet("OP",OBJPROP_ARROWCODE,5);
ObjectSet("OP",OBJPROP_COLOR,Menucol);
ObjectCreate("Line",OBJ_TEXT,0,X,Y(60));
ObjectSetText("Line","---------------------",16,"Times New Roman",Menucol);
ObjectCreate("Exit",OBJ_TEXT,0,X,Y(75));
ObjectSetText("Exit","Âûõîä",16,"Times New Roman",Menucol);
}
//---------------------------------------------------------------------
void Menu7()
{
Rect();
ObjectCreate("Buy",OBJ_TEXT,0,X,Y(5));
ObjectSetText("Buy","Buy",16,"Times New Roman",Menucol);
ObjectCreate("Sell",OBJ_TEXT,0,X,Y(25));
ObjectSetText("Sell","Sell",16,"Times New Roman",Menucol);
ObjectCreate("All",OBJ_TEXT,0,X,Y(45));
ObjectSetText("All","Âñå",16,"Times New Roman",Menucol);
ObjectCreate("Line",OBJ_TEXT,0,X,Y(60));
ObjectSetText("Line","---------------------",16,"Times New Roman",Menucol);
ObjectCreate("Exit",OBJ_TEXT,0,X,Y(75));
ObjectSetText("Exit","Âûõîä",16,"Times New Roman",Menucol);
}
//---------------------------------------------------------------------
void Menu8()
{
Rect();
ObjectCreate("One",OBJ_TEXT,0,X,Y(5));
ObjectSetText("One","Îäèí",16,"Times New Roman",Menucol);
ObjectCreate("Group",OBJ_TEXT,0,X,Y(25));
ObjectSetText("Group","Ãðóïïà",16,"Times New Roman",Menucol);
ObjectCreate("Line",OBJ_TEXT,0,X,Y(60));
ObjectSetText("Line","---------------------",16,"Times New Roman",Menucol);
ObjectCreate("Exit",OBJ_TEXT,0,X,Y(75));
ObjectSetText("Exit","Âûõîä",16,"Times New Roman",Menucol);
}
//---------------------------------------------------------------------
void Menu9()
{
Rect();
ObjectCreate("Modify",OBJ_TEXT,0,X,Y(5));
ObjectSetText("Modify","Ìîäèôèêàöèÿ",16,"Times New Roman",Menucol);
ObjectCreate("OP",OBJ_ARROW,0,XOP,Y(50));
ObjectSet("OP",OBJPROP_ARROWCODE,5);
ObjectSet("OP",OBJPROP_COLOR,Menucol);
ObjectCreate("TP",OBJ_ARROW,0,XTP,Y(50));
ObjectSet("TP",OBJPROP_ARROWCODE,5);
ObjectSet("TP",OBJPROP_COLOR,Green);
ObjectCreate("SL",OBJ_ARROW,0,X2,Y(50));
ObjectSet("SL",OBJPROP_ARROWCODE,5);
ObjectSet("SL",OBJPROP_COLOR,Red);
ObjectCreate("Line",OBJ_TEXT,0,X,Y(60));
ObjectSetText("Line","---------------------",16,"Times New Roman",Menucol);
ObjectCreate("Exit",OBJ_TEXT,0,X,Y(75));
ObjectSetText("Exit","Âûõîä",16,"Times New Roman",Menucol);
}
//---------------------------------------------------------------------
void Menu10()
{
Rect();
ObjectCreate("Modify",OBJ_TEXT,0,X,Y(5));
ObjectSetText("Modify","Ìîäèôèêàöèÿ",16,"Times New Roman",Menucol);
ObjectCreate("TP",OBJ_ARROW,0,XOP,Y(50));
ObjectSet("TP",OBJPROP_ARROWCODE,5);
ObjectSet("TP",OBJPROP_COLOR,Green);
ObjectCreate("Line",OBJ_TEXT,0,X,Y(60));
ObjectSetText("Line","---------------------",16,"Times New Roman",Menucol);
ObjectCreate("Exit",OBJ_TEXT,0,X,Y(75));
ObjectSetText("Exit","Âûõîä",16,"Times New Roman",Menucol);
}
//---------------------------------------------------------------------
void Rect()
{
ObjectCreate("Rect1",OBJ_TREND,0,X1,Y1,X2,Y1);
ObjectSet("Rect1",OBJPROP_COLOR,Menucol);
ObjectSet("Rect1",OBJPROP_WIDTH,4);
ObjectSet("Rect1",OBJPROP_BACK,false);
ObjectSet("Rect1",OBJPROP_RAY,false);
ObjectCreate("Rect2",OBJ_TREND,0,X1,Y2,X2,Y2);
ObjectSet("Rect2",OBJPROP_COLOR,Menucol);
ObjectSet("Rect2",OBJPROP_WIDTH,4);
ObjectSet("Rect2",OBJPROP_BACK,false);
ObjectSet("Rect2",OBJPROP_RAY,false);
ObjectCreate("Rect3",OBJ_TREND,0,X1,Y1,X1,Y2);
ObjectSet("Rect3",OBJPROP_COLOR,Menucol);
ObjectSet("Rect3",OBJPROP_WIDTH,4);
ObjectSet("Rect3",OBJPROP_BACK,false);
ObjectSet("Rect3",OBJPROP_RAY,false);
ObjectCreate("Rect4",OBJ_TREND,0,X2,Y1,X2,Y2);
ObjectSet("Rect4",OBJPROP_COLOR,Menucol);
ObjectSet("Rect4",OBJPROP_WIDTH,4);
ObjectSet("Rect4",OBJPROP_BACK,false);
ObjectSet("Rect4",OBJPROP_RAY,false);
}
//---------------------------------------------------------------------
void BU(int mode)
{
double Lots,Summ,bu;
for (int i=0; i<OrdersTotal(); i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol()==Symbol() && OrderType()==0 && (mode==1 || mode==3)){Lots=Lots+OrderLots();Summ=Summ+OrderLots()*OrderOpenPrice();}
if (OrderSymbol()==Symbol() && OrderType()==1 && (mode==2 || mode==3)){Lots=Lots-OrderLots();Summ=Summ-OrderLots()*OrderOpenPrice();}
}
if (Lots==0)return(0);
bu=Summ/Lots;
ObjectCreate("Óðîâåíü áåçóáûòêà îðäåðîâ",OBJ_ARROW,0,Time[0],bu);
ObjectSet("Óðîâåíü áåçóáûòêà îðäåðîâ",OBJPROP_ARROWCODE,6);
ObjectSet("Óðîâåíü áåçóáûòêà îðäåðîâ",OBJPROP_COLOR,Menucol);
}
//---------------------------------------------------------------------
void DelAll()
{
if (ObjectFind("Rect1")==0)
{
while(!IsStopped())
{
ObjectDelete("Rect1");
if (ObjectFind("Rect1")<0)break;
}
}
if (ObjectFind("Rect2")==0)
{
while(!IsStopped())
{
ObjectDelete("Rect2");
if (ObjectFind("Rect2")<0)break;
}
}
if (ObjectFind("Rect3")==0)
{
while(!IsStopped())
{
ObjectDelete("Rect3");
if (ObjectFind("Rect3")<0)break;
}
}
if (ObjectFind("Rect4")==0)
{
while(!IsStopped())
{
ObjectDelete("Rect4");
if (ObjectFind("Rect4")<0)break;
}
}
if (ObjectFind("Open")==0)
{
while(!IsStopped())
{
ObjectDelete("Open");
if (ObjectFind("Open")<0)break;
}
}
if (ObjectFind("Close")==0)
{
while(!IsStopped())
{
ObjectDelete("Close");
if (ObjectFind("Close")<0)break;
}
}
if (ObjectFind("Modify")==0)
{
while(!IsStopped())
{
ObjectDelete("Modify");
if (ObjectFind("Modify")<0)break;
}
}
if (ObjectFind("Line")==0)
{
while(!IsStopped())
{
ObjectDelete("Line");
if (ObjectFind("Line")<0)break;
}
}
if (ObjectFind("Exit")==0)
{
while(!IsStopped())
{
ObjectDelete("Exit");
if (ObjectFind("Exit")<0)break;
}
}
if (ObjectFind("Market")==0)
{
while(!IsStopped())
{
ObjectDelete("Market");
if (ObjectFind("Market")<0)break;
}
}
if (ObjectFind("Pending")==0)
{
while(!IsStopped())
{
ObjectDelete("Pending");
if (ObjectFind("Pending")<0)break;
}
}
if (ObjectFind("Buy")==0)
{
while(!IsStopped())
{
ObjectDelete("Buy");
if (ObjectFind("Buy")<0)break;
}
}
if (ObjectFind("Sell")==0)
{
while(!IsStopped())
{
ObjectDelete("Sell");
if (ObjectFind("Sell")<0)break;
}
}
if (ObjectFind("TP")==0)
{
while(!IsStopped())
{
ObjectDelete("TP");
if (ObjectFind("TP")<0)break;
}
}
if (ObjectFind("SL")==0)
{
while(!IsStopped())
{
ObjectDelete("SL");
if (ObjectFind("SL")<0)break;
}
}
if (ObjectFind("OP")==0)
{
while(!IsStopped())
{
ObjectDelete("OP");
if (ObjectFind("OP")<0)break;
}
}
if (ObjectFind("Stop")==0)
{
while(!IsStopped())
{
ObjectDelete("Stop");
if (ObjectFind("Stop")<0)break;
}
}
if (ObjectFind("Limit")==0)
{
while(!IsStopped())
{
ObjectDelete("Limit");
if (ObjectFind("Limit")<0)break;
}
}
if (ObjectFind("One")==0)
{
while(!IsStopped())
{
ObjectDelete("One");
if (ObjectFind("One")<0)break;
}
}
if (ObjectFind("Group")==0)
{
while(!IsStopped())
{
ObjectDelete("Group");
if (ObjectFind("Group")<0)break;
}
}
if (ObjectFind("All")==0)
{
while(!IsStopped())
{
ObjectDelete("All");
if (ObjectFind("All")<0)break;
}
}
if (ObjectFind("Óðîâåíü áåçóáûòêà îðäåðîâ")==0)
{
while(!IsStopped())
{
ObjectDelete("Óðîâåíü áåçóáûòêà îðäåðîâ");
if (ObjectFind("Óðîâåíü áåçóáûòêà îðäåðîâ")<0)break;
}
}
}
//----------------------------------------------------------------------------
int TicketOP( double op)
{
int ticket;
double rast=10000000;
for (int i=0; i<OrdersTotal(); i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol()==Symbol() && MathAbs(OrderOpenPrice()-op)<rast)
{
rast=MathAbs(OrderOpenPrice()-op);
ticket=OrderTicket();
}
}
return(ticket);
}
//----------------------------------------------------------------------------
int OpenOrder(string symbol,int cmd,double volume,double price,double stoploss,double takeprofit,string comment,int magic)
{
int err,i,ticket;
while(i<3)
{
RefreshRates();
if (cmd==0)ticket=OrderSend(symbol,cmd,volume,NormalizeDouble(Ask,Digits),3,NormalizeDouble(stoploss,Digits),NormalizeDouble(takeprofit,Digits),comment,magic);
if (cmd==1)ticket=OrderSend(symbol,cmd,volume,NormalizeDouble(Bid,Digits),3,NormalizeDouble(stoploss,Digits),NormalizeDouble(takeprofit,Digits),comment,magic);
if (cmd>1)ticket=OrderSend(symbol,cmd,volume,NormalizeDouble(price,Digits),3,NormalizeDouble(stoploss,Digits),NormalizeDouble(takeprofit,Digits),comment,magic);
err = GetLastError();
if (err == 0) break;
Alert("Urdala_Helper (",Symbol(),") ",Error(err)," ïðè îòêðûòèè îðäåðà");
Sleep(1000);
i++;
}
return(ticket);
}
//----------------------------------------------------------------------------
int CloseOrder(int ticket, double lots, double price)
{
int err,i;
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
while(i<3)
{
RefreshRates();
if (OrderType()==0)OrderClose(ticket,lots,NormalizeDouble(Bid,Digits),3);
if (OrderType()==1)OrderClose(ticket,lots,NormalizeDouble(Ask,Digits),3);
if (OrderType()>1)OrderClose(ticket,lots,NormalizeDouble(price,Digits),3);
err = GetLastError();
if (err == 0) break;
Alert("Urdala_Helper (",Symbol(),") ",Error(err)," ïðè çàêðûòèè îðäåðà");
Sleep(1000);
i++;
}
return(0);
}
//----------------------------------------------------------------------------
int ModifyOrder(int ticket,double price,double stoploss,double takeprofit)
{
int err,i;
while(i<3)
{
RefreshRates();
OrderModify(ticket,NormalizeDouble(price,Digits),NormalizeDouble(stoploss,Digits),NormalizeDouble(takeprofit,Digits),0,CLR_NONE);
err = GetLastError();
if (err == 0) break;
Alert("Urdala_Helper (",Symbol(),") ",Error(err)," ïðè ìîäèôèêàöèè îðäåðà");
Sleep(1000);
i++;
}
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
---