EA-Setka-2/Libs/MQL5Trace/Lib/GraphLib.mqh
super.admin a4b861dd93 convert
2025-05-30 14:50:44 +02:00

185 lines
25 KiB
MQL5

//+------------------------------------------------------------------+
//| GraphLib |
//| Copyright © 2010, FXMaster.de |
//| mailto: profy.mql@gmail.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, FXMaster.de"
#property link "mailto: profy.mql@gmail.com"
//--------------- OBJECT FUNCTION --------------------//
//------------------------------------------------------------------ SetLabel
void SetLabel(long achart, string name, int wnd, string text, color clr, int x, int y, int corn=0, int fontsize=8, string font="Tahoma")
{
ObjectCreate(achart, name, OBJ_LABEL, wnd, 0, 0);
ObjectSetInteger(achart, name, OBJPROP_CORNER, corn);
ObjectSetString(achart, name, OBJPROP_TEXT, text); ObjectSetInteger(achart, name, OBJPROP_COLOR, clr);
ObjectSetInteger(achart, name, OBJPROP_FONTSIZE, fontsize); ObjectSetString(achart, name, OBJPROP_FONT, font);
ObjectSetInteger(achart, name, OBJPROP_SELECTABLE, false);
ObjectSetInteger(achart, name, OBJPROP_BORDER_TYPE, 0);
ObjectSetInteger(achart, name, OBJPROP_XDISTANCE, x); ObjectSetInteger(achart, name, OBJPROP_YDISTANCE, y);
}
//------------------------------------------------------------------ SetButton
void SetButton(long achart, string name, int wnd, string text, color clr, color bgclr, int x, int y, int dx, int dy, int corn=0, int fontsize=8, string font="Tahoma", bool state=true)
{
ObjectCreate(achart, name, OBJ_BUTTON, wnd, 0, 0); ObjectSetInteger(achart, name, OBJPROP_CORNER, corn);
ObjectSetString(achart, name, OBJPROP_TEXT, text); ObjectSetInteger(achart, name, OBJPROP_STATE, state);
ObjectSetInteger(achart, name, OBJPROP_COLOR, clr); ObjectSetInteger(achart, name, OBJPROP_BGCOLOR, bgclr);
ObjectSetInteger(achart, name, OBJPROP_FONTSIZE, fontsize); ObjectSetString(achart, name, OBJPROP_FONT, font);
ObjectSetInteger(achart, name, OBJPROP_XDISTANCE, x); ObjectSetInteger(achart, name, OBJPROP_YDISTANCE, y);
ObjectSetInteger(achart, name, OBJPROP_XSIZE, dx); ObjectSetInteger(achart, name, OBJPROP_YSIZE, dy);
ObjectSetInteger(achart, name, OBJPROP_SELECTABLE, false);
ObjectSetInteger(achart, name, OBJPROP_BORDER_TYPE, 0);
}
//------------------------------------------------------------------ SetRectLbl
void SetRectLbl(long achart, string name, int wnd, string text, color clr, color bgclr, int x, int y, int dx, int dy, int corn=0, int fontsize=8, string font="Tahoma", bool ro=true)
{
ObjectCreate(achart, name, OBJ_RECTANGLE_LABEL, wnd, 0, 0); ObjectSetInteger(achart, name, OBJPROP_CORNER, corn);
ObjectSetString(achart, name, OBJPROP_TEXT, text);
ObjectSetInteger(achart, name, OBJPROP_COLOR, clr); ObjectSetInteger(achart, name, OBJPROP_BGCOLOR, bgclr);
ObjectSetInteger(achart, name, OBJPROP_FONTSIZE, fontsize); ObjectSetString(achart, name, OBJPROP_FONT, font);
ObjectSetInteger(achart, name, OBJPROP_XDISTANCE, x); ObjectSetInteger(achart, name, OBJPROP_YDISTANCE, y);
ObjectSetInteger(achart, name, OBJPROP_XSIZE, dx); ObjectSetInteger(achart, name, OBJPROP_YSIZE, dy);
ObjectSetInteger(achart, name, OBJPROP_SELECTABLE, false); ObjectSetInteger(achart, name, OBJPROP_READONLY, ro);
ObjectSetInteger(achart, name, OBJPROP_BORDER_TYPE, 0);
}
//------------------------------------------------------------------ SetEdit
void SetEdit(long achart, string name, int wnd, string text, color clr, color bgclr, int x, int y, int dx, int dy, int corn=0, int fontsize=8, string font="Tahoma", bool ro=true)
{
ObjectCreate(achart, name, OBJ_EDIT, wnd, 0, 0); ObjectSetInteger(achart, name, OBJPROP_CORNER, corn);
ObjectSetString(achart, name, OBJPROP_TEXT, text);
ObjectSetInteger(achart, name, OBJPROP_COLOR, clr); ObjectSetInteger(achart, name, OBJPROP_BGCOLOR, bgclr);
ObjectSetInteger(achart, name, OBJPROP_FONTSIZE, fontsize); ObjectSetString(achart, name, OBJPROP_FONT, font);
ObjectSetInteger(achart, name, OBJPROP_XDISTANCE, x); ObjectSetInteger(achart, name, OBJPROP_YDISTANCE, y);
ObjectSetInteger(achart, name, OBJPROP_XSIZE, dx); ObjectSetInteger(achart, name, OBJPROP_YSIZE, dy);
ObjectSetInteger(achart, name, OBJPROP_SELECTABLE, false); ObjectSetInteger(achart, name, OBJPROP_READONLY, ro);
ObjectSetInteger(achart, name, OBJPROP_BORDER_TYPE, 0);
}
//------------------------------------------------------------------ SetImgButton
void SetImgButton(long achart, string name, int wnd, string text, color clr, int x, int y, int dx, int dy, int corn, string fileOn, string fileOff)
{
ObjectCreate(achart, name, OBJ_BITMAP_LABEL, wnd, 0, 0); ObjectSetInteger(achart, name, OBJPROP_CORNER, corn);
ObjectSetString(achart, name, OBJPROP_TEXT, text); ObjectSetInteger(achart, name, OBJPROP_COLOR, clr);
ObjectSetString(achart, name, OBJPROP_BMPFILE, 0, fileOn); ObjectSetString(achart, name, OBJPROP_BMPFILE, 1, fileOff);
ObjectSetInteger(achart, name, OBJPROP_XDISTANCE, x); ObjectSetInteger(achart, name, OBJPROP_YDISTANCE, y);
ObjectSetInteger(achart, name, OBJPROP_XSIZE, dx); ObjectSetInteger(achart, name, OBJPROP_YSIZE, dy);
ObjectSetInteger(achart, name, OBJPROP_BORDER_TYPE, 0);
}
//------------------------------------------------------------------ SetImage
void SetImage(long achart, string name, int wnd, string text, color clr, int x, int y, int dx, int dy, int corn, string file)
{
ObjectCreate(achart, name, OBJ_BITMAP, wnd, 0, 0); ObjectSetInteger(achart, name, OBJPROP_CORNER, corn);
ObjectSetString(achart, name, OBJPROP_TEXT, text); ObjectSetInteger(achart, name, OBJPROP_COLOR, clr);
ObjectSetString(achart, name, OBJPROP_BMPFILE, file);
ObjectSetInteger(achart, name, OBJPROP_XDISTANCE, x); ObjectSetInteger(achart, name, OBJPROP_YDISTANCE, y);
ObjectSetInteger(achart, name, OBJPROP_XSIZE, dx); ObjectSetInteger(achart, name, OBJPROP_YSIZE, dy);
ObjectSetInteger(achart, name, OBJPROP_BORDER_TYPE, 0);
}
//------------------------------------------------------------------ SetArrow
void SetArrow(long achart, string name, datetime dt, double pr, color clr, int arr, string st)
{
ObjectCreate(achart, name, OBJ_ARROW, 0, dt, pr);
ObjectSetInteger(achart, name, OBJPROP_TIME, 0, dt); ObjectSetDouble(achart, name, OBJPROP_PRICE, 0, pr);
ObjectSetInteger(achart, name, OBJPROP_ARROWCODE, arr); ObjectSetInteger(achart, name, OBJPROP_COLOR, clr);
ObjectSetString(achart, name, OBJPROP_TEXT, st);
}
//------------------------------------------------------------------ SetText
void SetText(long achart, string name, int wnd, string text, datetime dt, double pr, color clr, int fontsize, string font)
{
ObjectCreate(achart, name, OBJ_TEXT, wnd, 0, 0);
ObjectSetString(achart, name, OBJPROP_TEXT, text); ObjectSetInteger(achart, name, OBJPROP_COLOR, clr);
ObjectSetInteger(achart, name, OBJPROP_FONTSIZE, fontsize); ObjectSetString(achart, name, OBJPROP_FONT, font);
ObjectSetInteger(achart, name, OBJPROP_TIME, 0, dt); ObjectSetDouble(achart, name, OBJPROP_PRICE, 0, pr);
}
//------------------------------------------------------------------ SetLine
void SetLine(long achart, string name, datetime dt1, double pr1, datetime dt2, double pr2, color clr, int width, int style, string st)
{
ObjectCreate(achart, name, OBJ_TREND, 0, 0, 0);
ObjectSetInteger(achart, name, OBJPROP_RAY_LEFT, false); ObjectSetInteger(achart, name, OBJPROP_RAY_RIGHT, false);
ObjectSetInteger(achart, name, OBJPROP_TIME, 0, dt1); ObjectSetDouble(achart, name, OBJPROP_PRICE, 0, pr1);
ObjectSetInteger(achart, name, OBJPROP_TIME, 1, dt2); ObjectSetDouble(achart, name, OBJPROP_PRICE, 1, pr2);
ObjectSetInteger(achart, name, OBJPROP_WIDTH, width); ObjectSetInteger(achart, name, OBJPROP_COLOR, clr);
ObjectSetString(achart, name, OBJPROP_TEXT, st); ObjectSetInteger(achart, name, OBJPROP_STYLE, style);
}
//------------------------------------------------------------------ SetHLine
void SetHLine(long achart, string name, double pr, color clr, int width, int style, string st)
{
ObjectCreate(achart, name, OBJ_HLINE, 0, 0, 0); ObjectSetDouble(achart, name, OBJPROP_PRICE, 0, pr);
ObjectSetInteger(achart, name, OBJPROP_WIDTH, width); ObjectSetInteger(achart, name, OBJPROP_COLOR, clr);
ObjectSetString(achart, name, OBJPROP_TEXT, st); ObjectSetInteger(achart, name, OBJPROP_STYLE, style);
}
//------------------------------------------------------------------ SetVLine
void SetVLine(long achart, string name, datetime dt, color clr, int width, int style, string st)
{
ObjectCreate(achart, name, OBJ_VLINE, 0, 0, 0); ObjectSetInteger(achart, name, OBJPROP_TIME, 0, dt);
ObjectSetInteger(achart, name, OBJPROP_WIDTH, width); ObjectSetInteger(achart, name, OBJPROP_COLOR, clr);
ObjectSetString(achart, name, OBJPROP_TEXT, st); ObjectSetInteger(achart, name, OBJPROP_STYLE, style);
}
//------------------------------------------------------------------ SetRect
void SetRect(long achart, string name, int wnd, datetime dt1, double pr1, datetime dt2, double pr2, color clr, string st)
{
ObjectCreate(achart, name, OBJ_RECTANGLE, wnd, 0, 0);
ObjectSetInteger(achart, name, OBJPROP_TIME, 0, dt1); ObjectSetDouble(achart, name, OBJPROP_PRICE, 0, pr1);
ObjectSetInteger(achart, name, OBJPROP_TIME, 1, dt2); ObjectSetDouble(achart, name, OBJPROP_PRICE, 1, pr2);
ObjectSetInteger(achart, name, OBJPROP_WIDTH, 1); ObjectSetInteger(achart, name, OBJPROP_COLOR, clr);
ObjectSetString(achart, name, OBJPROP_TEXT, ""); ObjectSetInteger(achart, name, OBJPROP_STYLE, STYLE_SOLID);
}
//------------------------------------------------------------------ SetVLine
void SetChart(long achart, string name, int wnd, int x, int y, int dx, int dy, int corn, string smb, ENUM_TIMEFRAMES tf)
{
ObjectCreate(achart, name, OBJ_CHART, wnd, 0, 0); ObjectSetInteger(achart, name, OBJPROP_CORNER, corn);
ObjectSetString(achart, name, OBJPROP_SYMBOL, smb); ObjectSetInteger(achart, name, OBJPROP_TIMEFRAMES, tf);
ObjectSetInteger(achart, name, OBJPROP_XDISTANCE, x); ObjectSetInteger(achart, name, OBJPROP_YDISTANCE, y);
ObjectSetInteger(achart, name, OBJPROP_XSIZE, dx); ObjectSetInteger(achart, name, OBJPROP_YSIZE, dy);
}
//------------------------------------------------------------------ ObjectsDeleteAll2
void ObjectsDeleteAll2(long achart=0, int wnd=-1, int type=-1, string pref="")
{
string /*st,*/ names[]; int i, n=ObjectsTotal(achart, wnd, type); ArrayResize(names, n);
for (i=0; i<n; i++) names[i]=ObjectName(achart, i);
for (i=0; i<n; i++)
{
if (wnd>=0) if (ObjectFind(achart, names[i])!=wnd) continue;
if (type>=0) if (ObjectGetInteger(achart, names[i], OBJPROP_TYPE)!=type) continue;
if (pref!="") if (StringSubstr(names[i], 0, StringLen(pref))!=pref) continue;
ObjectDelete(achart, names[i]);
}
}
//------------------------------------------------------------------ HideChart
void HideChart(long achart, color BackClr)
{
ChartSetInteger(achart, CHART_SHOW_OHLC, false);
ChartSetInteger(achart, CHART_SHOW_BID_LINE, false);
ChartSetInteger(achart,CHART_SHOW_ASK_LINE, false);
ChartSetInteger(achart,CHART_SHOW_LAST_LINE, false);
ChartSetInteger(achart,CHART_SHOW_PERIOD_SEP, false);
ChartSetInteger(achart, CHART_SHOW_GRID, false);
ChartSetInteger(achart, CHART_SHOW_VOLUMES, CHART_VOLUME_HIDE);
ChartSetInteger(achart, CHART_SHOW_OBJECT_DESCR, false);
ChartSetInteger(achart, CHART_SHOW_TRADE_LEVELS, false);
ChartSetInteger(achart, CHART_SHOW_DATE_SCALE, false);
ChartSetInteger(achart, CHART_SHOW_PRICE_SCALE, false);
ChartSetInteger(achart, CHART_FOREGROUND, false);
ChartSetInteger(achart, CHART_SHIFT, false);
ChartSetInteger(achart, CHART_MODE, CHART_LINE);
ChartSetInteger(achart, CHART_SCALE, 0);
ChartSetInteger(achart, CHART_COLOR_BACKGROUND, BackClr);
ChartSetInteger(achart, CHART_COLOR_FOREGROUND, BackClr);
ChartSetInteger(achart, CHART_COLOR_CHART_LINE, BackClr);
ChartSetInteger(achart, CHART_COLOR_ASK, BackClr);
ChartSetInteger(achart, CHART_COLOR_BID, BackClr);
ChartSetInteger(achart, CHART_SCALEFIX, true);
ChartSetDouble(achart, CHART_FIXED_MAX, 1);
ChartSetDouble(achart, CHART_FIXED_MIN, 1);
ChartSetString(achart, CHART_COMMENT, "");
ChartRedraw(0);
}
//--------------------------------------------------------------- DTS
string DTS(double d, int n=-1) { if (n<0) return(DoubleToString(d, _Digits)); else return(DoubleToString(d, n)); }
//--------------------------------------------------------------- BTS
string BTS(bool b) { if (b) return("ДА"); return("НЕТ"); }
//--------------------------------------------------------------- ITS
string ITS(double d) { return(DoubleToString(d, 0)); }
//--------------------------------------------------------------- TTS
string TTS(datetime time) { if (time<=0) return("---"); return(TimeToString(time, TIME_DATE|TIME_SECONDS)); }