Блог им. Crazy_Trading

вопрос к программистам MQL4

всем привет, появилось немного свободного времени, решил переписать свои индикаторы. 
в МКЛ4 перемены там появился ООП
собсно вопрос:

помогите создать массив массивов и как обращаться к нему?

пример на волнах:

есть класс ВОЛНА, в нем соответственно есть подволны

как создать массив экземпляров класса ВОЛНА чтобы в каждом экземпляре этого класса был доп массив с подволнами, и как обращаться к определенной подволне определенной волны? 

заранее благодарен! 
Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
77 | ★1
6 комментариев
Создай тему на оф форуме, там точно помогут forum.mql4.com/ru
avatar
Создать так docs.mql4.com/ru/basis/types/dynamic_array
Обращаться как с обычными массивами, плюс свои операции docs.mql4.com/ru/array
А вообще там доки не ахти, хрен что найдешь. Рекомендую найти готовый индикатор и смотреть как в нем что реализовано.
avatar
дык вот ищу и никак ((
загвоздка во вложенности объекта в объект ((
волна имеет подволны которые в свою очередь на меньшем тф становятся сами волнами в которых свои подволны которые на еще меньшем тф становятся волнами со своими подволнами и так до минутного тф…
в итоге получаем кучу объектов вложенных друг в друга с заранее неизвестным их количеством…
вот и ломаю голову
Crazy Trading,
avatar
>>в МКЛ4 перемены там появился ООП

Вероятнее всего в MQL5. Именно там, насколько мне известно, появились объекты.

Посмотрите в папку "\MQL5\Include\Arrays\" терминала.
Там есть несколько файлов с реализациями массивов различных типов. В том числе там есть файл ArrObj, который реализует массив объектов.

Если пройтись поиском по исходникам, которые идут с терминалом, то сможете найти примеры применения, ну или на форумах глянуть.

Вот мой пример, который примерно похож на вашу задачу:

#include <Object.mqh>
#include <Arrays\ArrayObj.mqh>

class CLeg: public CObject
{
private:
long _digits;
double _ticksize;
void Deinit();
public:
CLeg(JSONObject *obj);
~CLeg(void);
double Size;
string Symbol;
double LastPrice();
double Normalize(const double price) const;
};

class CLegs: public CArrayObj
{
public:
CLegs(JSONArray *obj);
~CLegs(void);
CLeg* operator[](const int index) const { return((CLeg*)CArrayObj::At(index)); }
};

CLeg в вашем случае — это волна CWave
СLegs в вашем случае — это волны CWaves.

Новая волна добавляем в список например так:

//Constructor
CLegs::CLegs(JSONArray *obj)
{
FreeMode(true);
for(int i = 0; i < obj.size(); i++)
Add(new CLeg(obj.getObject(i)));
}
avatar

Читайте на SMART-LAB:
Фото
📃 Как инвестору перестать полагаться на интуицию
Шестое чувство вряд ли подскажет идеальный момент для покупки актива. Надёжнее провести анализ на четырёх уровнях. 🔹 Оценка рынка....
Фото
ДОМ.РФ и ПАО «Селигдар» реализуют в Якутии пилотный проект арендного жилья в сегменте ИЖС
Сегодня на ПМЭФ-2026 подписали трехстороннее соглашение с ДОМ.РФ  и Правительством Якутии о развитии проекта корпоративной аренды на базе нашего...
Фото
🥇 Акции ДОМ.PФ получили наивысший некредитный рейтинг ⭐️ ⭐️ ⭐️ ⭐️ ⭐️ от АКРА!
В числе ключевых факторов инвестиционной привлекательности наших акций агентство выделяет: ▪️ устойчивость бизнес-модели; ▪️ стратегию и...
Фото
ЦИАН. Отчет МСФО Q1 26г. Такой рентабельности никогда не было
Вышли финансовые результаты по МСФО за Q1 2026г. от компании ЦИАН: 👉Выручка — 3,90 млрд руб. (+17,9% г/г) 👉Операционные расходы — 2,72...

теги блога Тихая Гавань

....все тэги



UPDONW
Новый дизайн