Есть массив мэджиков. Я думал, как мне будет удобнее им пользоваться. Решено создать ArrayList в который я помещу эти мэджики. Но, оказалось, что как я обычно пишу в других языках, здесь не работает. Приходится писать на порядок больше, и, соответственно, производительность и читабельности кода будет не та. Поэтому хочется обсудить этот вопрос.
Обычно, любые современные языки могут порождать объекты из примитивов вот так:
Здесь в мкл такого нет. И по этой причине возникает костыль. опишу задачу, которую я бы решил компактно, на Java или C#, а здесь пока что не придумал.
Вот скрипт:
Что мешает использовать CArrayLong ?
Я к тому, что для того, что бы передать в ArrayList объект мне нужно создать динамический массив объектов. Логика в чём? Для передачи одного объекта, создаём массив объектов.. Странно как-то.
Тем более, загонять в класс input-значение списка магиков не резон. Представьте себе, есть класс, где пару переменных есть. А смысл какой? Мне это не нужно. Нужно лишь при инициализации распределить по ArrayList'у магики, которые будут потом использоваться уже без пересчётов и всё! Зачем мне их наследовать и как я их унаследую в самом боте? Не в класс.. Никак..Я к тому, что для того, что бы передать в ArrayList объект мне нужно создать динамический массив объектов. Логика в чём? Для передачи одного объекта, создаём массив объектов.. Странно как-то.
Тем более, загонять в класс input-значение списка магиков не резон. Представьте себе, есть класс, где пару переменных есть. А смысл какой? Мне это не нужно. Нужно лишь при инициализации распределить по ArrayList'у магики, которые будут потом использоваться уже без пересчётов и всё! Зачем мне их наследовать и как я их унаследую в самом боте? Не в класс.. Никак..Честно говоря, вообще не понял задачу. От слова "совсем". Много букв, эмоций, и в разные стороны ...
А почему не использовать CHashMap? Ведь идеальный класс для такой задачи.
Зачем? Ведь CHashMap для хранения и доступа к большим объёмам данных, а тут магики всего-лишь... две-три-тридцать три штуки и больше не меняются. Ну это я так понял из потока мыслей выше.
Очередной раз hoz пользуется MQL "через одно место", и объявляет, что MQL - это отстой. Поскольку в других языках "так можно"... У меня очередное сомнение в его утверждении, что он имеет большой опыт в "программировании на других языках", его ошибки - типичные ошибки новичка. Ну и отлично. Поможем новичку.
Лист (СList) - это связный список объектов. Понятное дело, "просто добавить" число туда нельзя - он не предназначен для "просто чисел", их же невозможно связать друг с другом !
Правильно выше написано - используй CArrayLong, там все уже есть для тебя. Даже сортировка реализована.
Насчет CHashMap - согласен Artyom Trishkin - данный класс слишком наворочен для списка магиков. Даже в моей ЛигеТС - только 400 магиков. Городить ради списка хешмэп - это из пушки по воробьям.
Очередной раз hoz пользуется MQL "через одно место", и объявляет, что MQL - это отстой. Поскольку в других языках "так можно"... У меня очередное сомнение в его утверждении, что он имеет большой опыт в "программировании на других языках", его ошибки - типичные ошибки новичка. Ну и отлично. Поможем новичку.
Лист (СList) - это связный список объектов. Понятное дело, "просто добавить" число туда нельзя - он не предназначен для "просто чисел", их же невозможно связать друг с другом !
Правильно выше написано - используй CArrayLong, там все уже есть для тебя. Даже сортировка реализована.
Насчет CHashMap - согласен Artyom Trishkin - данный класс слишком наворочен для списка магиков. Даже в моей ЛигеТС - только 400 магиков. Городить ради списка хешмэп - это из пушки по воробьям.
У меня в классе COrderManager Хеш-таблицы используются для хранения не просто магиков, а всей информации о позициях и сделках, при этом ключом является тикет.
Зачем? Ведь CHashMap для хранения и доступа к большим объёмам данных, а тут магики всего-лишь... две-три-тридцать три штуки и больше не меняются. Ну это я так понял из потока мыслей выше.
А я мало чего понял ))
У меня в классе COrderManager Хеш-таблицы используются для хранения не просто магиков, а всей информации о позициях и сделках, при этом ключом является тикет.
Ну так и сравни свою структуру, и простой список магиков, который наверняка использует hoz.
У меня - класс CTradePosition - использует CObjArray - есть возможность сортировать по любому полю, но она ни разу не потребовалась. Всегда используется только сортировка по тикету.
Ну так и сравни свою структуру, и простой список магиков, который наверняка использует hoz.
У меня - класс CTradePosition - использует CObjArray - есть возможность сортировать по любому полю, но она ни разу не потребовалась. Всегда используется только сортировка по тикету.
И что ты делаешь с дырками, когда Позиция переходит в сделку? Или так ее и оставляешь, только меняя какое-то поле, отвечающее за признак позиция/сделка?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Есть массив мэджиков. Я думал, как мне будет удобнее им пользоваться. Решено создать ArrayList в который я помещу эти мэджики. Но, оказалось, что как я обычно пишу в других языках, здесь не работает. Приходится писать на порядок больше, и, соответственно, производительность и читабельности кода будет не та. Поэтому хочется обсудить этот вопрос.
Обычно, любые современные языки могут порождать объекты из примитивов вот так:
Здесь в мкл такого нет. И по этой причине возникает костыль. опишу задачу, которую я бы решил компактно, на Java или C#, а здесь пока что не придумал.
Вот скрипт:
Выделенное жёлтым не возможно реализовать, как я писал выше. Можно было бы сделать типа:
ptrMagicList.Add(new Double(curMagic));
Но в мкл такого комфорта нет. Как поступить?