Блог им. Crazy_Trading

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

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

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

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

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

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

заранее благодарен! 
Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
79 | ★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:
Фото
Доллар теряет военную премию, но ожидания по ФРС сдерживают распродажу
Главная идея валютного рынка на этой неделе — сокращение части спроса, связанной с геополитической страховкой. Индекс доллара DXY держится около...
Фото
RENI представляет Годовой отчет компании за 2025 год
Группа Ренессанс страхование (MOEX: RENI) опубликовала Годовой отчет для инвесторов за 2025 год. По сравнению с прошлогодним изданием отчет...
Фото
Акционеры Аэрофлота одобрили выплату дивидендов по итогам 2025 года
Сегодня состоялось годовое заседание Общего собрания акционеров ПАО «Аэрофлот». Акционеры утвердили выплату дивидендов по итогам 2025 года в...
Фото
Длинные ОФЗ: сколько можно заработать, если ключевая ставка ЦБ РФ продолжит снижаться?
Длинные ОФЗ с начала текущего года не демонстрировали выраженного снижения по доходности несмотря на продолжение цикла понижения ключевой ставки...

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

....все тэги



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