Новая версия платформы MetaTrader 5 build 5430: Улучшенные графики на движке Blend2D - страница 28

 
Maxim Kuznetsov #:
Как же это удобно! Ответов больше не будет.
 
Anatoli Kazharski #:
У меня была недавно похожая проблема. Терминал после запуска сразу же закрывался.

Проблема оказалась в битом файле \MetaTrader5\config\terminal.ini

1. Сделайте сначала копию этого файла в другое место и удалите из \MetaTrader5\config
2. Попробуйте запустить терминал снова
помогло спасибо.
 
fxsaber #:
При закрытии появляется сообщение на пять секунд. Поэтому можно понять, что на самом деле произошло. Странно, что в Терминале нет защиты.
Обычно в "Настройках" бывает пунктик "Спрашивать при закрытии", но это терминала, делать ли подобное для графиков с EA вопрос открытый
 

где тут компилятор нашёл warning про конверсии int->ushort ??

warning указывает на фрагмент state&((ushort)0x8000)

но переменная state - ushort, константа (0x8000 на всяк.случай принудительно приведена) - ushort ; и аргумент куда передаются тоже ushort, где он нашёл int ??

 
Maxim Kuznetsov #:

где тут компилятор нашёл warning про конверсии int->ushort ??

warning указывает на фрагмент state&((ushort)0x8000)

но переменная state - ushort, константа (0x8000 на всяк.случай принудительно приведена) - ushort ; и аргумент куда передаются тоже ushort, где он нашёл int ??

покрутил-повертел: вывод типов похоже всё-же крив.. результат оператора & над двумя ushort считается за uint. Или даже за знаковый int, по warning не понять, то так то эдак

 
fxsaber #:

А если появятся штатные, то текущее сразу станет архитектурно правильно?

Может стать формально правильным (но неудобным де факто для использования в зависимости от сценария, если не починят предупреждение о выгрузке фреймового советника), если в документации изложат все способы работы с mqd и сам формат. Сейчас получение и анализ фреймов явным образом прописаны только для обработчика OnTesterPass.
 

Сегодня неожиданно вылезло:

Это на

И, соответственно, 5430 отвалился от сети.

При этом боевой 5120

в той же виртуалке и на том же счёте продолжает нормально работать, с гораздо большим к-вом открытых графиков и работающих на них роботов.

 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Как откатиться к предыдущей версии MT5?

Maxim Kuznetsov, 2025.12.26 09:19

на днях столкнулся с ошибкой 539 - она возникает (по крайней мере в моём случае так было) когда у индикатора не заданы property indicator_typeN indicator_styleN ... даже если потом они переустанавливаются через PlotIndexSetXXX

#property indicator_buffers 1
#property indicator_plots 1
#property indicator_chart_window

// вот без этих property получается 539:
#property indicator_type1 DRAW_LINE
#property indicator_style1 STYLE_SOLID
#property indicator_color1 clrRed
#property indicator_width1 1

//--- input parameters
input ENUM_MA_METHOD  MA_METHOD=MODE_SMA;
input int MA_PERIOD=30;
input ENUM_APPLIED_PRICE MA_PRICE=PRICE_CLOSE;
input int MA_SHIFT=0;
input color MA_COLOR=clrRed;
input ENUM_LINE_STYLE MA_STYLE=STYLE_SOLID;
input int MA_WIDTH=1;
input string MA_NAME="StyledMA";

int maHandle=INVALID_HANDLE;
double maData[];
int OnInit()
{
   maHandle=iMA(_Symbol,_Period,MA_PERIOD,0,MA_METHOD,MA_PRICE);
   if (maHandle==INVALID_HANDLE) {
      Alert(StringFormat("iMA() failed %d",GetLastError()));
      return INIT_FAILED;
   }
   SetIndexBuffer(0,maData,INDICATOR_DATA);
   ArraySetAsSeries(maData,true);
   PlotIndexSetInteger(0,PLOT_SHIFT,MA_SHIFT);
   PlotIndexSetInteger(0,PLOT_LINE_STYLE,MA_STYLE);
   PlotIndexSetInteger(0,PLOT_LINE_WIDTH,MA_WIDTH);
   PlotIndexSetInteger(0,PLOT_LINE_COLOR,MA_COLOR);
   if (MA_NAME!="") {
      IndicatorSetString(INDICATOR_SHORTNAME,MA_NAME);
   }
   return(INIT_SUCCEEDED);
}

 

b5327

Видимо просто не закодирована возможность экспорта результатов оптимизации после оптимизации по всем символам:


Ссылки из тестера на экспорт нет (только в XML), но файл StepTpSl.all_symbols.M1.... .opt в папке имеется. Хорошо бы сделать.

 
b5488 (и b5430), в прицепе советник (родился в обсуждении), который вызывает краш в Тестере.
2025.12.01 00:05:30   Access violation at 0x000001A3EA6E4030 write to 0x000001A3EA6E4030
2025.12.01 00:05:30      crash -->  000001A3EA6E4030 0100              add        [rax], eax
2025.12.01 00:05:30                 000001A3EA6E4032 0000              add        [rax], al
2025.12.01 00:05:30   
2025.12.01 00:05:30   00: 0x000001A3EA6E4030
2025.12.01 00:05:30   01: 0x00000001EA6E4010
2025.12.01 00:05:30   02: 0x000001A3EA6E4428
2025.12.01 00:05:30   03: 0x000001A3EA6DA428
2025.12.01 00:05:30   04: 0x000001A3EA6DA430
2025.12.01 00:05:30   05: 0x000001A3EA6E4120
2025.12.01 00:05:30   06: 0x000001A3EA6E4030
2025.12.01 00:05:30   07: 0x000001A3EA6DBD18
2025.12.01 00:05:30   08: 0x000001A3EA6E4010
2025.12.01 00:05:30   09: 0x000001A3EA6D2C72
2025.12.01 00:05:30   10: 0x0000000000310032
2025.12.01 00:05:30   
OnTester critical error


Шаги.

  1. Запускаю (CTRL+F5 из ME) дебаг в Тестере (без визуализатора).
  2. На точке останова (25-я строка) останавливаю дебаг (SHIFT+F5 из ME).
  3. Переключаюсь на Тестер и жму в нем Старт.
  4. Смотрю логи Тестера - краш.
Файлы: