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

 

Сейчас в MetaEditor при работе над проектом для перемещения файлов проекта во вкладке "Project", например в новосозданную подпапку, необходимо выполнить целый "ритуал":

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

Предложение:
При перемещении файлов проекта во вкладке "Project", например в новосозданную подпапку:
- для открытых но неизмененных файлов автоматически обновлять их путь расположения.
- для измененных файлов - дополнительно запрашивать подтверждение: "Перенести с сохранением", "Перенести с потерей изменений" или же "Отменить операцию переноса".


 
Igor Makanu :

у меня памяти 12 Гб, ОС Windows 10 , свободной памяти около 8 Гб


этот тест мне нужен был, чтобы определить максимально допустимые длины строк в терминалах МТ4/МТ5

я сейчас хочу наладить обмен между терминалами через базу данных Redis 

Redis очень простая база данных и работает исключительно со строками (ключ - значение  --> strin - string)

вчера я сделал сериализацию POD-структур в Base64, при этом размер данных увеличивается примерно на 1/3 

я считаю, что даже в этом случае у меня есть возможность обмениваться структурами с размером по 400 Мб за одну транзакцию - это более чем достаточно для любых целей!  ;)

Интересно, я проверю этот "Redis", я этого не знаю.

Поэтому я проверил ваш код на своей стороне, я остановил его через 1 минуту, слишком медленно. Так что я немного изменил ;-)

#define STEP      1000000     // 1 million
#define MILLION   1000000
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
  printf("m_physical = %i MB, m_total = %i MB, m_available = %i MB, m_used = %i MB, limit = %i MB, used = %i MB",
         TerminalInfoInteger(TERMINAL_MEMORY_PHYSICAL), TerminalInfoInteger(TERMINAL_MEMORY_TOTAL),
         TerminalInfoInteger(TERMINAL_MEMORY_AVAILABLE), TerminalInfoInteger(TERMINAL_MEMORY_USED),
         MQLInfoInteger(MQL_MEMORY_LIMIT),MQLInfoInteger(MQL_MEMORY_USED));

  string s = "";
  int size=INT_MAX;

  do
    {
    size-=STEP;
    }
  while(!StringInit(s,size,USHORT_MAX));

  long length = StringLen(s);
  printf("StringLen = %lli millions characters, m_used = %i MB, used = %i MB", length/MILLION, TerminalInfoInteger(TERMINAL_MEMORY_USED),MQLInfoInteger(MQL_MEMORY_USED));
  }

2020.02.13 15: 50: 51.199 1111R-2646 (EURUSD, M1) m_physical = 16230 МБ, m_total = 32460 МБ, m_available = 31786 МБ, m_used = 674 МБ, лимит = 8388608 МБ, используется = 0 МБ
2020.02.13 15: 50: 51.763 1111R-2646 (EURUSD, M1) StringLen = 1073 миллиона символов , m_used = 2722 МБ, использовано = 2048 МБ

Менее 1 секунды. Наконец, существует ограничение mql5, которое составляет 2 ГБ или около 1,073 миллиарда символов.

 

Поясните, почему в кодебазу нельзя загрузить ico-файлы? Они являются стандартной частью программы, подключаются средствами MQL. То, что они запрещены, явно неправильно. Но дальше больше.

Правильно приготовленный ico можно переименовать в png без ущерба для работы: он по-прежнему нормально линкуется в программу (с помощью #property icon "mql5pack.png") и отображается в диалоге свойств. Но все это прокатывает только локально. Я загрузил такой png в кодебазу и при проверке исходника получил ошибку:

mql5pack.mq5(27,11) : error 341: cannot open icon file 'mql5pack.png'
main file not found

Прошу администрацию mql5 починить загрузку или/и хотя бы проверку иконок.

ПС. Поправочка, похоже, что сайт молча съедает png-файл, то есть дает его загрузить, но потом его нет в списке компилируемых файлов. Пробовал MQL5\Images, MQL5\Files - ничего на сервер не грузится, но молча, без ошибок. Ошибку выдает уже при проверке.

 
Подскажите, как обойти ошибку компиляции?
struct STRUCT
{
  static const int Array[];
  int Array2[sizeof(STRUCT::Array)]; // unresolved static variable 'STRUCT::Array'
};

static const int STRUCT::Array[] = {1, 2};

void OnStart()
{
  static const int Array[] = {1, 2};
  
  int Array2[sizeof(Array)]; // OK
}
 

Народ, как сделать, чтобы в мт5 открытые ордера не менялись местами?

 
Сергей Проценко:

Народ, как сделать, чтобы открытые ордера не менялись местами?

Это, простите, как они меняются местами?

 
Сергей Таболин:

Это, простите, как они меняются местами?

В зависимости от прибыли, если прибыль больше, передвигается вниз, у другого ордера прибыль становится больше, меняются местами. Если по евро прибыль станет больше, чем по золоту, то ордер по евро будет нижним, а по золоту будет выше него.
 
Сергей Проценко:
В зависимости от прибыли, если прибыль больше, передвигается вниз, у другого ордера прибыль становится больше, меняются местами.

Произведите клик по заголовку одного из столбцов: Символ, Тикет, Время

 
Vladimir Karputov:

Произведите клик по заголовку одного из столбцов: Символ, Тикет, Время

Только такой результат.
 
Сергей Проценко:
Только такой результат.

Произведите клик по заголовку одного из столбцов: Символ, Тикет, Время. 

Клик ЛЕВОЙ КЛАВИШЕЙ. Клик ПО ЗАГОЛОВКУ.