Объясните, пожалуйста.
В "Получение хендла индикатора с помощью IndicatorCreate()"
Создаем массив
MqlParam params[]; // Массив для хранения параметров индикаторов
Без указания типа, потом меняем тип массива по потребности.
Как это работает? Можно использовать для любых структур или только для этой? Можно ли просто сменить тип у имеющегося массива?
Но в статье по тексту
*** // Задаем период медленной MA params[0].type =TYPE_INT; params[0].integer_value=21; ***
и следом
*** ArrayResize(params,2); // Шаг params[0].type =TYPE_DOUBLE; params[0].double_value = 0.02; ***ничего не удаляется, тип меняется...
Значит, разные обеды могут быть только на подносе официанта. Ладно, поэкспериментирую.
А массивы смешанных типов не планируются, типа [int][double]?
Значит, разные обеды могут быть только на подносе официанта. Ладно, поэкспериментирую.
А массивы смешанных типов не планируются, типа [int][double]?
Используйте структуры, смотрите пример в справке - https://www.mql5.com/ru/docs/basis/types/casting#casting_structure:
Еще один пример показывает, как можно организовать собственную функцию для получения из типа color представления цвета в RGB (Red,Green,Blue). Для этого создаем две структуры, имеющие одинаковый размер, но разный внутренний состав. Для удобства, добавим в структуру функцию, возвращающую цвет в представлении RGB в виде строки.
#property script_show_inputs input color testColor=clrBlue;// задайте цвет для тестирования //--- структура для представления цвета в RGB struct RGB { uchar blue; // синяя составляющая цвета uchar green; // зеленая составляющая цвета uchar red; // красная составляющая цвета uchar empty; // этот байт не используется string toString(); // функция для получения в виде строки }; //--- функция для вывода цвета в виде строки string RGB::toString(void) { string out="("+(string)red+":"+(string)green+":"+(string)blue+")"; return out; } //--- структура для хранения встроенного типа color struct builtColor { color c; }; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- переменная для хранения в RGB RGB colorRGB; //--- переменная для хранения типа color builtColor test; test.c=testColor; //--- приведение двух структур путем копирования содержимого colorRGB=test; Print("color ",test.c," = ",colorRGB.toString()); //--- }

- www.mql5.com
Используйте структуры, смотрите пример в справке - https://www.mql5.com/ru/docs/basis/types/casting#casting_structure:
Со структурами боле-мене понятно, меня массивы интересуют.
Спасибо.
Со структурами боле-мене понятно, меня массивы интересуют.
Спасибо.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Опубликована статья Способы вызова индикаторов в MQL5:
C появлением новой версии языка MQL, не только изменился подход к работе с индикаторами, но и появились новые способы создания индикаторов. Кроме того, появилась дополнительная гибкость при работе с индикаторными буферами - теперь вы можете самостоятельно указать нужное направление индексации и получать ровно столько значений индикатора, сколько вам требуется. В этой статье рассмотрены базовые методы вызова индикаторов и получения данных из индикаторных буферов.
В MQL5 существует несколько вариантов вызова индикаторов, и осуществляются они в основном при помощи функций IndicatorCreate() и iCustom(). Причем эти функции лишь возвращают хендл индикатора, и дальнейшая работа с индикаторами ведется именно через него. Так что же такое хендл? Как работать с функциями IndicatorCreate() и iCustom()? И как получить данные индикатора в вашем эксперте? Обо всем этом рассказывается в данной статье.
Автор: KlimMalgin