Владислав Сергеев
МАСТЕР
Здравствуйте. Давайте я лучше изменю код своего предыдущего примера (не люблю "потрошить" чужое). Это будет полезно, в том числе, и в качестве изучения MQL. Индикатор будет выдавать alert при достижении баром требуемого размера (в пунктах):Владислав Сергее..., а можете изменить индикатор Bar Value так, чтобы он выдавал алерт сразу как только тело достигнет нужного размера, а не по закрытию? Или, если такой уже есть, дать ссылку.
Заранее спасибо
PHP:
//+------------------------------------------------------------------+
//| candle_size_for_Retrade_mmgp.mq4 |
//| Vlad Sergeev aka moneyinnetwork |
//+------------------------------------------------------------------+
#property copyright "Vlad Sergeev"
#property version "2.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
int OnInit()
{
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 = (high[0]-low[0]+Point)/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 ( bar_size >= Max_Bar) { //размер бара достиг заданного уровня?
Alert("Размер бара достиг уровня ", Max_Bar, "пунктов!"); //выводим Alert
}
return(rates_total);
}