Приветствую Владимир!
Хорошая идея, реализовать кортежи в MQL,
после отладки и добавления новых методов,
можно
претендовать, что библиотеку включат в стандартный набор.
Есть вопрос.
Сейчас элементы добавляются в кортеж, на этапе объявления кортежа.
tuple_value(3)<int, string, double> _test = {15, "iiii", 5.89};
Возможно пока не до конца понял как с ним работать
но планируется ли расширять библиотеку новыми методами?
Добавление,
удаление элементов, возможно итераторы и т.д.
По текущей реализации.
После запуска скрипта, библиотека где то течёт.
2019.11.16 16:30:49.568 TestTuple (EURUSD,M1) Alert: true 2019.11.16 16:30:49.568 TestTuple (EURUSD,M1) Alert: 15 2019.11.16 16:30:49.568 TestTuple (EURUSD,M1) Alert: iiii 2019.11.16 16:30:49.568 TestTuple (EURUSD,M1) Alert: 5.89 2019.11.16 16:30:49.568 TestTuple (EURUSD,M1) 1 undeleted objects left 2019.11.16 16:30:49.568 TestTuple (EURUSD,M1) 1 object of type CTuple3<int,string,double> left 2019.11.16 16:30:49.568 TestTuple (EURUSD,M1) 40 bytes of leaked memory
Приветствую Владимир!
Хорошая идея, реализовать кортежи в MQL,
после отладки и добавления новых методов,
можно
претендовать, что библиотеку включат в стандартный набор.
Есть вопрос.
Сейчас элементы добавляются в кортеж, на этапе объявления кортежа.
Возможно пока не до конца понял как с ним работать
но планируется ли расширять библиотеку новыми методами?
Добавление,
удаление элементов, возможно итераторы и т.д.
По текущей реализации.
После запуска скрипта, библиотека где то течёт.
struct S{ int i; string s; double d; };
...и не болит голова у дятла.
Если же действительно в один массив надо собрать разнотипные элементы, используется класс CArrayObj, а элементы, собираемые в массив, делаются потомками класса CObject.
Не подскажете ( для НЕпрограмиста и НЕматематика) в каком ключе можно использовать кортеж ( почитал немного о нем :)) применительно к торговле ? Хотя бы теоретически ?
Пример реального использования:
#define fractal tuple(2)<int,double> ... void CNushaData::Tick(){ CheckData(); if (!cChart.IsNewBar()) return; if (Bars<6) return; fractal* _fractal=CheckFractal(); if (_fractal.Item1!=0) cData.PushBack(new CData(_fractal)); delete _fractal; } //--------------------------------------------------------- fractal* CNushaData::CheckFractal(){ fractal* res=new fractal; double value=iFractals(NULL,PERIOD_CURRENT,MODE_UPPER,3), if (value>0.0) res.Set(1,value); else if((value=iFractals(NULL,PERIOD_CURRENT,MODE_LOWER,3))>0.0) res.Set(-1,value); return res;}
Пример реального использования:
Ну нафик такую реальность

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Кортеж:
Реализация кортежа
Автор: Vladimir Simakov