Ошибки, баги, вопросы - страница 2952

 
Ilyas:

Возможно ли в дебагере при показе содержимого структуры иметь возможно удалять из наблюдаемых некоторые ее поля?


Есть несколько больших структур. Нужно глазами сравнивать их по пяти полям. Не получается.

 

Доброго времени суток! Помогите решить проблему.

Перед отправкой и проверкой торгового запроса в MT5-советнике использую следующий вариант определения type_filling:

// тип FILLING
int SYMBOL_FILLING = (int)SymbolInfoInteger(iNameSymbol, SYMBOL_FILLING_MODE);
switch(SYMBOL_FILLING)
{
   case SYMBOL_FILLING_FOK:   iЗапрос.type_filling = ORDER_FILLING_FOK;    break;
   case SYMBOL_FILLING_IOC:   iЗапрос.type_filling = ORDER_FILLING_IOC;    break;
   default:                   iЗапрос.type_filling = ORDER_FILLING_RETURN; break;
}

Но столкнулся с тем, что такая конструкция оказывается работает не на всех счетах, и не у всех брокеров, и после проверки готового запроса через OrderCheck, появляется ошибка 10030 (Указан неподдерживаемый тип исполнения ордера по остатку). При этом SYMBOL_FILLING = 3, и выбирается тип ORDER_FILLING_RETURN.

Каких-либо внешних библиотек (вроде CTrade) не использую. Подскажите или направьте меня пожалуйста туда, где я мог бы получить ответ на свой вопрос.

Заранее спасибо!

 
fxsaber:

Возможно ли в дебагере при показе содержимого структуры иметь возможно удалять из наблюдаемых некоторые ее поля?


Есть несколько больших структур. Нужно глазами сравнивать их по пяти полям. Не получается.

Лучше всего сделать вывод значения любой переменной по наведению на неё мыши в исходнике - так не нужно ничего добавлять в watch-list и поле любой вложенности доступно без цепочки разыменований (и соседних полей).

 

Еще один вопрос с кодом:

switch(EnumTypeSound) 
{
   default: return;
   case tSoundError:   PlaySound("stops.wav");  break;
   case tSoundAlert:   PlaySound("alert.wav");  break;
   case tSoundAlert2:  PlaySound("alert2.wav"); break;
   case tSoundExpert:  PlaySound("expert.wav"); break;
   case tSoundNews:    PlaySound("news.wav");   break;
   case tSoundOk:      PlaySound("ok.wav");     break;
   case tSoundTick:    PlaySound("tick.wav");   break;
   case tSoundTimeout: PlaySound("timeout.wav"); break;
}

по факту при попытке обратиться к 

PlaySound("stops.wav");

Возникает ошибка следующего характера: [Err: 5019] Файл не существует

Сам код находится в глубине проекта, который состоит из десятков файлов mqh и вызов этой функции осуществляется не напрямую с mq5 (так, на всякий случай уточнил).

В справке говориться: "Файл должен быть расположен в каталоге каталог_терминала\Sounds или его подкаталоге.", однако если открывать каталог данных (Файл - Открыть каталог данных), то такой папки там нет. А в установленной папке "C:\Program Files\MetaTrader 5" - она есть. Может быть это как-то влияет на запрос файла при вызове?

Сам файл stops.wav по пути "C:\Program Files\MetaTrader 5\Sounds\" - присутствует.

Хотелось бы решить эту нелепую ошибку))) Заранее спасибо!

[Удален]  
Vadim Lin:

Еще один вопрос с кодом:

по факту при попытке обратиться к 

Возникает ошибка следующего характера: [Err: 5019] Файл не существует

Сам код находится в глубине проекта, который состоит из десятков файлов mqh и вызов этой функции осуществляется не напрямую с mq5 (так, на всякий случай уточнил).

В справке говориться: "Файл должен быть расположен в каталоге каталог_терминала\Sounds или его подкаталоге.", однако если открывать каталог данных (Файл - Открыть каталог данных), то такой папки там нет. А в установленной папке "C:\Program Files\MetaTrader 5" - она есть. Может быть это как-то влияет на запрос файла при вызове?

Сам файл stops.wav по пути "C:\Program Files\MetaTrader 5\Sounds\" - присутствует.

Хотелось бы решить эту нелепую ошибку))) Заранее спасибо!

Вот так всё работает.

//+------------------------------------------------------------------+
//|                                                EnumTypeSound.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property script_show_inputs
//+------------------------------------------------------------------+
//| EnumTypeSound                                                    |
//+------------------------------------------------------------------+
enum EnumTypeSound
  {
   tSoundError,   // Stops
   tSoundAlert,   // Alert
   tSoundAlert2,  // Alert2
   tSoundExpert,  // Expert
   tSoundNews,    // News
   tSoundOk,      // Ok
   tSoundTick,    // Tick
   tSoundTimeout, // Timeout
  };
input EnumTypeSound TypeSound=tSoundError;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   switch(TypeSound)
     {
      default:
         return;
      case tSoundError:
         PlaySound("stops.wav");
         break;
      case tSoundAlert:
         PlaySound("alert.wav");
         break;
      case tSoundAlert2:
         PlaySound("alert2.wav");
         break;
      case tSoundExpert:
         PlaySound("expert.wav");
         break;
      case tSoundNews:
         PlaySound("news.wav");
         break;
      case tSoundOk:
         PlaySound("ok.wav");
         break;
      case tSoundTick:
         PlaySound("tick.wav");
         break;
      case tSoundTimeout:
         PlaySound("timeout.wav");
         break;
     }
  }
//+------------------------------------------------------------------+
 

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


Например, если отключить столбцы Время и Источник, то можно быстро в логах идти по спец-символу своего советника.

 
fxsaber:

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


Например, если отключить столбцы Время и Источник, то можно быстро в логах идти по спец-символу своего советника.

Лайк, не знал! Спасибо!

 
SanAlex:

Вот так всё работает.

Да блин(( Проверил, у меня сейчас тоже все работает... Но в некоторых местах почему-то выдает ошибку (в некоторых терминалах), может быть там папки Sound нет, буду копать в общем-то. Спасибо за ответ! Просто думал ВДРУГ во вложеных файлах структуры проекта может быть ограничение какое-то, о котором я не знал и не учитывал...

 

странно, как же так получается. билд 2755.

нули и переменные которым присваиваю значения из массива. а когда умножаю на что-то сами значения массива они в отладчике меняются верно.


 
Aleksey Mavrin:

странно, как же так получается. билд 2755.

нули и переменные которым присваиваю значения из массива. а когда умножаю на что-то сами значения массива они в отладчике меняются верно.


Обновитесь на бета-версию 2775, пожалуйста.

Это исправлено.