Ошибки, баги, вопросы - страница 2646
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
потому что шаблон выводит типы только по параметрам, но не по выходному значению.
Это не точно.
Это не точно.
Спасибо!
Да, будет работать, в синтаксисе запутался
ЗЫ: все как задумано теперь работает:
сериализация POD-структур в Base64Это не точно.
Нет, это точно. Вы отметили явное задание типов параметров шаблона у функции, а я говорил про выведение, про явное задание fxsaber ответил до меня. и до вас
Нет, это точно. Вы отметили явное задание типов параметров шаблона у функции, а я говорил про выведение , про явное задание fxsaber ответил до меня. и до вас
поиском по форуму и докам не нашел, вопрос назрел:
1. какой максимальный размер string может хранить MQL5
2. какой максимальный размер string может хранить MQL4
3. если будет нехватка памяти этот максимальный размер будет уменьшен (или будет не выделена память для string) или будет runtime error ?
Дефекты:
(не исправлено MT5(build 2319)) баг в работе кеша шаблонного класса: "Создаешь сложный несколько раз обернутый объект с внутренним типом "С", а там оказывается совсем другой тип данных, может "B", может "int", что хочешь...".
(не исправлено MT5(build 2319)) баг с генерацией кода шаблонного класса при использовании internal class.
(не исправлено MT5(build 2319)) баг при определении internal class - отсутствует возможность явно сослаться на глобальное пространство имен при указании базового класса.
Предложения:
ссылка - о необходимости введения в MQL typedef declaration функциональности.
ссылка - о предоставлении возможности принудительной генерации дефолтных конструкторов копирования и операторов присвоения.
Дефекты:
Хорошо, что отслеживаете свои баг-репорты. Я так не делал, от того все безвозвратно затерялось на форуме.
Наверное, нужно в посты со своими баг-репортами добавлять какую-нибудь одну и ту же хэш-запись, чтобы поиском можно было разом их все вместе находить.
поиском по форуму и докам не нашел, вопрос назрел:
1. какой максимальный размер string может хранить MQL5
2. какой максимальный размер string может хранить MQL4
3. если будет нехватка памяти этот максимальный размер будет уменьшен (или будет не выделена память для string) или будет runtime error ?
попробовал потестировать string в МТ4
в диспетчере Вин память по не многу течет (5,1 из 11,9) , в МТ4 в логе:
StringLen = 221696000 , m_physical = 12157, m_total = 4095, m_available = 3365, m_used = 729
в целом, для разумных задач можно большие string использовать, может чуть позже файл через string скопирую проверю
UPD: заменил uchar u_arr[102400]; на uchar u_arr[524224]; чтобы ускорить процесс
итог: в МТ4 примерный максимум, что можно положить в string это:
2020.02.13 21:11:24.177 tst_string EURUSD,H1: out of memory
2020.02.13 21:11:24.024 tst_string EURUSD,H1: StringLen = 640601728 , m_physical = 12157, m_total = 4095, m_available = 2556, m_used = 1539
т.е. около 640 Мб
ЗЫ: МТ5
2020.02.13 21:56:12.964 tst_string (EURUSD,H1) StringLen = 1073610752 , m_physical = 12157, m_total = 24314, m_available = 21975, m_used = 2339
2020.02.13 21:56:13.140 tst_string (EURUSD,H1) out of memory in 'tst_string.mq5' (41,12)
попробовал потестировать string в МТ4
в диспетчере Вин память по не многу течет (5,1 из 11,9) , в МТ4 в логе:
StringLen = 221696000 , m_physical = 12157, m_total = 4095, m_available = 3365, m_used = 729
в целом, для разумных задач можно большие string использовать, может чуть позже файл через string скопирую проверю
UPD: заменил uchar u_arr[ 102400 ]; на uchar u_arr[524224]; чтобы ускорить процесс
итог: в МТ4 примерный максимум, что можно положить в string это:
2020.02.13 21:11:24.177 tst_string EURUSD,H1: out of memory
2020.02.13 21:11:24.024 tst_string EURUSD,H1: StringLen = 640601728 , m_physical = 12157, m_total = 4095, m_available = 2556, m_used = 1539
т.е. около 640 Мб
ЗЫ: МТ5
2020.02.13 21:56:12.964 tst_string (EURUSD,H1) StringLen = 1073610752 , m_physical = 12157, m_total = 24314, m_available = 21975, m_used = 2339
2020.02.13 21:56:13.140 tst_string (EURUSD,H1) out of memory in 'tst_string.mq5' (41,12)
Это длина строки для Unicode, поэтому в МБ это как минимум double. 1,3 Гб для MT4, что имеет смысл, так как вам нужен непрерывный буфер памяти, а MT4 - 32-битное приложение. Таким образом, ограничение mql4 само по себе не является ограничением, а ограничено только доступной памятью.
Я немного удивлен, что MT5 не позволяет больше, так как кажется, что у вас много доступной памяти. Я буду стараться на моей стороне.
Это длина строки для Unicode, поэтому в МБ это как минимум double. 1,3 Гб для MT4, что имеет смысл, так как вам нужен непрерывный буфер памяти, а MT4 - 32-битное приложение. Таким образом, ограничение mql4 само по себе не является ограничением, а ограничено только доступной памятью.
Я немного удивлен, что MT5 не позволяет больше, так как кажется, что у вас много доступной памяти. Я буду стараться на моей стороне.
у меня памяти 12 Гб, ОС Windows 10 , свободной памяти около 8 Гб
этот тест мне нужен был, чтобы определить максимально допустимые длины строк в терминалах МТ4/МТ5
я сейчас хочу наладить обмен между терминалами через базу данных Redis
Redis очень простая база данных и работает исключительно со строками (ключ - значение --> strin - string)
вчера я сделал сериализацию POD-структур в Base64, при этом размер данных увеличивается примерно на 1/3
я считаю, что даже в этом случае у меня есть возможность обмениваться структурами с размером по 400 Мб за одну транзакцию - это более чем достаточно для любых целей! ;)