Horizontal Grid Lines
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «0 - horizontal grid lines.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный индикатор для MetaTrader 5 строит горизонтальную ценовую сетку на графике на основе данных недельных максимумов и минимумов. Сетка формируется с заданным интервалом в пунктах, а линии окрашиваются в разные цвета в зависимости от того, является ли ценовой уровень «круглым» числом.
Индикатор позволяет настраивать количество анализируемых недель, размер шага сетки, цвета, толщину и стиль линий. В верхней части графика отображается информационная метка с указанием размера сетки, положение и внешний вид которой настраиваются отдельно.
При удалении индикатора с графика все созданные объекты горизонтальных линий и метки автоматически удаляются. Для символов GOLD и XAUUSD применяется увеличенный масштаб расчёта пунктов.
Настройки программы
| Настройка | Описание |
|---|---|
| HGrid_Weeks | Количество недель, используемых для расчёта диапазона цен при построении горизонтальной сетки. |
| HGrid_Pips | Размер шага горизонтальной сетки в пунктах, определяющий интервал между линиями. |
| HLine_2 | Цвет горизонтальных линий сетки для круглых ценовых уровней. |
| Line_2_Width | Толщина линий горизонтальной сетки для круглых ценовых уровней. |
| Line_2_Style | Стиль линий горизонтальной сетки для круглых ценовых уровней. |
| HLine_1 | Цвет горизонтальных линий сетки для некруглых ценовых уровней. |
| Line_1_Width | Толщина линий горизонтальной сетки для некруглых ценовых уровней. |
| Line_1_Style | Стиль линий горизонтальной сетки для некруглых ценовых уровней. |
| H_Grid | Текстовый префикс, отображаемый в информационной метке на графике. |
| Show_Label | Включает или отключает отображение информационной метки на графике. |
| Font_Color | Задаёт цвет шрифта информационной метки, отображаемой на графике. |
| Font_Size | Задаёт размер шрифта информационной метки на графике. |
| Font_Bold | Включает или отключает жирное начертание шрифта информационной метки на графике. |
| Font_Corner | Определяет угол графика, к которому привязывается информационная метка. |
| Left_Right | Горизонтальное смещение информационной метки от угла графика в пикселях. |
| Up_Down | Вертикальное смещение информационной метки от угла графика в пикселях. |
Поиск по коду файла
#property version "2.00"
#property strict
#property indicator_chart_window
input int HGrid_Weeks = 10; // Weeks
input double HGrid_Pips = 5.0; // H-Grid Size
input color HLine_2 = DarkSlateGray; // H-Grid 1 Round Number Color
input int Line_2_Width = 1; // H-Grid 1 Width
input ENUM_LINE_STYLE Line_2_Style = 2; // H-Grid 1 Style
input color HLine_1 = DarkSlateGray; // H-Grid 2 Non Round Number Color
input int Line_1_Width = 1; // H-Grid 2 Width
input ENUM_LINE_STYLE Line_1_Style = 2; // H-Grid 2 Style
input string H_Grid = "hg"; // Label Text
input bool Show_Label = true; // Label Visible
input color Font_Color = DodgerBlue; // Label Color
input int Font_Size = 11; // Font Size
input bool Font_Bold = false; // Font Bold
input int Font_Corner = 3; // Corner
input int Left_Right = 25; // Left - Right
input int Up_Down = 140; // Up - Down
string HGrid_text;
string FB;
bool firstTime = true;
datetime lastTime = 0;
int OnInit()
{
// код доступен только после оплаты
}
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[])
{
// код доступен только после оплаты
}
ObjectCreate("HGrid_txt", OBJ_LABEL, 0, 0, 0);
ObjectSet("HGrid_txt", OBJPROP_CORNER, Font_Corner);
ObjectSet("HGrid_txt", OBJPROP_XDISTANCE, Left_Right);
ObjectSet("HGrid_txt", OBJPROP_YDISTANCE, Up_Down);
if(Show_Label == 1)
{
ObjectSetText("HGrid_txt", H_Grid + ": " + DoubleToString(HGrid_Pips,1), Font_Size, FB, Font_Color);
}
else
{
ObjectSetText("HGrid_txt", "");
}
int counted_bars=IndicatorCounted();
if(true /*lastTime == 0 || CurTime() - lastTime > 5*/ )
{
firstTime = false;
lastTime = CurTime();
if(HGrid_Weeks > 0 && HGrid_Pips*10 > 0 )
{
double weekH = iHigh( NULL, PERIOD_W1, 0 );
double weekL = iLow( NULL, PERIOD_W1, 0 );
for(int i = 1; i < HGrid_Weeks; i++ )
{
weekH = MathMax( weekH, iHigh( NULL, PERIOD_W1, i ) );
weekL = MathMin( weekL, iLow( NULL, PERIOD_W1, i ) );
}
double pipRange = HGrid_Pips* 10 * Point;
if (Symbol() == "GOLD" || SymboПоказано первые 50% кода (символов: 3553)