Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Это не костыль, а прямое убийство терминала.
Ок, понял. Тогда резонный вопрос: а как по другому узнать размер доступной памяти для эксперта?
Это не костыль, а прямое убийство терминала.
Нашел другой временный рабочий вариант - через DLL функцией GlobalMemoryStatusEx, спасибо Andrey Voytenko
Только это тоже костыль, хотелось бы штатными средствами узнавать размер доступной памяти для эксперта, чтоб не разрешать использование внешних DLL.
//+------------------------------------------------------------------+ //| GlobalMemoryStatusEx.mq5 | //| Copyright 2021, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2021, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" struct MEMORYSTATUSEX { uint dwLength; uint dwMemoryLoad; ulong ullTotalPhys; ulong ullAvailPhys; ulong ullTotalPageFile; ulong ullAvailPageFile; ulong ullTotalVirtual; ulong ullAvailVirtual; ulong ullAvailExtendedVirtual; }; #import "kernel32.dll" int GlobalMemoryStatusEx(MEMORYSTATUSEX& lpBuffer); int GetLastError(); #import //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { MEMORYSTATUSEX mem = {}; mem.dwLength = sizeof( mem ); if( GlobalMemoryStatusEx( mem ) == 0 ) { Print( "Error:", kernel32::GetLastError() ); return; } PrintFormat( "Result: memory load %d %%", mem.dwMemoryLoad ); Print( "Memory Total Phys: ", mem.ullTotalPhys, " bytes" ); Print( "Memory Avail Phys: ", mem.ullAvailPhys, " bytes" ); Print( "Memory Total Virtual: ", mem.ullTotalVirtual, " bytes" ); Print( "Memory Avail Virtual: ", mem.ullAvailVirtual, " bytes" ); Print( "Memory Total PageFile: ", mem.ullTotalPageFile, " bytes" ); Print( "Memory Avail PageFile: ", mem.ullAvailPageFile, " bytes" ); Print( "Memory Avail ExtendedVirtual: ", mem.ullAvailExtendedVirtual, " bytes" ); } //+------------------------------------------------------------------+