![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Спасибо, похоже пора сжечь прадедушкину книжку )))
Из истории: в прадедушкиной книжке специально оставили long=int для совместимости старого софта.
Мы в свое время тоже решали - оставлять "бесполезный" long как int и вводить бесчеловечные int64 (или long int) или делать "правильно" путем применения чистого long. В результате решили, что для чистоты имеет смысл сделать правильно, использовав long как 64 битное целое.
long не всегда 32 битный в других системах. Даже один и тот же компилятор под разные архитектуры использует разные размеры. Вот что у Intel C++:
The size of a "long" integer varies between architectures and operating systems.
The Intel Compiler is compatible and inter-operable with Microsoft* Visual C++ on Windows* and
OS arch sizewith gcc* on Linux* and Mac OS X*. Consequently, the sizes of fundamental types are the same as
for these compilers. The size of a long integer in particular depends on the operating system
and the targeted architecture as follows:
----------------------------------
Windows IA-32 4 bytes
Windows Intel 64 4 bytes
Windows IA-64 4 bytes
Linux IA-32 4 bytes
Linux Intel 64 8 bytes
Linux IA-64 8 bytes
Mac OS X IA-32 4 bytes
Mac OS X Intel 64 8 bytes
У нас в MQL5 используется x64 бит совместимая архитектура, которая требует одинакового поведения как в 32, так и в 64 битах. long 64 битный и по этой причине.
Еще немного истории, кто помнит: во времена MSDOS в 16 битных компиляторах int был 16 битным и равен short. При переезде на 32 битную платформу int был расширен до 32 битов, оторвавшись от short. Вроде особых жалоб не было. При переходе на 64 бита от int пришлось отрываться уже long. И это закономерно.
MqlRates rates[];
надо найти максимальное значение из rates[].high из трех послебних баров
незнаю как применить ArrayMaximum к структуре?
MqlRates rates[];
надо найти максимальное значение из rates[].high из трех послебних баров
незнаю как применить ArrayMaximum к структуре?
MqlRates rates[];
надо найти максимальное значение из rates[].high из трех послебних баров
незнаю как применить ArrayMaximum к структуре?
Как-то так. ArrayMaximum к структуре не применяется.
Спасибо!
что это означает ?
CExpertBase::SetOtherSeries: changing of timeseries is forbidden
что это может означать?
Скажите пожалуйста.
Дано:
1. №1 записать в УП, а №2 прочитать;
2. №1 и №2 записать в УП;
Вопрос: какая ситуация является конфликтной? Больше меня интересует случай №1, можно ли считать что это нормально, или нужно ограничивать доступ? Подозреваю что 1й случай нехороший, как будет выглядить конфликт, непонятное значение, или ожидать чего-то серьезней?
CExpertBase::SetOtherSeries: changing of timeseries is forbidden
что это может означать?
220Volt:
Вопрос: какая ситуация является конфликтной? Больше меня интересует случай №1, можно ли считать что это нормально, или нужно ограничивать доступ? Подозреваю что 1й случай нехороший, как будет выглядить конфликт, непонятное значение, или ожидать чего-то серьезней?