Orders Execution
2
Views
0
Downloads
0
Favorites
cm-Trade_Info
//+------------------------------------------------------------------+
//| Copyright 2014, cmillion@narod.ru |
//| http://cmillion.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, cmillion@narod.ru"
#property link "http://cmillion.ru"
#property version "1.00"
#property indicator_chart_window
#property strict
#property description "Èíäèêàòîð ïîìîãàåò óâèäåòü ðåçóëüòàòû òîðãîâëè"
input color Color1 = clrBlack; // öâåò
input color Color2 = clrWhite; // öâåò
input color Color3 = clrBlue; // öâåò
input color Color4 = clrRed; // öâåò
input color Color5 = clrGreen; // öâåò
input color Color6 = clrLemonChiffon; // öâåò
input color Color7 = clrLightGray; // öâåò
input color Color8 = clrSnow; // öâåò
input color Color9 = clrGray; // öâåò
string Font = "Times New Roman"; // Øðèôò
int Width = 10; // ðàçìåð
long X=30;
long Y=30;
string InpName="cm-Trade Info";
double STOPLEVEL;
string AC;
//+------------------------------------------------------------------+
int OnInit()
{
AC=" "+AccountCurrency();
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
Del();
}
//--------------------------------------------------------------------
void Del()
{
ObjectDelete(0,InpName);
ObjectDelete(0,"cm__fon1_");
ObjectDelete(0,"cm__kn Orders Line");
ObjectDelete(0,"cm__kn History");
ObjectDelete(0,"cm__kn MarketInfo");
ObjectDelete(0,"cm__kn NL");
ObjectDelete(0,"cm__NoLoss_NLb");
ObjectDelete(0,"cm__NoLoss_NLs");
ObjectDelete(0,"cm__NoLoss_NL");
ObjectDelete(0,"cm__Buy");
ObjectDelete(0,"cm__Sell");
ObjectDelete(0,"cm__BL");
ObjectDelete(0,"cm__SL");
ObjectDelete(0,"cm__00_");
ObjectDelete(0,"cm__0_");
ObjectDelete(0,"cm__1_");
ObjectDelete(0,"cm__2_");
ObjectDelete(0,"cm__3_");
ObjectDelete(0,"cm__4_");
ObjectDelete(0,"cm__5_");
ObjectDelete(0,"cm__6_");
ObjectDelete(0,"cm__60_");
ObjectsDeleteAll(0,OBJ_TREND);
ObjectDelete(0,"cm__ ñåãîäíÿ");
ObjectDelete(0,"cm__ â÷åðà");
ObjectDelete(0,"cm__ íåäåëÿ");
ObjectDelete(0,"cm__ ìåñÿö");
ObjectDelete(0,"cm__ ñåãîäí1");
ObjectDelete(0,"cm__ ñåãîäí2");
ObjectDelete(0,"cm__ ñåãîäí3");
ObjectDelete(0,"cm__ ñåãîäí4");
ObjectDelete(0,"cm__ ñåãîäí5");
ObjectDelete(0,"cm__ ñåãîäí6");
ObjectDelete(0,"cm__ ñåãîäí7");
ObjectDelete(0,"cm__ ñåãîäí8");
}
//--------------------------------------------------------------------
int start()
{
Redraw();
return(0);
}
//--------------------------------------------------------------------
void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam)
{
if(id==CHARTEVENT_OBJECT_CLICK)
{
string clickedChartObject=sparam;
//if (clickedChartObject=="cm__kn Orders Line")
//{
//PlaySound("Ok.wav");
//}
if (clickedChartObject=="cm__kn History")
{
if (ObjectGetInteger(0,"cm__kn MarketInfo",OBJPROP_STATE))
{
Del();
RectLabelCreate(0,InpName,0,X,Y,200,105,Color2,Color1,STYLE_SOLID,3,false,true,true,0);
ObjectSetInteger(0,"cm__kn MarketInfo",OBJPROP_STATE,false);
}
if (!ObjectGetInteger(0,"cm__kn History",OBJPROP_STATE))
{
if (ObjectFind("cm__ ñåãîäíÿ")==0) Del();
RectLabelCreate(0,InpName,0,X,Y,200,105,Color2,Color1,STYLE_SOLID,3,false,true,true,0);
}
}
if (clickedChartObject=="cm__kn MarketInfo")
{
if (ObjectGetInteger(0,"cm__kn History",OBJPROP_STATE))
{
if (ObjectFind("cm__ ñåãîäíÿ")==0) Del();
RectLabelCreate(0,InpName,0,X,Y,200,105,Color2,Color1,STYLE_SOLID,3,false,true,true,0);
ObjectSetInteger(0,"cm__kn History",OBJPROP_STATE,false);
}
if (!ObjectGetInteger(0,"cm__kn MarketInfo",OBJPROP_STATE))
{
Del();
RectLabelCreate(0,InpName,0,X,Y,200,105,Color2,Color1,STYLE_SOLID,3,false,true,true,0);
}
}
//Comment(clickedChartObject);
Redraw();
}
}
//--------------------------------------------------------------------
int Redraw()
{
if (ObjectFind(InpName)==0)
{
ObjectGetInteger(0,InpName,OBJPROP_XDISTANCE,0,X);
ObjectGetInteger(0,InpName,OBJPROP_YDISTANCE,0,Y);
}
else
{
//X=30; Y=30;
RectLabelCreate(0,InpName,0,X,Y,200,105,Color2,Color1,STYLE_SOLID,3,false,true,true,0);
}
RectLabelCreate(0,"cm__fon1_" ,0,X+1 ,Y+1 ,198,103,Color6,Color7,STYLE_SOLID,1,false,false,true,0);
ButtonCreate(0,"cm__kn Orders Line" ,0,X+2 ,Y+22,88,18 ,"Orders",Font,Width,Color1,Color8,Color7,false);
ButtonCreate(0,"cm__kn NL" ,0,X+2 ,Y+40,88,18 ,"NL",Font,Width,Color1,Color8,Color7,false);
RectLabelCreate(0,"cm__0_" ,0 ,X+1,Y+1,198,18,Color3,Color7,STYLE_SOLID,1,false,false,true,0);
LabelCreate(0 ,"cm__00_",0 ,X+100,Y+10,CORNER_LEFT_UPPER,StringConcatenate(InpName," ",Symbol()),Font,Width+0,Color2,0,ANCHOR_CENTER,false,false,true,0);
RefreshRates();
double OOP;
STOPLEVEL=MarketInfo(Symbol(),MODE_STOPLEVEL);
double stoplevel=STOPLEVEL*Point;
int b=0,s=0,bs=0,ss=0,bl=0,sl=0,tip;
double OL,LB=0,LS=0,ProfitB=0,ProfitS=0;
double price_b=0,price_s=0;
int i,Ticket;string NameLine;datetime OOT;
bool WiewOrdersLine=ObjectGetInteger(0,"cm__kn Orders Line",OBJPROP_STATE);
for (i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()==Symbol())
{
OOP = NormalizeDouble(OrderOpenPrice(),Digits);
OOT = OrderOpenTime();
Ticket=OrderTicket();
tip = OrderType();
OL = OrderLots();
if (tip==OP_BUY)
{
b++;
LB+=OL;price_b+=(Bid-OOP)*OL+(OrderCommission()+OrderSwap())*Point;
ProfitB+=OrderProfit()+OrderCommission()+OrderSwap();
if (WiewOrdersLine)
{
NameLine=StringConcatenate("Bay, Lot ",DoubleToStr(OL,2)," Ticket ",DoubleToStr(Ticket,0));
ObjectDelete(NameLine);
ObjectCreate(NameLine,OBJ_TREND,0,OOT,OOP,Time[0],Bid);
ObjectSetInteger(0,NameLine, OBJPROP_COLOR,Color3);
}
}
if (tip==OP_SELL)
{
s++;
LS+=OL;price_s+=(OOP-Ask)*OL+(OrderCommission()+OrderSwap())*Point;
ProfitS+=OrderProfit()+OrderCommission()+OrderSwap();
if (WiewOrdersLine)
{
NameLine=StringConcatenate("Sell, Lot ",DoubleToStr(OL,2)," Ticket ",DoubleToStr(Ticket,0));
ObjectDelete(NameLine);
ObjectCreate(NameLine,OBJ_TREND,0,OOT,OOP,Time[0],Ask);
ObjectSetInteger(0,NameLine, OBJPROP_COLOR,Color4);
}
}
if (WiewOrdersLine)
{
ObjectSetInteger(0,NameLine, OBJPROP_STYLE, STYLE_DOT);
ObjectSetInteger(0,NameLine, OBJPROP_RAY, false);
ObjectSetInteger(0,NameLine,OBJPROP_SELECTABLE,false);
ObjectSetInteger(0,NameLine,OBJPROP_SELECTED,false);
ObjectSetInteger(0,NameLine,OBJPROP_HIDDEN,true);
}
}
}
}
RectLabelCreate(0,"cm__1_" ,0 ,X+91,Y+22,58,18,Color2,Color7,STYLE_SOLID,1,false,false,true,0);
RectLabelCreate(0,"cm__2_" ,0 ,X+150,Y+22,48,18,Color2,Color7,STYLE_SOLID,1,false,false,true,0);
LabelCreate(0 ,"cm__Buy" ,0 ,X+120,Y+32,CORNER_LEFT_UPPER,StringConcatenate("Buy ",DoubleToStr(b,0)),Font,Width+0,Color1,0,ANCHOR_CENTER,false,false,true,0);
LabelCreate(0 ,"cm__BL" ,0 ,X+175,Y+32,CORNER_LEFT_UPPER,DoubleToStr(LB,2),Font,Width+0,Color1,0,ANCHOR_CENTER,false,false,true,0);
RectLabelCreate(0,"cm__3_" ,0 ,X+91,Y+42,58,18,Color2,Color7,STYLE_SOLID,1,false,false,true,0);
RectLabelCreate(0,"cm__4_" ,0 ,X+150,Y+42,48,18,Color2,Color7,STYLE_SOLID,1,false,false,true,0);
LabelCreate(0 ,"cm__Sell",0 ,X+120,Y+52,CORNER_LEFT_UPPER,StringConcatenate("Sell ",DoubleToStr(s,0)),Font,Width+0,Color1,0,ANCHOR_CENTER,false,false,true,0);
LabelCreate(0 ,"cm__SL" ,0 ,X+175,Y+52,CORNER_LEFT_UPPER,DoubleToStr(LS,2),Font,Width+0,Color1,0,ANCHOR_CENTER,false,false,true,0);
if (!WiewOrdersLine) ObjectsDeleteAll(0,OBJ_TREND);
//---
if (ObjectGetInteger(0,"cm__kn NL",OBJPROP_STATE))
{
double NL=0,NLb=0,NLs=0;
if(LB>0) NLb=Bid-price_b/LB;
ARROW("cm__NoLoss_NLb", NLb, 6, Color3);
if(LS>0) NLs=Ask+price_s/LS;
ARROW("cm__NoLoss_NLs", NLs, 6, Color4);
if(LB-LS>0) NL=Bid-(price_b+price_s)/(LB-LS);
if(LB-LS<0) NL=Ask-(price_b+price_s)/(LB-LS);
ARROW("cm__NoLoss_NL", NL, 6, Color5);
}
else
{
ObjectDelete(0,"cm__NoLoss_NLb");
ObjectDelete(0,"cm__NoLoss_NLs");
ObjectDelete(0,"cm__NoLoss_NL");
}
//---
RectLabelCreate(0,"cm__5_" ,0 ,X+1,Y+61,198,18,Color2,Color7,STYLE_SOLID,1,false,false,true,0);
ButtonCreate(0,"cm__kn History" ,0,X+2 ,Y+82,98,18 ,"History",Font,Width,Color1,Color8,Color7,false);
ButtonCreate(0,"cm__kn MarketInfo" ,0,X+100 ,Y+82,98,18 ,"MarketInfo",Font,Width,Color1,Color8,Color7,false);
double Profit=0;datetime OCT;
double ñåãîäíÿ=0,â÷åðà=0,íåäåëÿ=0,ìåñÿö=0;
if (ObjectGetInteger(0,"cm__kn History",OBJPROP_STATE))
{
for (i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
{
if (OrderSymbol()!=Symbol()) continue;
Profit = OrderProfit()+OrderSwap()+OrderCommission();
OOP = OrderOpenPrice();
OOT = OrderOpenTime();
OCT = OrderCloseTime();
Ticket=OrderTicket();
tip = OrderType();
OL = OrderLots();
if (tip==OP_BUY)
{
NameLine=StringConcatenate("Bay, Lot ",DoubleToStr(OL,2)," Ticket ",DoubleToStr(Ticket,0));
ObjectDelete(NameLine);
ObjectCreate(NameLine,OBJ_TREND,0,OOT,OOP,OCT,OrderClosePrice());
ObjectSetInteger(0,NameLine, OBJPROP_COLOR,Color3);
}
if (tip==OP_SELL)
{
NameLine=StringConcatenate("Sell, Lot ",DoubleToStr(OL,2)," Ticket ",DoubleToStr(Ticket,0));
ObjectDelete(NameLine);
ObjectCreate(NameLine,OBJ_TREND,0,OOT,OOP,OCT,OrderClosePrice());
ObjectSetInteger(0,NameLine, OBJPROP_COLOR,Color4);
}
ObjectSetInteger(0,NameLine, OBJPROP_STYLE, STYLE_DOT);
ObjectSetInteger(0,NameLine, OBJPROP_RAY, false);
ObjectSetInteger(0,NameLine,OBJPROP_SELECTABLE,false);
ObjectSetInteger(0,NameLine,OBJPROP_SELECTED,false);
ObjectSetInteger(0,NameLine,OBJPROP_HIDDEN,true);
//---
if (OCT>=iTime(NULL,1440,0)) ñåãîäíÿ+=Profit;
if (OCT>=iTime(NULL,1440,1) && OCT<iTime(NULL,1440,0)) â÷åðà+=Profit;
if (OCT>=iTime(NULL,PERIOD_W1,0)) íåäåëÿ+=Profit;
if (OCT>=iTime(NULL,PERIOD_MN1,0)) ìåñÿö+=Profit;
}
}
RectLabelCreate(0,InpName,0,X,Y,200,225,Color2,Color1,STYLE_SOLID,3,false,true,true,0);
RectLabelCreate(0,"cm__fon1_" ,0,X+1 ,Y+1 ,198,223,Color6,Color7,STYLE_SOLID,1,false,false,true,0);
RectLabelCreate(0,"cm__6_" ,0 ,X+1,Y+104,198,18,Color2,Color7,STYLE_SOLID,1,false,false,true,0);
LabelCreate(0 ,"cm__60_",0 ,X+100,Y+112,CORNER_LEFT_UPPER,"Profit",Font,Width+0,Color1,0,ANCHOR_CENTER,false,false,true,0);
LabelCreate(0 ,"cm__ ñåãîäíÿ" ,0 ,X+100,Y+135,CORNER_LEFT_UPPER,StringConcatenate("ñåãîäíÿ ",DoubleToStr(ñåãîäíÿ,2),AC),Font,Width+0,Color1,0,ANCHOR_CENTER,false,false,true,0);
LabelCreate(0 ,"cm__ â÷åðà" ,0 ,X+100,Y+155,CORNER_LEFT_UPPER,StringConcatenate("â÷åðà ",DoubleToStr(â÷åðà,2),AC),Font,Width+0,Color1,0,ANCHOR_CENTER,false,false,true,0);
LabelCreate(0 ,"cm__ íåäåëÿ" ,0 ,X+100,Y+175,CORNER_LEFT_UPPER,StringConcatenate("íåäåëÿ ",DoubleToStr(íåäåëÿ,2),AC),Font,Width+0,Color1,0,ANCHOR_CENTER,false,false,true,0);
LabelCreate(0 ,"cm__ ìåñÿö" ,0 ,X+100,Y+195,CORNER_LEFT_UPPER,StringConcatenate("ìåñÿö ",DoubleToStr(ìåñÿö,2),AC),Font,Width+0,Color1,0,ANCHOR_CENTER,false,false,true,0);
}
//---
if (ObjectGetInteger(0,"cm__kn MarketInfo",OBJPROP_STATE))
{
RectLabelCreate(0,InpName,0,X,Y,200,345,Color2,Color1,STYLE_SOLID,3,false,true,true,0);
RectLabelCreate(0,"cm__fon1_" ,0,X+1 ,Y+1 ,198,343,Color6,Color7,STYLE_SOLID,1,false,false,true,0);
RectLabelCreate(0,"cm__6_" ,0 ,X+1,Y+104,198,18,Color2,Color7,STYLE_SOLID,1,false,false,true,0);
LabelCreate(0 ,"cm__60_",0 ,X+100,Y+112,CORNER_LEFT_UPPER,"MarketInfo",Font,Width+0,Color1,0,ANCHOR_CENTER,false,false,true,0);
LabelCreate(0 ,"cm__ ñåãîäíÿ" ,0 ,X+100,Y+135,CORNER_LEFT_UPPER,StringConcatenate("SPREAD ",MarketInfo(Symbol(),MODE_SPREAD)),Font,Width+0,Color1,0,ANCHOR_CENTER,false,false,true,0);
LabelCreate(0 ,"cm__ â÷åðà" ,0 ,X+100,Y+155,CORNER_LEFT_UPPER,StringConcatenate("STOPLEVEL ",MarketInfo(Symbol(),MODE_STOPLEVEL)),Font,Width+0,Color1,0,ANCHOR_CENTER,false,false,true,0);//+" 14 Ìèíèìàëüíî äîïóñòèìûé óðîâåíü ñòîï-ëîññà/òåéê-ïðîôèòà â ïóíêòàõ "+"\n"+
LabelCreate(0 ,"cm__ íåäåëÿ" ,0 ,X+100,Y+175,CORNER_LEFT_UPPER,StringConcatenate("LOTSIZE ",MarketInfo(Symbol(),MODE_LOTSIZE)),Font,Width+0,Color1,0,ANCHOR_CENTER,false,false,true,0);//+" 15 Ðàçìåð êîíòðàêòà â áàçîâîé âàëþòå èíñòðóìåíòà "+"\n"+
LabelCreate(0 ,"cm__ ìåñÿö" ,0 ,X+100,Y+195,CORNER_LEFT_UPPER,StringConcatenate("TICKVALUE ",MarketInfo(Symbol(),MODE_TICKVALUE)),Font,Width+0,Color1,0,ANCHOR_CENTER,false,false,true,0);//+" 16 Ðàçìåð ìèíèìàëüíîãî èçìåíåíèÿ öåíû èíñòðóìåíòà â âàëþòå äåïîçèòà "+"\n"+
LabelCreate(0 ,"cm__ ñåãîäí1" ,0 ,X+100,Y+215,CORNER_LEFT_UPPER,StringConcatenate("TICKSIZE ",MarketInfo(Symbol(),MODE_TICKSIZE)),Font,Width+0,Color1,0,ANCHOR_CENTER,false,false,true,0);//+" 17 Ìèíèìàëüíûé øàã èçìåíåíèÿ öåíû èíñòðóìåíòà â âàëþòå êîòèðîâêè "+"\n"+
LabelCreate(0 ,"cm__ ñåãîäí2" ,0 ,X+100,Y+235,CORNER_LEFT_UPPER,StringConcatenate("SWAPLONG ",MarketInfo(Symbol(),MODE_SWAPLONG)),Font,Width+0,Color1,0,ANCHOR_CENTER,false,false,true,0);//+" 18 Ðàçìåð ñâîïà äëÿ äëèííûõ ïîçèöèé "+"\n"+
LabelCreate(0 ,"cm__ ñåãîäí3" ,0 ,X+100,Y+255,CORNER_LEFT_UPPER,StringConcatenate("SWAPSHORT ",MarketInfo(Symbol(),MODE_SWAPSHORT)),Font,Width+0,Color1,0,ANCHOR_CENTER,false,false,true,0);//+" 19 Ðàçìåð ñâîïà äëÿ êîðîòêèõ ïîçèöèé "+"\n"+
LabelCreate(0 ,"cm__ ñåãîäí4" ,0 ,X+100,Y+275,CORNER_LEFT_UPPER,StringConcatenate("MINLOT ",MarketInfo(Symbol(),MODE_MINLOT)),Font,Width+0,Color1,0,ANCHOR_CENTER,false,false,true,0);//+" 23 Ìèíèìàëüíûé ðàçìåð ëîòà "+"\n"+
LabelCreate(0 ,"cm__ ñåãîäí5" ,0 ,X+100,Y+295,CORNER_LEFT_UPPER,StringConcatenate("LOTSTEP ",MarketInfo(Symbol(),MODE_LOTSTEP)),Font,Width+0,Color1,0,ANCHOR_CENTER,false,false,true,0);//+" 24 Øàã èçìåíåíèÿ ðàçìåðà ëîòà "+"\n"+
LabelCreate(0 ,"cm__ ñåãîäí6" ,0 ,X+100,Y+315,CORNER_LEFT_UPPER,StringConcatenate("MAXLOT ",MarketInfo(Symbol(),MODE_MAXLOT)),Font,Width+0,Color1,0,ANCHOR_CENTER,false,false,true,0);//+" 25 Ìàêñèìàëüíûé ðàçìåð ëîòà "+"\n"+
LabelCreate(0 ,"cm__ ñåãîäí7" ,0 ,X+100,Y+335,CORNER_LEFT_UPPER,StringConcatenate("MARGINREQUIRED ",MarketInfo(Symbol(),MODE_MARGINREQUIRED)),Font,Width+0,Color1,0,ANCHOR_CENTER,false,false,true,0);//+" 32 Ðàçìåð ñâîáîäíûõ ñðåäñòâ, íåîáõîäèìûõ äëÿ îòêðûòèÿ 1 ëîòà íà ïîêóïêó "+"\n"+
}
return(0);
}
//+------------------------------------------------------------------+
void ARROW(string Name, double Price, int ARROWCODE, color c)
{
ObjectDelete(Name);
ObjectCreate(Name,OBJ_ARROW,0,Time[0],Price,0,0,0,0);
ObjectSetInteger(0,Name,OBJPROP_ARROWCODE,ARROWCODE);
ObjectSetInteger(0,Name,OBJPROP_COLOR, c);
ObjectSetInteger(0,Name,OBJPROP_WIDTH, 1);
}
//--------------------------------------------------------------------
bool ButtonCreate(const long chart_ID=0, // ID ãðàôèêà
const string name="Button", // èìÿ êíîïêè
const int sub_window=0, // íîìåð ïîäîêíà
const long x=0, // êîîðäèíàòà ïî îñè X
const long y=0, // êîîðäèíàòà ïî îñè y
const int width=50, // øèðèíà êíîïêè
const int height=18, // âûñîòà êíîïêè
const string text="Button", // òåêñò
const string font="Arial", // øðèôò
const int font_size=10, // ðàçìåð øðèôòà
const color clr=clrNONE, //öâåò òåêñòà
const color clrON=clrNONE, //öâåò ôîíà
const color clrOFF=clrNONE, //öâåò ôîíà
const bool state=false) // íàæàòà/îòæàòà
{
if (ObjectFind(chart_ID,name)==-1)
{
ObjectCreate(chart_ID,name,OBJ_BUTTON,sub_window,0,0);
ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width);
ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height);
ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,CORNER_LEFT_UPPER);
ObjectSetString(chart_ID,name,OBJPROP_FONT,font);
ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,font_size);
ObjectSetInteger(chart_ID,name,OBJPROP_BACK,0);
ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,0);
ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,0);
ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,1);
ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,0);
ObjectSetInteger(chart_ID,name,OBJPROP_STATE,state);
ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_COLOR,clrNONE);
}
color back_clr;
if (ObjectGetInteger(chart_ID,name,OBJPROP_STATE)) back_clr=clrON; else back_clr=clrOFF;
ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR,back_clr);
ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);
ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
return(true);
}
//--------------------------------------------------------------------
bool RectLabelCreate(const long chart_ID=0, // ID ãðàôèêà
const string name="RectLabel", // èìÿ ìåòêè
const int sub_window=0, // íîìåð ïîäîêíà
const long x=0, // êîîðäèíàòà ïî îñè X
const long y=0, // êîîðäèíàòà ïî îñè y
const int width=50, // øèðèíà
const int height=18, // âûñîòà
const color back_clr=clrNONE, // öâåò ôîíà
const color clr=clrNONE, //öâåò ïëîñêîé ãðàíèöû (Flat)
const ENUM_LINE_STYLE style=STYLE_SOLID, // ñòèëü ïëîñêîé ãðàíèöû
const int line_width=1, // òîëùèíà ïëîñêîé ãðàíèöû
const bool back=false, // íà çàäíåì ïëàíå
const bool selection=false, // âûäåëèòü äëÿ ïåðåìåùåíèé
const bool hidden=true, // ñêðûò â ñïèñêå îáúåêòîâ
const long z_order=0) // ïðèîðèòåò íà íàæàòèå ìûøüþ
{
ResetLastError();
if (ObjectFind(chart_ID,name)==-1)
{
ObjectCreate(chart_ID,name,OBJ_RECTANGLE_LABEL,sub_window,0,0);
ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_TYPE,BORDER_FLAT);
ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,CORNER_LEFT_UPPER);
ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,line_width);
ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
}
ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR,back_clr);
ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width);
ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height);
ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
return(true);
}
//--------------------------------------------------------------------
bool LabelCreate(const long chart_ID=0, // ID ãðàôèêà
const string name="Label", // èìÿ ìåòêè
const int sub_window=0, // íîìåð ïîäîêíà
const long x=0, // êîîðäèíàòà ïî îñè X
const long y=0, // êîîðäèíàòà ïî îñè y
const ENUM_BASE_CORNER corner=CORNER_LEFT_UPPER, // óãîë ãðàôèêà äëÿ ïðèâÿçêè
const string text="Label", // òåêñò
const string font="Arial", // øðèôò
const int font_size=10, // ðàçìåð øðèôòà
const color clr=clrNONE,
const double angle=0.0, // íàêëîí òåêñòà
const ENUM_ANCHOR_POINT anchor=ANCHOR_LEFT_UPPER, // ñïîñîá ïðèâÿçêè
const bool back=false, // íà çàäíåì ïëàíå
const bool selection=false, // âûäåëèòü äëÿ ïåðåìåùåíèé
const bool hidden=true, // ñêðûò â ñïèñêå îáúåêòîâ
const long z_order=0) // ïðèîðèòåò íà íàæàòèå ìûøüþ
{
ResetLastError();
if (ObjectFind(chart_ID,name)==-1)
{
if(!ObjectCreate(chart_ID,name,OBJ_LABEL,sub_window,0,0))
{
Print(__FUNCTION__,": íå óäàëîñü ñîçäàòü òåêñòîâóþ ìåòêó! Êîä îøèáêè = ",GetLastError());
return(false);
}
ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);
ObjectSetString(chart_ID,name,OBJPROP_FONT,font);
ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,font_size);
ObjectSetDouble(chart_ID,name,OBJPROP_ANGLE,angle);
ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,anchor);
ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
}
ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);
return(true);
}
//--------------------------------------------------------------------
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
---