Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1497

 
maxvoronin74 #:
Интересно, можно ли графический текстовый объект расположить, например, на боковой шкале подокна с графиком WPR?

Нет, на шкале не получится. Можно в окне индикатора совсем рядом со шкалой, но не самой шкале.

 
Aleksandr Slavskii #:

Нет, на шкале не получится. Можно в окне индикатора совсем рядом со шкалой, но не самой шкале.

Понял, спасибо.
 

Я несколько раз пытался понять, как работает отладка, но после нескольких неудачных попыток отказался от этой идеи. Пытаюсь разобраться еще раз, поэтому понадобится помощь. Например, на прикрепленной картинке ниже я создал простой код для просмотра Выражений и Значений в процессе отладки, но я их не вижу, но в документации видны Выражений и Значений. В чем проблема?


Отладка кода - Разработка программ - Справка по MetaEditor
  • www.metatrader5.com
В MetaEditor встроен отладчик — инструмент, который позволяет проверить работу программы по шагам (по отдельным функциям). Вы расставляете в коде...
 

Nauris Zukas #:

... но я их не вижу ...

Для того, чтобы что-то увидеть, нужно что-нибудь добавить в наблюдение при помощи сочетаний клавиш Shift+F9. Шаги для просмотра каждой строчки кода делаете путём нажатия на клавишу F11.

С уважением, Владимир.

 
Nauris Zukas #:

Я несколько раз пытался понять, как работает отладка, но после нескольких неудачных попыток отказался от этой идеи. Пытаюсь разобраться еще раз, поэтому понадобится помощь. Например, на прикрепленной картинке ниже я создал простой код для просмотра Выражений и Значений в процессе отладки, но я их не вижу, но в документации видны Выражений и Значений. В чем проблема?


Обязательно разберитесь, очень полезная штука!
 
В ютубе гляньте. 
Там вроде, Алексей Волчанский рассказывает. 
 

Спасибо! Я полдня поработал с отладчиком и понял, почему не использую его каждый день — это занимает слишком много времени, мне проще просто поставить Print в функцию, чтобы быстро получить информацию.

Но я начал это потому, что хотел понять, почему всем элементам массива сразу присваивается 0. Это уже число по своей природе и что может привести к неправильному результату в дальнейшем. Как бы вы поступили? ArrayInitialize(arr1,EMPTY_VALUE) это лучшее решение или что-то другое?


 
Nauris Zukas #:

Но я начал это потому, что хотел понять, почему всем элементам массива сразу присваивается 0. Это уже число по своей природе и что может привести к неправильному результату в дальнейшем. Как бы вы поступили? ArrayInitialize(arr1,EMPTY_VALUE) это лучшее решение или что-то другое?

Массивам не присваиваются значения нулей. Это вам просто повезло, скажем так случайно.

Если не инициализировать массив, то в нём зачастую оказывается мусор.

на вашем скрине, где вы указываете, что там не корректное значение вместо нуля могло оказаться любое число.

 
Здравствуйте, подскажите пожалуйста.

Сохраняю данные в файл.
void OrderExport(MqlTradeRequest &request)
  {
   static long trans = 0;
   static long keepTrans = 0;
   string file = "OrderExchange" + (request.magic > 0 ? IntegerToString(request.magic) : "") + ".csv";
   int handle = FileOpen(file, FILE_CSV | FILE_READ | FILE_SHARE_READ | FILE_WRITE | FILE_SHARE_WRITE | (Common ? FILE_COMMON : 0), ';');
   if(handle != INVALID_HANDLE)
     {
      FileSeek(handle, 0, SEEK_END);
      long tr = TimeGMT();
      trans = (tr > trans) ? tr : (trans + 1);
      FileWrite(handle,
                trans,
                request.action,
                request.magic,

Достаю данные из файла

void OrderImport(MqlTradeRequest &aReq[], int magic, string symbol)
  {
   ArrayFree(aReq);
   long tr;
   static long trans = 0;
   if(trans == 0)
      trans = TimeGMT() - 3;
   string file = "OrderExchange" + (magic > 0 ? IntegerToString(magic) : "") + ".csv";
   int handle = FileOpen(file, FILE_TXT | FILE_READ | FILE_SHARE_READ | FILE_ANSI | (Common ? FILE_COMMON : 0));
   if(handle != INVALID_HANDLE)
     {
      FileSeek(handle, 0, SEEK_SET);
      while(!FileIsEnding(handle))
        {
         string s = FileReadString(handle);
         string aS[];
         int cnt = StringSplit(s, ';', aS);
         if(cnt <= 0)
            continue;
         //---   ПРОБЛЕМНОЕ МЕСТО ОТ
          tr = StringToInteger(aS[0]);
         //---    ПРОБЛЕМНОЕ МЕСТО ДО
         if(tr <= trans)
            continue;

GetLastError() Ошибку выдаёт что -  Испорченный параметр типа string

Если выводить массив aS[0] через Print(), то шрифт отличается от остального.


Если просто выводить параметр tr , то = 0

 
Mikhail Toptunov #:
Здравствуйте, подскажите пожалуйста.

Сохраняю данные в файл.

Достаю данные из файла

GetLastError() Ошибку выдаёт что -  Испорченный параметр типа string

Если выводить массив aS[0] через Print(), то шрифт отличается от остального.


Если просто выводить параметр tr , то = 0

сам по себе файл не пробовали посмотреть ?

вы записываете бинарные значения, а читаете текстовую строку..