просто есть такое ощущение, что эти поля ещё и сбрасываются при некоторых обновлениях.
Я ни разу не последние пару лет не открывал диалог создания именно индикатора. Сейчас попробовал - стоит (с)2026, что я вводил при создании скрипта. И ни разу не сбрасывалось за мою жизнь. Кроме, наверное, при чистой установке или переходе на/с портативной.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Если запустить советник через отладчик MetaEditor 5 в тестере, то при закрытии MetaEditor 5 - окно тестера не удаляется автоматически.
Версию новее не дает LiveUpdate.
что за чудеса
на все графики один символ установился, скинул робота, оформление
второй раз уже
В локальной документации на русском пропущен ONNX_DATA_TYPE_UINT8.
UPD: А также ONNX_DATA_TYPE_FLOAT8E4M3FN, ONNX_DATA_TYPE_FLOAT8E4M3FNUZ, ONNX_DATA_TYPE_FLOAT8E5M2, ONNX_DATA_TYPE_FLOAT8E5M2FNUZ.
Мелкий недочёт.
Когда создаёшь новый Пользовательский индикатор, то копирайт 2021 по дефолту.
БАГ со шрифтом Windings!
b5509
//Просьба решить баг в терминале или дать рабочее решение для использования wingdings для объектов
Как интерпретировать результат:
Если красные значки (буфер) видны, а синие (объекты) — квадраты:
Проблема в том, как терминал обращается к шрифтам при рендеринге объектов. Это подтверждает баг в билде или конфликт с системным реестром Windows.
Если и те, и другие — квадраты:
Шрифт Wingdings поврежден в самой системе Windows или подменяется "пустышкой" в ресурсах терминала.
//+------------------------------------------------------------------+
//| FontTest_MT5.mq5 |
//| Copyright 2026, Gemini 3 PRO |
//+------------------------------------------------------------------+
#property copyright "Copyright 2026"
#property version "1.00"
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots 1
// Настройки буфера (Верхний ряд)
#property indicator_label1 "Buffer Icons"
#property indicator_type1 DRAW_ARROW
#property indicator_color1 clrRed
#property indicator_width1 5
double Buffer[];
int codes[] = {108, 110, 158, 159, 252, 254}; // Набор кодов Wingdings
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
SetIndexBuffer(0, Buffer, INDICATOR_DATA);
// Устанавливаем код значка для буфера (по умолчанию первый из списка)
PlotIndexSetInteger(0, PLOT_ARROW, codes[0]);
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
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 &spread[],
const int &real_volume[])
{
if(rates_total < 10) return(0);
// 1. Отрисовка через БУФЕР (Красные значки сверху)
// Мы просто ставим разные значки на последние бары
int start = rates_total - 1;
for(int i=0; i<ArraySize(codes); i++)
{
int barIndex = start - (i * 2); // Ставим через один бар
Buffer[barIndex] = high[barIndex] + 50 * _Point;
// Для демонстрации разных значков в одном буфере в МТ5
// лучше использовать разные буферы, но для теста сменим код стрелки глобально:
// (В реальном индикаторе будет виден последний установленный код)
PlotIndexSetInteger(0, PLOT_ARROW, 159);
}
// 2. Отрисовка через ОБЪЕКТЫ (Синие значки снизу)
for(int i=0; i<ArraySize(codes); i++)
{
string name = "TestObj_" + (string)i;
datetime objTime = time[start - (i * 2)];
double objPrice = low[start - (i * 2)] - 50 * _Point;
if(ObjectFind(0, name) < 0)
ObjectCreate(0, name, OBJ_TEXT, 0, objTime, objPrice);
ObjectMove(0, name, 0, objTime, objPrice);
ObjectSetString(0, name, OBJPROP_TEXT, ShortToString((ushort)codes[i]));
ObjectSetString(0, name, OBJPROP_FONT, "Wingdings");
ObjectSetInteger(0, name, OBJPROP_FONTSIZE, 20);
ObjectSetInteger(0, name, OBJPROP_COLOR, clrBlue);
ObjectSetInteger(0, name, OBJPROP_ANCHOR, ANCHOR_TOP);
}
return(rates_total);
}
//+------------------------------------------------------------------+
//| Deinit |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
ObjectsDeleteAll(0, "TestObj_");
}
Мелкий недочёт.
Когда создаёшь новый Пользовательский индикатор, то копирайт 2021 по дефолту.
Мелкий недочёт.
Когда создаёшь новый Пользовательский индикатор, то копирайт 2021 по дефолту.
Там тот стоит, который был введён последний раз
Видимо 5 лет назад как-от нажимал создать Пользовательский индикатор, но уж точно не вводил туда ничего.
Получается он запомнил прошлую дефолтную заглушку и с тех пор держит её в памяти.
как правило - да, в новые поля подставляются прежние введённые данные.
просто есть такое ощущение, что эти поля ещё и сбрасываются при некоторых обновлениях.
просто есть такое ощущение, что эти поля ещё и сбрасываются при некоторых обновлениях.