Новая версия платформы MetaTrader 5 build 2560: Улучшения во встроенной системе обучения - страница 45

 
Carl Schreiber:

Мой код работает отлично, за исключением этой глупой ошибки 4603 (которая больше не вызывает ошибок) и где функция была выполнена несколько раз прямо перед этим без каких-либо ошибок.

My code is working perfectly except that stupid error 4603 (which causes no further errors) and where the function was executed several time right before that without any error.

Если речь о проблеме в коде в этом посте, то там есть ошибка: указано #property indicator_plots 7, а потом делается вызов PlotIndexSetDouble(7, ...), хотя индексация plot должна укладываться в диапазон [0, 6].

Новая версия платформы MetaTrader 5 build 2560: Улучшения во встроенной системе обучения
Новая версия платформы MetaTrader 5 build 2560: Улучшения во встроенной системе обучения
  • 2020.09.09
  • www.mql5.com
В пятницу 24 июля 2020 года будет выпущена обновленная версия платформы MetaTrader 5...
 
Stanislav Korotky :

Если речь о проблеме в коде в этом посте , то там есть ошибка: указано #property indicator_plots 7, а потом делается вызов PlotIndexSetDouble(7, ...), хотя индексация plot должна укладываться в диапазон [0, 6].

Если я изменю #property indicator_plots 7 на #property indicator_plots 8, значения, связанные с буферами, будут смешаны. Значения первого буфера [# 0] повторяются во второй строке в окне данных.

Это решение, которое я нашел, представляет собой решение, которое работает на диаграмме (два цвета) и в окне данных (я вижу каждый буфер, которому он принадлежит, и со значениями, которые я назначил), за исключением ошибки 4603.

If I change #property indicator_plots   7 to #property indicator_plots   8 the values associated to the buffers are mixed up. The values of the first buffer [#0] is repeated at the second line in the data window.

This solution I found is a solution that works on the chart (two colors) and the data window (I see each buffer where it belongs and with the values I assigned) - except that 4603 error.

 
Несколько раз в день нарываюсь на внештатное закрытие ME, когда жму CTRL+- или ALT+LEFT, чтобы переместиться обратно после нескольких ALT+G.
 
Carl Schreiber:

Если я изменю #property indicator_plots 7 на #property indicator_plots 8, значения, связанные с буферами, будут смешаны. Значения первого буфера [# 0] повторяются во второй строке в окне данных.

Это решение, которое я нашел, представляет собой решение, которое работает на диаграмме (два цвета) и в окне данных (я вижу каждый буфер, которому он принадлежит, и со значениями, которые я назначил), за исключением ошибки 4603.

If I change #property indicator_plots   7 to #property indicator_plots   8 the values associated to the buffers are mixed up. The values of the first buffer [#0] is repeated at the second line in the data window.

This solution I found is a solution that works on the chart (two colors) and the data window (I see each buffer where it belongs and with the values I assigned) - except that 4603 error.

Не знаю специфики задачи, но индексирование буферов и plot независимо. Просто установите корректный счетчик и для того, и для другого. И если при этом возникают какие-то другие проблемы с буферами, то нужно разбираться с ними (возможно неверный порядок или что-то еще), а не инициировать другую ошибку - в данном случае 4603.

 

б. 2596, демо-счет в MQ

Не знаю, проблема в кавычках или просто несовпадение буферов:

b. 2596, demo account with MQ

I don't know whether it is a problem of the quotes or just a mismatch of the buffers:


 

build 2596

FileSelectDialog не работает в индикаторе. Файл прилагаю. Код взят из хелпа:
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
//---
        if(id==CHARTEVENT_CLICK) {
                   string filenames[];
                   if( FileSelectDialog("Выберите файлы для загрузки", NULL, 
                                       "INI files (*.ini)|*.ini|All files (*.*)|*.*", 
                                       FSD_FILE_MUST_EXIST, filenames) > 0 )    {
                      //--- выведем имя каждого выбранного файла
                      int total=ArraySize(filenames);
                      for(int i=0; i<total; i++)
                         Print(i, ": ", filenames[i]);
                        } else {
                     Print("Files not selected");
                        }
        }

  }

То же самое, но в скрипте, прекрасно работает.

Файлы:
 
Vladimir Belozercev:

FileSelectDialog не работает в индикаторе.

В индикаторах ничто синхронное не работает из-за архитектурной особенности.

 
fxsaber:

В индикаторах ничто синхронное не работает из-за архитектурной особенности.

Ну это не совсем верно...Работает, просто при этом поток котировок не обрабатывается, пока открыт диалог (он мне в данном случае и не нужен). MessageBox тоже останавливает поток, но при этом прекрасно работает.

И вопросов бы не было, если бы в хелпе не было написано:

"Функцию не рекомендуется использовать в пользовательских индикаторах, так как вызов FileSelectDialog() приостанавливает работу потока исполнения индикатора на всё время ожидания ответа пользователя."
 

МТ5 билд 2596 от 10 сент. 2020 творит что-то непонятное.

Вполне себе корректно работающие индикаторы, скомпилированные этим билдом,

превращаются в какую-то ерунду, перестают считать правильно.

Это у меня одного такая лажа или есть еще ?

Причина обращения: