всем привет, появилось немного свободного времени, решил переписать свои индикаторы.
в МКЛ4 перемены там появился ООП
собсно вопрос:
помогите создать массив массивов и как обращаться к нему?
пример на волнах:
есть класс ВОЛНА, в нем соответственно есть подволны
как создать массив экземпляров класса ВОЛНА чтобы в каждом экземпляре этого класса был доп массив с подволнами, и как обращаться к определенной подволне определенной волны?
дык вот ищу и никак ((
загвоздка во вложенности объекта в объект ((
волна имеет подволны которые в свою очередь на меньшем тф становятся сами волнами в которых свои подволны которые на еще меньшем тф становятся волнами со своими подволнами и так до минутного тф…
в итоге получаем кучу объектов вложенных друг в друга с заранее неизвестным их количеством…
вот и ломаю голову
Вероятнее всего в MQL5. Именно там, насколько мне известно, появились объекты.
Посмотрите в папку "\MQL5\Include\Arrays\" терминала.
Там есть несколько файлов с реализациями массивов различных типов. В том числе там есть файл ArrObj, который реализует массив объектов.
Если пройтись поиском по исходникам, которые идут с терминалом, то сможете найти примеры применения, ну или на форумах глянуть.
Вот мой пример, который примерно похож на вашу задачу:
М.Видео-Эльдорадо объявила о докапитализации группы на сумму 30 млрд руб. в 1п 2025г: первые платежи от новых акционеров в размере 11,5 млрд руб уже поступили — РБК «М.Видео-Эльдорадо» объявила о дока...
Козлов Юрий, уважаемый Юрий. Я ваш давний подписчик и уже давно наблюдаю как вы и некоторые другие товарищи, например Владимир Литвинов, ребята с канала Вредный инвестор и некоторые другие по перво...
Нововведения в ПДД: четкие правила и регламент Минтранс подготовил проект изменений в ПДД для СИМ, который дополняет существующее регулирование. Нововведения не вносят принципиальных изменений, а форм...
Нововведения в ПДД: четкие правила и регламент Минтранс подготовил проект изменений в ПДД для СИМ, который дополняет существующее регулирование. Нововведения не вносят принципиальных изменений, а форм...
МОСКВА, 14 мар /ПРАЙМ/. Возобновление экспорта российской нефти в Германию по нефтепроводу «Дружба» пока не обсуждается, экспорт газа по взорванным «Северным потокам» также пока не актуален, передает ...
Считаем Совкомбанк одной из лучших идей в банковском секторе на фоне грядущего снижения ставок - Market Power Отчет Совкомбанка за 2024 год выглядит солидно: кратный рост выручки на фоне сложностей в ...
Песков: нужен разговор Путина с Трампом. ❗️Владимир Путин вчера поздно вечером принял в Кремле спецпосланника президента США по Ближнему Востоку Стива Уиткоффа, сообщил пресс-секретарь главы государст...
Обращаться как с обычными массивами, плюс свои операции docs.mql4.com/ru/array
А вообще там доки не ахти, хрен что найдешь. Рекомендую найти готовый индикатор и смотреть как в нем что реализовано.
загвоздка во вложенности объекта в объект ((
волна имеет подволны которые в свою очередь на меньшем тф становятся сами волнами в которых свои подволны которые на еще меньшем тф становятся волнами со своими подволнами и так до минутного тф…
в итоге получаем кучу объектов вложенных друг в друга с заранее неизвестным их количеством…
вот и ломаю голову
Вероятнее всего в 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)));
}