Новая версия платформы MetaTrader 5 build 5430: Улучшенные графики на движке Blend2D - страница 40
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Если запустить советник через отладчик 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 лет назад как-от нажимал создать Пользовательский индикатор, но уж точно не вводил туда ничего.
Получается он запомнил прошлую дефолтную заглушку и с тех пор держит её в памяти.
как правило - да, в новые поля подставляются прежние введённые данные.
просто есть такое ощущение, что эти поля ещё и сбрасываются при некоторых обновлениях.
просто есть такое ощущение, что эти поля ещё и сбрасываются при некоторых обновлениях.