Objects Styler
- Utilitários
- Versão: 3.1
- Atualizado: 17 agosto 2026
Objects Styler é um utilitário que fornece um painel sensível ao contexto para editar as propriedades de objetos gráficos padrão diretamente no gráfico. Seu principal recurso é um poderoso sistema de modelos que permite aos usuários salvar, gerenciar e aplicar instantaneamente conjuntos complexos de estilos aos objetos.
Recursos principais
Interface e interação
-
Ativação contextual: O painel é acionado clicando (ou Shift + clicando) em um objeto gráfico. Ele suporta todos os objetos padrão e a maioria de suas propriedades.
-
Interface arrastável: O painel pode ser movido livremente para qualquer área do gráfico.
-
Janelas pop-up: Opções adicionais, como seleção de estilo, a paleta de cores e a lista de períodos, abrem em janelas pop-up compactas, mantendo a interface principal organizada.
Sistema de gerenciamento de modelos
-
Salvar e aplicar estilos: Salve um conjunto completo de propriedades de um objeto como um modelo com nome. Os modelos são aplicados com um único clique.
-
Específico por tipo de objeto: Os modelos são salvos para um tipo específico de objeto. Por exemplo, estilos criados para uma linha de tendência só estarão disponíveis ao editar outras linhas de tendência.
-
Favoritos (fixação): Modelos usados com frequência podem ser fixados para acesso rápido. Eles sempre estarão visíveis, enquanto os demais ficam ocultos em uma janela adicional.
-
Sincronização e portabilidade:
-
As alterações nos modelos e na paleta de cores podem ser sincronizadas automaticamente em todas as instâncias do indicador em outros gráficos.
-
Os arquivos de configuração são salvos separadamente, permitindo fácil transferência para outros computadores ou terminais diferentes.
-
Controle de propriedades do objeto
-
Propriedades gerais: Acesso direto para editar cor, largura e estilo de linha. Também fornece controle sobre a maioria dos parâmetros padrão: preenchimento, desenhar no fundo, raios, ícones, texto, etc.
-
Edição de objetos em vários níveis (para ferramentas de Fibonacci, canais, expansões, etc.):
-
Controle individual sobre o valor, descrição de texto, cor, largura e estilo de linha para cada nível.
-
Funcionalidade para adicionar e remover níveis.
-
Paleta de cores
-
54 slots para acesso rápido a cores.
-
Editor visual (seletor HSV) para ajuste preciso de cores.
-
Capacidade de modificar e salvar qualquer cor na paleta.
Configurações do indicador
-
Escala da interface: Um parâmetro de entrada para adaptar o tamanho do painel à resolução da sua tela.
-
Método de ativação: Escolha como invocar o painel nas configurações (um simples clique ou Shift + clique).
-
Esquemas de cores: Temas claro e escuro pré-instalados, além da opção de definir cores totalmente personalizadas.
-
Modo de sincronização: Opção para escolher onde armazenar os arquivos de configuração: localmente para cada gráfico ou na pasta comum do terminal para sincronização automática.
No futuro, propriedades adicionais e suporte a novos objetos poderão ser adicionados com base nas solicitações dos usuários.

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