Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 1166

 
Александр:

Может так.




Спасибо за наводку, вечером проверю!

 
Александр:

Есть множество чисел- 1,3,4,8,9,........1000. Как мне ЭЛЕГАНТНО сравнить их , в теле советника с переменной. БЕЗ приравнивания каждого числа какой-то переменной ? Спасибо!


Это ваше множество чисел где хранится? В массиве? Тогда просто в цикле сравниваете. 

...

В мкл нет такого типа данных как множество.

 

Здравствуйте. Как в OnChartEvent разделять события, сгенерированные программно и вручную? Или, может быть, есть такая возможность отписаться временно от события ChartEvent? Мне надо чтобы оно работало только при "ручных" событиях и игнорировало бы программные, таких как удаление, изменение свойств из эксперта.

 
Vitalii Ananev:

Это ваше множество чисел где хранится? В массиве? Тогда просто в цикле сравниваете. 

...

В мкл нет такого типа данных как множество.

Я еще не придумал где хранить. То ли в файле через запятую, то ли для ускорения прямо в советнике. Скорее последнее.

 
Александр:
Я еще не придумал где хранить. То ли в файле через запятую, то ли для ускорения прямо в советнике. Скорее последнее.


В любом случае вам надо эту последовательность поместить в массив. Если данные в файле то считывая файл и записывая их массив или непосредственно в коде инициализировать массив нужными данными.

 

Есть ли возможность скопировать список объектов графика, что бы можно было вставить в эксель?

Открывать свойства каждой отдельной строки не удобно - слишком долго, т.к. объектов слишком много.


 
Aleksandr Novikov:

Есть ли возможность скопировать список объектов графика, что бы можно было вставить в эксель?

Открывать свойства каждой отдельной строки не удобно - слишком долго, т.к. объектов слишком много.


Можно просто перебирая объекты на графике писать их имена и другие параметры в файл .csv

 
Vitalii Ananev:

В любом случае вам надо эту последовательность поместить в массив. Если данные в файле то считывая файл и записывая их массив или непосредственно в коде инициализировать массив нужными данными.

Т.е. придется организовать цикл  и заполнить массив. Только так ?

 
Александр:

Т.е. придется организовать цикл  и заполнить массив. Только так ?


Да, цикл для заполнения массива нужен будет если данные из файла считываете.

Если прямо в коде будете циферки в массив записывать то цикл не нужен. Можно просто писать так:

double A[10];

A[0] = 1.343;

A[1] =  1.4567; и т.д.

или так double A[10] = {1.344,1.34354,...... };

 
Александр:

Может так.




Разобрался, дело в динамических массивах, если динамический массив назначить буфером индикатора, то заботиться о его размерности не нужно, MT сам подберет (подберет ли? или тупо возьмет по максимуму?) количество элементов, та же ситуация с функцией ArrayCopy. Что делать, если я не знаю заранее необходимого мне размера массива? ArrayResize? При каждом новом элементе? Есть решение поэлегантней?

О нашел!: Функция может быть применена только к динамическим массивам. При этом необходимо иметь ввиду, что нельзя изменять размер для динамических массивов, назначенных в качестве индикаторных буферов функцией SetIndexBuffer(). Для индикаторных буферов все операции по изменению размера производит исполняющая подсистема терминала.

Немного обескураживающее для новичка в языке, то не управляем размерностью массивов, то жестко следим за ней... И я ж помнил что там подвох был да запамятовал какой =)

Объект динамического массива - Типы данных - Основы языка - Справочник MQL4
Объект динамического массива - Типы данных - Основы языка - Справочник MQL4
  • docs.mql4.com
Объект динамического массива - Типы данных - Основы языка - Справочник MQL4
Причина обращения: