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

 
vinnipyx:
Добрый день. У меня в МТ5 появился такой косяк: он не сохраняет настройки, несмотря на поставленную галочку. Конкретно - при каждом запуске оказываются скрытыми все панели инструментов, каждый раз их снова нужно открывать. При следующем запуске панели появляются ненадолго, но следом скрываются (видимо после установления связи с брокером). Как это поправить ( брокер открытие)?


F11 случайно не нажимали?

Полный экран

Полный экран

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

 
Vladimir Karputov:


F11 случайно не нажимали?

Полный экран

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

Большое человеческое спасибо!  Меня уже за две недели такая ситуация достала. Да, видимо случайно на ф1 нажал.
 
fxsaber:

Нужно получить баровую/тиковую историю на несколько тысяч последних единиц сразу по всем символам в Обзоре рынка (несколько сотен). И обновлять ее реал-тайм.

На подобные скринеры архитектура MT5 оптимизирована? Будет ли новый вид программ способен без костылей тянуть такие задачи?

Что нужно, чтобы поднять все кэши из холодного состояния и сделать их актуальными?

И как сделать, чтобы тестер остался жив при запуске скринера?


зачем вам скринер в тестере я не знаю. а об одной особенности мт5 я уже спрашивал тут - холодный запуск в мт5 медленнее мт4 в 200 раз примерно. к тому же если вы хотите скринер типа финвиза,с тех.индикаторами, то тут же вроде тоже жаловались,что каждый хэндл отжирает кучу памяти,с чем МК обещали бороться. То есть,если будет скринить с какой-то периодичностью обзор рынка,то нужно нехило памяти,а для первого запуска кучу времени.
 
kaus_bonus:

зачем вам скринер в тестере я не знаю.
Это мультивалютник сразу по сотне символов, где в каждом OnTimer анализируется тиковая история всех символов.
 
fxsaber:
Это мультивалютник сразу по сотне символов, где в каждом OnTimer анализируется тиковая история всех символов.


нормальный способ самоубийства)) 

при запуске в тестере все же тиковые данные переподготавливаются?! 1 месяц/тикер примерно 100МБ. если по всему обзору рынка,то..винт должен быть резиновый,а сколько времени это займет? 

а если вспомнить,что кэш тестерного агента очищается через 5 минут простоя агента,представляете? вы готовили-готовили данные час-два,отошли на 5 мин,и все,придется начинать заново.

 
kaus_bonus:

нормальный способ самоубийства)) 

Поэтому и вопросы. Если правильно понял, то в S#-инфраструктуре тестер справляется. Возможно, ошибаюсь.
 

Похоже, привык к MT5, т.к. совсем не помню, чтобы в MT4  в журнал "Эксперты" шли записи от выполнения OrderSend.

С какого MT4-билда такое самовольное обращение с логом? В MT5 только Print и подобные спец. действия пользователя (+ошибки исполнения и кнопка автоторговли) способны делать туда записи. Или в MT4 так было всегда?

 
fxsaber:

Нужно получить баровую/тиковую историю на несколько тысяч последних единиц сразу по всем символам в Обзоре рынка (несколько сотен). И обновлять ее реал-тайм.

На подобные скринеры архитектура MT5 оптимизирована? Будет ли новый вид программ способен без костылей тянуть такие задачи?

Что нужно, чтобы поднять все кэши из холодного состояния и сделать их актуальными?

Разогрев кэшей
#define _CS(A) ((!IsStopped()) && (A))
#define TOSTRING(A) #A + " = " + (string)(A) + "\n"

void OnStart()
{
  ulong FullCycle = 0;
  MqlTick Ticks[];
  
  while (_CS(true))
  {
    const ulong StartTime = GetMicrosecondCount();
    
    for (int i = SymbolsTotal(true) - 1; _CS(i >= 0); i--)
      Comment(TOSTRING(SymbolsTotal(true)) + TOSTRING(SymbolName(i, true)) +
              TOSTRING(i) + TOSTRING(CopyTicks(SymbolName(i, true), Ticks)) +
              TOSTRING(MQLInfoInteger(MQL_MEMORY_USED)) + TOSTRING(MQLInfoInteger(MQL_MEMORY_LIMIT)) +
              TOSTRING(FullCycle));
              
    FullCycle = GetMicrosecondCount() - StartTime;              
  }
}

По выполнению скрипта хорошо видно, что CopyTicks в скриптах не является асинхронной. MQL_MEMORY_USED врет.

И главное, что-то кэши спотыкаются (Metaquotes-Demo)

Просьба запустить у себя с количеством символом в Обзоре рынка не меньше сотни.

При чем проблема с кэшами только на некоторых символах заметна. Остальные - норм.

Похоже, затык в CopyTicks на таких символах

 
Konstantin:

1. Когда будет описание union в документации?

2. Это замена простым структурам?

3. будут ли поддерживать union приведение типа как описано для структур в документации?

1. Добавлено Объединение (union)

2. Не совсем - это возможность получать разное представление данных

3. Нет

 

MT5 1598

void OnStart()
{
  string Array[];
  
  ArrayInitialize(Array, "");
}

Лог компилятора

'ArrayInitialize' - no one of the overloads can be applied to the function call Test2.mq5       5       3
could be one of 8 function(s)   Test2.mq5       5       3
   built-in 'ArrayInitialize'   Test2.mq5       5       3
   built-in 'ArrayInitialize'   Test2.mq5       5       3
   built-in 'ArrayInitialize'   Test2.mq5       5       3
   built-in 'ArrayInitialize'   Test2.mq5       5       3
   built-in 'ArrayInitialize'   Test2.mq5       5       3
   built-in 'ArrayInitialize'   Test2.mq5       5       3
   built-in 'ArrayInitialize'   Test2.mq5       5       3
   built-in 'ArrayInitialize'   Test2.mq5       5       3
1 error(s), 0 warning(s)                2       1

Сигнатуры функций будут видны в логе?