Objects Styler
- Utilitys
- Version: 3.1
- Aktualisiert: 17 August 2026
Objects Styler ist ein Hilfsprogramm, das ein kontextsensitives Panel zur Bearbeitung der Eigenschaften standardmäßiger grafischer Objekte direkt im Chart bereitstellt. Sein Hauptmerkmal ist ein leistungsstarkes Vorlagensystem , das es Benutzern ermöglicht, komplexe Stilsätze für Objekte zu speichern, zu verwalten und sofort anzuwenden.
Hauptfunktionen
Benutzeroberfläche und Interaktion
-
Kontextuelle Aktivierung: Das Panel wird durch Klicken (oder Shift + Klicken) auf ein grafisches Objekt aufgerufen. Es unterstützt alle Standardobjekte und die meisten ihrer Eigenschaften.
-
Verschiebbares Panel: Das Panel kann frei in jeden Bereich des Charts verschoben werden.
-
Pop-up-Fenster: Zusätzliche Optionen, wie die Stilauswahl, die Farbpalette und die Zeitrahmenliste, öffnen sich in kompakten Pop-up-Fenstern und halten die Hauptoberfläche übersichtlich.
Vorlagenverwaltungssystem
-
Stile speichern und anwenden: Speichern Sie einen vollständigen Satz von Objekteigenschaften als benannte Vorlage. Vorlagen werden mit einem einzigen Klick angewendet.
-
Objekttypspezifisch: Vorlagen werden für einen bestimmten Objekttyp gespeichert. Beispielsweise sind Stile, die für eine Trendlinie erstellt wurden, nur beim Bearbeiten anderer Trendlinien verfügbar.
-
Favoriten (Anheften): Häufig verwendete Vorlagen können für den schnellen Zugriff angeheftet werden. Sie sind immer sichtbar, während andere in einem zusätzlichen Fenster ausgeblendet sind.
-
Synchronisierung und Portabilität:
-
Änderungen an Vorlagen und der Farbpalette können automatisch über alle Instanzen des Indikators in anderen Charts synchronisiert werden.
-
Einstellungsdateien werden separat gespeichert, was eine einfache Übertragung auf andere Computer oder verschiedene Terminals ermöglicht.
-
Steuerung von Objekteigenschaften
-
Allgemeine Eigenschaften: Direkter Zugriff zur Bearbeitung von Farbe, Breite und Linienstil. Bietet außerdem die Kontrolle über die meisten Standardparameter: Füllung, im Hintergrund zeichnen, Strahlen, Symbole, Text usw.
-
Mehrstufige Objektbearbeitung (für Fibonacci-Werkzeuge, Kanäle, Erweiterungen usw.):
-
Individuelle Kontrolle über Wert, Textbeschreibung, Farbe, Breite und Linienstil für jede Ebene.
-
Funktionalität zum Hinzufügen und Entfernen von Ebenen.
-
Farbpalette
-
54 Slots für schnellen Farbzugriff.
-
Visueller Editor (HSV-Picker) für präzise Farbanpassung.
-
Möglichkeit, jede Farbe in der Palette zu ändern und zu speichern.
Indikatoreinstellungen
-
Skalierung der Benutzeroberfläche: Ein Eingabeparameter zur Anpassung der Panelgröße an Ihre Bildschirmauflösung.
-
Aktivierungsmethode: Wählen Sie in den Einstellungen aus, wie das Panel aufgerufen werden soll (ein einfacher Klick oder Shift + Klick).
-
Farbschemata: Vorinstallierte helle und dunkle Designs sowie die Option, vollständig benutzerdefinierte Farben festzulegen.
-
Synchronisierungsmodus: Option zur Auswahl des Speicherorts für Einstellungsdateien: lokal für jeden Chart oder im gemeinsamen Ordner des Terminals zur automatischen Synchronisierung.
In Zukunft können basierend auf Benutzeranfragen zusätzliche Eigenschaften und Unterstützung für neue Objekte hinzugefügt werden.

Это лучшее что я видел для mt5! Выражаю огромную благодарность!!! Автор ЛУЧШИЙ!!! P.S. Было бы прикольно если добавить в меню отрезка выравнивание по горизонтали отрезка. Мне ИИ написал в виде кнопки на графике: //+------------------------------------------------------------------+
//| Line_Leveler_Button.mq5 |
//| AI Code Generator |
//+------------------------------------------------------------------+
#property copyright "AI"
#property version "1.00"
#property indicator_chart_window
#property indicator_buffers 0
#property indicator_plots 0
//--- Входные параметры кнопки
input string InpButtonText = "Сделать горизонтальной"; // Текст на кнопке
input color InpButtonColor = clrWhite; // Цвет текста
input color InpBgColor = clrDarkSlateGray; // Цвет кнопки
input int InpFontSize = 10; // Размер шрифта
input int InpButtonWidth = 160; // Ширина кнопки
input int InpButtonHeight = 25; // Высота кнопки
//--- Имя объекта кнопки
string ButtonName = "Btn_Leveler_Line";
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
// Создаем кнопку в левом верхнем углу графика
if(ObjectCreate(0, ButtonName, OBJ_BUTTON, 0, 0, 0))
{
ObjectSetInteger(0, ButtonName, OBJPROP_XDISTANCE, 15); // Отступ по оси X
ObjectSetInteger(0, ButtonName, OBJPROP_YDISTANCE, 120); // Отступ по оси Y (под имя инструмента)
ObjectSetInteger(0, ButtonName, OBJPROP_XSIZE, InpButtonWidth);
ObjectSetInteger(0, ButtonName, OBJPROP_YSIZE, InpButtonHeight);
ObjectSetInteger(0, ButtonName, OBJPROP_CORNER, CORNER_LEFT_UPPER); // Привязка к верхнему левому углу
ObjectSetString(0, ButtonName, OBJPROP_TEXT, InpButtonText);
ObjectSetString(0, ButtonName, OBJPROP_FONT, "Arial");
ObjectSetInteger(0, ButtonName, OBJPROP_FONTSIZE, InpFontSize);
ObjectSetInteger(0, ButtonName, OBJPROP_COLOR, InpButtonColor);
ObjectSetInteger(0, ButtonName, OBJPROP_BGCOLOR, InpBgColor);
ObjectSetInteger(0, ButtonName, OBJPROP_BORDER_COLOR, clrSilver);
ObjectSetInteger(0, ButtonName, OBJPROP_SELECTABLE, false);
ObjectSetInteger(0, ButtonName, OBJPROP_STATE, false); // Отжата по умолчанию
}
// Разрешаем индикатору ловить клики мыши по графику
ChartSetInteger(0, CHART_EVENT_OBJECT_CREATE, true);
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
// Удаляем кнопку при удалении индикатора
ObjectDelete(0, ButtonName);
ChartRedraw(0);
}
//+------------------------------------------------------------------+
//| OnCalculate (обязательная функция для индикаторов) |
//+------------------------------------------------------------------+
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[])
{
return(rates_total);
}
//+------------------------------------------------------------------+
//| ChartEvent function - перехват событий мыши и кликов |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
const long &lparam,
const double &dparam,
const string &sparam)
{
// Проверяем, произошел ли клик по графическому объекту
if(id == CHARTEVENT_OBJECT_CLICK)
{
// Проверяем, что кликнули именно по нашей кнопке
if(sparam == ButtonName)
{
bool leveled_any = false;
// Перебираем все графические объекты, которые сейчас есть на графике
int total_objects = ObjectsTotal(0, 0, -1);
for(int i = 0; i < total_objects; i++)
{
string obj_name = ObjectName(0, i, 0, -1);
// Нам нужны только те линии, которые выделил (выбрал двойным кликом) трейдер
if(ObjectGetInteger(0, obj_name, OBJPROP_SELECTED) == true)
{
// Проверяем тип объекта. Нам нужны обычные трендовые линии (OBJ_TREND)
if(ObjectGetInteger(0, obj_name, OBJPROP_TYPE) == OBJ_TREND)
{
// Берем цену первой точки линии
double price1 = ObjectGetDouble(0, obj_name, OBJPROP_PRICE, 0);
// Принудительно присваиваем второй точке точно такую же цену
ObjectSetDouble(0, obj_name, OBJPROP_PRICE, 1, price1);
leveled_any = true;
}
}
}
// Если выровняли линию, выводим сообщение в журнал
if(leveled_any)
{
Print("Успешно: Выделенные трендовые линии выровнены горизонтально.");
}
// Возвращаем кнопку в отжатое (активное) состояние для следующего раза
ObjectSetInteger(0, ButtonName, OBJPROP_STATE, false);
ChartRedraw(0);
}
}
}
Извини! Пользовался старой версией. После обновления увидел кнопку выравнивания. Спасибо тебе большое! Ты ЛУЧШИЙ!!! Успехов тебе и вдохновения!