Objects Styler
- Yardımcı programlar
- Sürüm: 3.1
- Güncellendi: 17 Ağustos 2026
Objects Styler grafik üzerinde standart grafik nesnelerinin özelliklerini doğrudan düzenlemek için bir bağlama duyarlı panel sağlayan bir yardımcı programdır. Temel özelliği, kullanıcıların nesnelere karmaşık stil kümelerini kaydetmesine, yönetmesine ve anında uygulamasına olanak tanıyan güçlü bir şablon sistemidir.
Temel Özellikler
Arayüz ve Etkileşim
-
Bağlamsal Aktivasyon: Panel, bir grafik nesnesine tıklayarak (veya Shift + tıklayarak) çağrılır. Tüm standart nesneleri ve özelliklerinin çoğunu destekler.
-
Sürüklenebilir Arayüz: Panel, grafiğin herhangi bir alanına serbestçe taşınabilir.
-
Açılır Pencereler: Stil seçimi, renk paleti ve zaman dilimi listesi gibi ek seçenekler kompakt açılır pencerelerde açılır, ana arayüzü düzenli tutar.
Şablon Yönetim Sistemi
-
Stilleri Kaydet ve Uygula: Bir nesnenin özelliklerinin tam setini adlandırılmış şablon olarak kaydedin. Şablonlar tek tıklamayla uygulanır.
-
Nesne Türüne Özel: Şablonlar belirli bir nesne türü için kaydedilir. Örneğin, bir trend çizgisi için oluşturulan stiller yalnızca diğer trend çizgilerini düzenlerken kullanılabilir.
-
Favoriler (Sabitleme): Sık kullanılan şablonlar hızlı erişim için sabitlenebilir. Sabitlenmiş şablonlar her zaman görünür olurken, diğerleri ek bir pencerede gizlenir.
-
Senkronizasyon ve Taşınabilirlik:
-
Şablonlardaki ve renk paletindeki değişiklikler, diğer grafiklerdeki indikatörün tüm örneklerine otomatik olarak senkronize edilebilir.
-
Ayar dosyaları ayrı kaydedilir, bu da diğer bilgisayarlara veya farklı terminallere kolayca aktarılmasını sağlar.
-
Nesne Özelliği Kontrolü
-
Genel Özellikler: Renk, genişlik ve çizgi stilini düzenlemek için doğrudan erişim. Ayrıca standart parametrelerin çoğunu kontrol etme imkânı sunar: dolgu, arka planda çizim, ışınlar, simgeler, metin vb.
-
Çok Düzeyli Nesne Düzenleme (Fibonacci araçları, kanallar, genişlemeler vb. için):
-
her seviye için değer, metin açıklaması, renk, genişlik ve çizgi stili üzerinde bireysel kontrol.
-
Seviyeleri ekleme ve kaldırma işlevselliği.
-
Renk Paleti
-
54 yuva ile renklere hızlı erişim.
-
Görsel Düzenleyici (HSV Seçici) ile hassas renk ayarı.
-
Paletteki herhangi bir rengi değiştirme ve kaydetme imkânı.
İndikatör Ayarları
-
Arayüz Ölçeklendirme: Panelin boyutunu ekran çözünürlüğünüze uyarlamak için bir giriş parametresi.
-
Aktivasyon Yöntemi: Ayarlarda paneli nasıl çağıracağınızı seçin (basit tıklama veya Shift + tıklama).
-
Renk Şemaları: Önceden yüklenmiş açık ve koyu temalar ile tamamen özel renkler belirleme seçeneği.
-
Senkronizasyon Modu: Ayar dosyalarının nerede depolanacağını seçme seçeneği: her grafik için yerel olarak veya otomatik senkronizasyon için terminalin ortak klasöründe.
Gelecekte, kullanıcı taleplerine göre ek özellikler ve yeni nesneler için destek eklenebilir.

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