//+------------------------------------------------------------------+
//| body_size_alert.mq4 |
//| Vlad Sergeev aka moneyinnetwork |
//+------------------------------------------------------------------+
#property copyright "Vlad Sergeev"
#property link "
http://moneyinnetwork.ru"
#property version "4.00"
#property strict
#property indicator_chart_window
input int TextSize = 10; //размер шрифта
input string FontName = "Verdana"; //наименование шрифта
input color TextColor = clrWhite; //цвет текста
input int PosX = 0; //координата текста по x
input int PosY = 50; //координата текста по у
input int Max_Bar = 20; //размер бара при котором выдается Alert
bool no_alert;
datetime time_old;
int OnInit()
{
no_alert = false;
time_old = 0;
return(INIT_SUCCEEDED);
}
void OnDeinit(const int reason)
{
if ( ObjectFind ("candlesizeXX") >=0 ) {
ObjectDelete("candlesizeXX");
}
}
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
double bar_size = MathAbs(close[0]-open[0])/Point;
if ( ObjectFind ("candlesizeXX") >=0 ) {
ObjectDelete("candlesizeXX");
}
ObjectCreate ("candlesizeXX", OBJ_LABEL, 0, 0, 0);
ObjectSet ("candlesizeXX", OBJPROP_ANGLE, 0);
ObjectSet("candlesizeXX", OBJPROP_CORNER, 0);
ObjectSet("candlesizeXX", OBJPROP_BACK, FALSE);
ObjectSet("candlesizeXX", OBJPROP_XDISTANCE, PosX);
ObjectSet("candlesizeXX", OBJPROP_YDISTANCE, PosY);
ObjectSetText ( "candlesizeXX",
"Размер тела текущей свечи: "+DoubleToStr(bar_size, 0)+" пунктов",
TextSize,
FontName,
TextColor
);
if ( time_old != time[0] ) {
no_alert = false;
time_old = time[0];
}
if ( bar_size > Max_Bar && !no_alert ) {
Alert("Размер тела свечи превысил заданный уровень в ", Max_Bar, " пунктов!");
no_alert = true;
}
return(rates_total);
}