Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ну про input всё понятно. Про extern - там, как по мне, то сначала можно объявлять переменные с одним и тем же типом и идентификатором в разных файлах, подключаемых к проекту, а потом - оказывается нельзя их так объявлять. Тут конечно трёхэтажный импрессионизм...
Смысл extern в том, что если в основном (главном) файле есть какая-то переменная и к этом файлу подключен другой файл. И вот в этом подключенном файле надо пользоваться переменной объявленной в главном файле, тогда в подключаемом файле объявляем ее как extern. В результате подключенный файл можно компилировать, а когда компилируешь главный файл, объявление переменой в подключенном файл игнорируется.
Ну не знаю. Для меня вся документация понятна. Если где-то появляются затруднения, то после некоторых экспериментов они пропадают.
А вот если я никак не знаком с побитовым операциями, то хоть обчитайся любых статей... я ничего с них не пойму. Равно как и о флагах и наборах флагов ничего не мог понять пока Артём мне голосом не объяснил что это такое.
она понятно если от нее требовать значения, а как это все работает до и после - мрак, самый темный мрак
она понятно если от нее требовать значения, а как это все работает до и после - мрак, самый темный мрак
Она это кто?
Она это кто?
суть работы
есть:
1) extern работает только в mql4.
2) комментарии после input будут отображаться во входных параметрах вместо названия входной переменной
input int ma_period = 20;
- будет написано "ma_period"
input int ma_period = 20; // период МА
- будет написано "период МА"
в mql4 чтобы было именно так нужен режим строгой компиляции #property strict
с extern такого "фокуса" нет.
3) переменные extern можно менять в коде как и любые глобальные переменные, input нельзя.
Изначально был только mql4 и extern, никакого input не было. как и ООП в mql4.
Далее сделали mql5, в нем сразу сделали input, так как mql5 в целом был ориентирован именно на ООП.
года 2-3 назад в mql4 сделали апгрейд, добавив много фишек из mql5, в том числе и input.
Вы про какой терминал пишите?
В МТ5, если в индикаторе объявить внешнюю переменную как extern, то индикатор может не получиться вызывать через iCustom().
Вы про какой терминал пишите?
В МТ5, если в индикаторе объявить внешнюю переменную как extern, то индикатор может не получиться вызывать через iCustom().
Я сейчас без упрека, но вы пишете "может не получиться"... выходит может не получиться а может и получиться! Это я о том что мне как самоучке без спец образования трудно понять такую неопределенность...
есть:
1) extern работает только в mql4.
2) комментарии после input будут отображаться во входных параметрах вместо названия входной переменной
input int ma_period = 20;
- будет написано "ma_period"
input int ma_period = 20; // период МА
- будет написано "период МА"
в mql4 чтобы было именно так нужен режим строгой компиляции #property strict
с extern такого "фокуса" нет.
3) переменные extern можно менять в коде как и любые глобальные переменные, input нельзя.
Изначально был только mql4 и extern, никакого input не было. как и ООП в mql4.
Далее сделали mql5, в нем сразу сделали input, так как mql5 в целом был ориентирован именно на ООП.
года 2-3 назад в mql4 сделали апгрейд, добавив много фишек из mql5, в том числе и input.
extern работает и там, и там. Равно как и input - и в MQL5, и в MQL4. Назначение у них разное, и в справке об этом написано.
Зачем сразу направляете человека на ошибочное представление о назначении input- и extern-переменных?
Смысл extern в том, что если в основном (главном) файле есть какая-то переменная и к этом файлу подключен другой файл. И вот в этом подключенном файле надо пользоваться переменной объявленной в главном файле, тогда в подключаемом файле объявляем ее как extern. В результате подключенный файл можно компилировать, а когда компилируешь главный файл, объявление переменой в подключенном файл игнорируется.
тоже думал, что это модификатор работает как в С++, т.е. объявлен в подключаемом файле https://www.mql5.com/ru/forum/160683/page867#comment_11927748
проверил не работает как должно было в С++ работать
файл библиотеки tstextern
файл скрипта:
любые манипуляции с переменной koef ничего не дают,она все равно в локальной области видимости (внутри каждого файла)
Назначение у них разное, и в справке об этом написано.
вся разница заключается в контроле доступа:
к input - его можно только читать, запись запрещена
extern - его можно и читать и записывать, причем после переинициализации MQL - программы это значение будет восстановлено в значение указанное во внешних настройках
Я сейчас без упрека, но вы пишете "может не получиться"... выходит может не получиться а может и получиться! Это я о том что мне как самоучке без спец образования трудно понять такую неопределенность...
В том смысле, что прямо сейчас не проверял. А про то, что было когда-то, здесь опасно утверждать, потому-что все часто меняется. Может то был временный глюк.
тоже думал, что это модификатор работает как в С++, т.е. объявлен в подключаемом файле https://www.mql5.com/ru/forum/160683/page867#comment_11927748
проверил не работает как должно было в С++ работать
файл библиотеки tstextern
файл скрипта:
любые манипуляции с переменной koef ничего не дают,она все равно в локальной области видимости (внутри каждого файла)
Дак, у вас же библиотека. Конечно, будет разные переменные. Имеется ввиду подключение mqh через include.