![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Продолжая #23 и инкапсулируя в функцию #26, я теперь показываю структуру, которая работает как на MT4, так и на MT5. (Для пост-билда 600, я изменил недопустимые точки(#29) в именах переменных, и привел ints в соответствие со стандартными перечислениями.)
Здравствуйте, Уильям и Ко.
Если вы вызываете iCustom несколько раз для одного индикатора с одним и тем же символом и таймфреймом, выполняется ли полный код индикатора многократно или MQL4 делает что-то умное за кулисами, чтобы кэшировать результирующие буферы? Надеюсь, что последнее, особенно для более тяжелых индикаторов... Насколько я понимаю, MQL5 улучшает эту ситуацию за счет использования хэндлов, рассматривая индикаторы как открытие/закрытие файлов.
Более того, при программировании советников я заинтересован в использовании производных классов CIndicator из стандартной библиотеки, которые, вероятно, предлагают больший контроль (и расширяемость) по сравнению со встроенными функциями (iCustom, iMACD, iBands и т.д.), не говоря уже о том, что теоретически должны предлагать схожую семантику программирования на обеих платформах, MT4 и MT5. Однако я еще не пробовал сам и все еще озадачен существенными различиями в исходном кодемежду MQL4 и MQL5(Include/Indicators/*.mqh). Не будете ли вы так любезны высказать свои соображения о плюсах и минусах, исходя из вашего понимания и опыта работы с этими функциями/библиотеками?
Большое спасибо за быстрый ответ, Уильям - это действительно интересный подход... А при завершении работы советника такие невидимо созданные индикаторы автоматически уничтожаются? Я бы предположил, что да, по крайней мере в MQL4; возможно, в MQL5 нужно явно вызывать IndicatorRelease() для хэндлов индикаторов, используемых советником.
PS: У вас случайно нет опыта работы с классами CIndicator в стандартной библиотеке? Я искал в Интернете примеры кода и не смог найти ничего, кроме скудного справочного материала на http://www.mql5.com/en/docs/standardlibrary/technicalindicators/CIndicators/CIndicator (или встроенной справочной системы).
PPS: Есть ли способ включить уведомления по электронной почте на этом форуме? Я заглянул в настройки своего аккаунта и не смог ничего найти.