Нужен индикатор, показывающий размер свечи. Не тела свечи, а вместе с хвостами. Подскажите, а? Спасибо!
//+------------------------------------------------------------------+
//| candle_size_for_Natashika_mmgp.mq4 |
//| Vlad Sergeev aka moneyinnetwork |
//+------------------------------------------------------------------+
#property copyright "Vlad Sergeev"
#property version "1.00"
#property strict
#property indicator_chart_window
input int TextSize = 8; //размер шрифта
input color TextColor = clrYellow; //цвет текста
input int TextAngle = 90; //угол поворота текста
input int MaxBar = 100; //количество баров, начиная с 0, для которых вычисляется размер свечей
int OnInit()
{
return(INIT_SUCCEEDED);
}
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[])
{
int i;
for ( i = 0; i < MaxBar; i++ ) {
if ( ObjectFind ("candlesize"+ IntegerToString(i)) >=0 ) {
ObjectDelete("candlesize"+ IntegerToString(i));
}
ObjectCreate ("candlesize"+ IntegerToString(i),
OBJ_TEXT,
0,
time[i],
high[i]+StepPer()*Point);
ObjectSet ( "candlesize"+IntegerToString(i),
OBJPROP_ANGLE,
TextAngle
);
ObjectSetText ( "candlesize"+IntegerToString(i),
DoubleToStr(NormalizeDouble((high[i]-low[i]+Point)/Point, 0), 0),
TextSize,
NULL,
TextColor
);
}
return(rates_total);
}
int StepPer ()
{
int i = 0;
switch (Period())
{
case PERIOD_M1:
i = 5;
break;
case PERIOD_M5:
i = 15;
break;
case PERIOD_M15:
i = 25;
break;
case PERIOD_M30:
i = 40;
break;
case PERIOD_H1:
i = 60;
break;
case PERIOD_H4:
i = 90;
break;
case PERIOD_D1:
i = 220;
break;
case PERIOD_W1:
i = 500;
break;
case PERIOD_MN1:
i = 2000;
break;
default:
break;
}
return (i);
}
Это просто. Скопировать и перенести.Отличный, Владислав. А можете ссылку дать, пользоваться кодом я еще не умею. Спасибо!
Пожалуйста, качайте.Отличный, Владислав. А можете ссылку дать, пользоваться кодом я еще не умею. Спасибо!
Пожалуйста, пользуйтесь. Тут (на форуме) кнопка волшебная естьИндикатор - то, что нужно! Спасибо огромное!
//+------------------------------------------------------------------+
//| 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; //координата текста по у
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[])
{
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(NormalizeDouble((high[1]-low[1]+Point)/Point, 0), 0),
TextSize,
FontName,
TextColor
);
return(rates_total);
}
input int PosX = 0; //координата текста по x
input int PosY = 50; //координата текста по у
шрифтом наименования:Свеча: 52
input string FontName = "Verdana"; //наименование шрифта
input int TextSize = 10; //размер шрифта
input color TextColor = clrWhite; //цвет текста
И это работает через:4. Удаление текста при удалении индикатора с графика.
void OnDeinit(const int reason);
Да, скопировал не до конца из редактора.только кавычку в конце кода добавил