Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 420
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Есть функция, которая возвращает тип переменной?
например, пишешь.
int a=10;
потом пишешь:
functia(a);
а она тебе: ИНТ!
:)
string functia(double a) { return "ДАБЛЬ!"; } // тоже неожиданно
Есть функция, которая возвращает тип переменной?
например, пишешь.
int a=10;
потом пишешь:
functia(a);
а она тебе: ИНТ!
:)
Из справки:
Все делается гораздо проще. Создаете кнопку отображать (или используете одну из существующих кнопок). Далее при нажатии - всем нужным объектам устанавливается флаг видимости по всем ТФ. При отжатии кнопки, всем объектам выставляется свойство отображения на всех ТФ (или нужном если необходимо). Ничего удалять/перестраивать не придется. Просто нужно будет после этой операции перерисовать чарт.
Свойство объектов OBJPROP_TIMEFRAMES.
Подскажите как запихнуть данные из индикатора в массив? То есть понятно что нужно объяить массив
double num_array[];
а вот далее мне не совсем понятно...
num_array[0] = iMA(NULL,0,13,8,MODE_SMMA,PRICE_MEDIAN,i); // массив с индексом [0] равен МА, но если менять индекс на [1], то получается, что num_array[1] равен
этим же данным из индикатора что и num_array[0]. А такого не надо. Массив должен последовательно заполняться. И все что приходит в голову, это разбивать день на 24
часа, объявлять уже двухмерный массив и к каждому часу присваивать индекс со своей строкой и тд....
Может быть есть более простой путь либо менее геморройный?
Подскажите как запихнуть данные из индикатора в массив? То есть понятно что нужно объяить массив
double num_array[];
а вот далее мне не совсем понятно...
num_array[0] = iMA(NULL,0,13,8,MODE_SMMA,PRICE_MEDIAN,i); // массив с индексом [0] равен МА, но если менять индекс на [1], то получается, что num_array[1] равен
этим же данным из индикатора что и num_array[0]. А такого не надо. Массив должен последовательно заполняться. И все что приходит в голову, это разбивать день на 24
часа, объявлять уже двухмерный массив и к каждому часу присваивать индекс со своей строкой и тд....
Может быть есть более простой путь либо менее геморройный?
вижу так:
вижу так:
А, получается через ArrayResize выставлять максимальное кол-во индексов в массиве и через цикл их прогонять. Огромное спасибо, но есть тогда вопрос, когда все индексы забьются данными из индюка, через ArrayFree их очищать, да? или он сам себя переписывать будет? или послt 24х все вообще остановиться? Извините конечно за тупые вопросы, но массивы для меня это вообще какая то темная лошадка с не известными функиями
А, получается через ArrayResize выставлять максимальное кол-во индексов в массиве и через цикл их прогонять. Огромное спасибо, но есть тогда вопрос, когда все индексы забьются данными из индюка, через ArrayFree их очищать, да? или он сам себя переписывать будет? или послt 24х все вообще остановиться? Извините конечно за тупые вопросы, но массивы для меня это вообще какая то темная лошадка с не известными функиями
Массив = набор простых переменных, выстроенных в один ряд для удобства обращения к ним по индексу. Индекс - целая переменная для обращения к элементам массива по номеру для организации цикла. Индекс = счетчик номеров. ArrayFree = уничтожение массива - как бульдозером по ветхим домишкам. Правда можно снова восстановить с помощью ArrayResize. Ну а ArrayResize - это забор вокруг жилого массива. Тут наши - за забором чужие, туда лазить запрещено. В каждый дом заходить (присваивать новое значение элементу массива) можно многократно. Массив - это очень просто и для многих целей удобно. А кто боится массивов - тех ... Так что лучше скорее в них разобраться.
//+------------------------------------------------------------------+ //| Проверка массива | //+------------------------------------------------------------------+ #property strict int m[10]; int n; void OnStart() { ArrayInitialize(m,7); Вывод(); // Заполнить семерками ArrayResize(m,7); Вывод(); // Удалить 3 последних элемента ArrayResize(m,9); Вывод(); // Увеличить размер m[1]=1; m[7]=1; Вывод(); // Изменить 2 элемента for(n=0; n<9; n++) m[n]=n*n; Вывод(); // Заполнить квадратами номеров ArrayCopy(m,m,0,2,7); Вывод(); // Копирование со сдвигом ArrayResize(m,ArraySize(m)-2); Вывод(); // Удалить 2 последних элемента } void Вывод() { string s=""; for(n=0; n<ArraySize(m); n++) s+=" " + string(m[n]); Alert(ArraySize(m), ":", s); }
Попробуйте запустить такой скрипт - и потренируйтесьИз справки: