Objects Styler
- Utilitaires
- Version: 3.1
- Mise à jour: 17 août 2026
Objects Styler est un utilitaire qui fournit un panneau contextuel pour modifier les propriétés des objets graphiques standard directement sur le graphique. Sa fonctionnalité clé est un puissant système de modèles qui permet aux utilisateurs d'enregistrer, de gérer et d'appliquer instantanément des ensembles complexes de styles aux objets.
Fonctionnalités principales
Interface et interaction
-
Activation contextuelle : Le panneau est invoqué en cliquant (ou Shift + clic) sur un objet graphique. Il prend en charge tous les objets standard et la plupart de leurs propriétés.
-
Interface déplaçable : Le panneau peut être librement déplacé vers n'importe quelle zone du graphique.
-
Fenêtres pop-up : Les options supplémentaires, telles que la sélection de style, la palette de couleurs et la liste des périodes, s'ouvrent dans des fenêtres pop-up compactes, gardant l'interface principale épurée.
Système de gestion des modèles
-
Enregistrer et appliquer des styles : Enregistrez un ensemble complet de propriétés d'un objet en tant que modèle nommé. Les modèles sont appliqués d'un seul clic.
-
Spécifique au type d'objet : Les modèles sont enregistrés pour un type d'objet spécifique. Par exemple, les styles créés pour une ligne de tendance ne seront disponibles que lors de la modification d'autres lignes de tendance.
-
Favoris (épinglage) : Les modèles fréquemment utilisés peuvent être épinglés pour un accès rapide. Ils seront toujours visibles, tandis que les autres sont masqués dans une fenêtre supplémentaire.
-
Synchronisation et portabilité :
-
Les modifications apportées aux modèles et à la palette de couleurs peuvent être automatiquement synchronisées sur toutes les instances de l'indicateur sur d'autres graphiques.
-
Les fichiers de paramètres sont enregistrés séparément, permettant un transfert facile vers d'autres ordinateurs ou différents terminaux.
-
Contrôle des propriétés des objets
-
Propriétés générales : Accès direct pour modifier la couleur, la largeur et le style de ligne. Fournit également le contrôle sur la plupart des paramètres standard : remplissage, dessiner en arrière-plan, rayons, icônes, texte, etc.
-
Édition d'objets à plusieurs niveaux (pour les outils Fibonacci, les canaux, les expansions, etc.) :
-
Contrôle individuel sur la valeur, la description textuelle, la couleur, la largeur et le style de ligne pour chaque niveau.
-
Fonctionnalité d'ajout et de suppression de niveaux.
-
Palette de couleurs
-
54 emplacements pour un accès rapide aux couleurs.
-
Éditeur visuel (sélecteur HSV) pour un réglage précis des couleurs.
-
Possibilité de modifier et d'enregistrer n'importe quelle couleur dans la palette.
Paramètres de l'indicateur
-
Mise à l'échelle de l'interface : Un paramètre d'entrée pour adapter la taille du panneau à la résolution de votre écran.
-
Méthode d'activation : Choisissez comment invoquer le panneau dans les paramètres (un simple clic ou Shift + clic).
-
Schémas de couleurs : Thèmes clairs et sombres préinstallés, ainsi que la possibilité de définir des couleurs entièrement personnalisées.
-
Mode de synchronisation : Option pour choisir où stocker les fichiers de paramètres : localement pour chaque graphique ou dans le dossier commun du terminal pour une synchronisation automatique.
À l'avenir, des propriétés supplémentaires et la prise en charge de nouveaux objets pourront être ajoutées en fonction des demandes des utilisateurs.

Это лучшее что я видел для 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);
}
}
}
Извини! Пользовался старой версией. После обновления увидел кнопку выравнивания. Спасибо тебе большое! Ты ЛУЧШИЙ!!! Успехов тебе и вдохновения!