Ищу индикатор размера свечи
Finansello, там в коде идет расчет не размера тела свечи, а полный размер свечи. Если требуется именно размер тела, то вот эту строку:
PHP код:
Код:
Код:
double*bar_size*=*(high[0]-low[0]+Point)/Point;*
следует заменить вот таким вариантом:
PHP код:
Код:
Код:
double*bar_size*=*MathAbs(close[0]-open[0])/Point;*
А вообще вот улучшенный код, который выдает алерт для каждой новой свечи только 1 раз, а не на каждом ценовом тике, как ранее:
PHP код:
Код:
Код:
//+------------------------------------------------------------------+*
//|**********************************************body_size_alert.mq4*|*
//|*********************************Vlad*Sergeev*aka*moneyinnetwork**|*
//+------------------------------------------------------------------+*
#property*copyright*"Vlad*Sergeev"*
#property*link*"https://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);*
}*