парни очень нужна консультация программиста на С++
суть: не могу разобраться с векторами (((
пишу ДЛЛ пока для МТ4
дан двумерный ДИНАМИЧЕСКИЙ массив баров.
необходимо этот массив передать в ДЛЛ.
в С++ как таковое отсутствует понятие ДИНАМИЧЕСКОГО массива ((( поэтому через вектора…
но информация слишком скудная в нете…
не могу понять как вектор двумерного массива инициализировать в классе, как в отдельной функции добавлять в него новые элементы, и как из другой функции читать..
Crazy Trading, инициализировать надо в конструкторе, а для добавления/удаления элементов — в классе сделать функции-обёртки, в которые будешь передавать элемент для добавления или индекс для удаления
Тунеядец, вектор как раз подойдет… так как он динамически расширяется, а вот в втоем примере во первых мало баров… надо как минимум 100 000 для КАЖДОГО таймфрейма, ну и инструментов не одна сотня ))
Что есть «вектор» в с++ — не знаю:)
есть след варианты решения:
1. статические массивы 4 байта(дабл) * 4(хай, лоу, опен, клозе) * 100000 (баров) * 100(инстурментов) = 160 000 000 = 160 мбайт вроде? если я не ошибся делай так — самый быстрый и простой вариант
2. динамические массивы — хранится в памяти куском, при каждом изменении размера выделяет кусок целиком. Забудь…
3. списки… вариантов реализации масса, в делфи сделано более менее удобно…
4 байта(дабл) * 6(время открытия, хай, лоу, опен, клозе, объем) * 100000 (баров) * 100(инстурментов) * 9 таймфреймов = 2 160 000 000 (2 гига)
также к каждому таймфрейму создается 2 искусственных таймфрейма… тоесть к тому что есть прибавляем еще 4 гига (((
но это всего лишь ДАННЫЕ!!!
теперь для каждого имея на по 3 таймфрейма необходимо создать один с пересчитанными значениями…
тоесть если есть 5 минутки и мы создали еще 2 искусственных, то пересчитав эти три таймфрейма, мы получим еще один массив, тоесть еще 2 гига… итого 6 гигов (((
Crazy Trading, ты по другому проблему не решишь — либо упрешься в физический потолок либо в быстродействие. Если реально есть необходимость в хранение такой тучи данных (а скорее всего ее нет:) то варианты:
1. статика со сдвигами памяти (не нужные данные убираем на их месть двигаем необходимые, в конец дописываем новые) — вряд ли ты будешь заглядывать на 5и минутках в прошлый год например
2. списки, но тут конечно можешь и 16гигов в комп воткнуть но потолок все рано будет
3. хранить все в базе данных быстрой
ну есть еще наколхозить решений, в зависимости от твоих потребностей.
если хочешь динамически выделять массивы — попробуй метров на сто массив выделить и перекроить — увидишь сколько это по времени занимает…
xTestero, спасибо… тоже об этом уже думал…
пока пришел к следующему решению:
2 массива с искусственными таймфреймами мне необходимы чтобы делать свои рассчеты, после которых эти данные в этих массивах не нужны, а это повторюсь 4 гига памяти… поэтому эти данные храниться не будут. при создании нового искусственного бара будет сразу происходить необходимый пересчет без занесения этого бара в массив.
Естественно после блокировки телеги пришлось зарегистрировать все наши каналы в MAX. Всего их 5 штук.
Но быстрее всего стал расти естественно самый полезный.
И как вы думаете какой?
Это...
18:56
Комментарий по работе с одним из наших контрагентов
⚡️В связи с информацией из СМИ, мы остановили исполнение контрактов с подрядчиками по использованию системы VIJU. ✅ Как один из крупнейших и системообразующих девелоперов, мы работаем с ~10...
Вьетнам активно создает современную и технологически сильную промышленность. О главных трендах ее цифровизации рассказал Александр Рожков, директор по развитию международного бизнеса Софтлайн:...
Компания Россети Ленэнерго опубликовала финансовый отчет за 2025г. по МСФО. Отчет МСФО и РСБУ у сетевых компаний очень похожи, а так как я отчет РСБУ (отчет об исполнении...
Игнатий, стоимость авто тут взвинчена из за введённых пошлин. Эти пошлины нужны на период СВО, что бы свой производитель не загнулся. Если загнется то потом у РФ начнутся серьезные проблемы. Создат...
Складской рынок разворачивается: от дефицита к конкуренции за арендатора Консалтинговая компания NF GROUP опубликовала предварительные итоги I квартала 2026 года по складскому рынку Московского регион...
Вы торговали/торгуете интрадей газ природный генри хаб или нефть марки брент ?! Здравствуйте!)) Друзья! Назрел СОЦОПРОС жителей смартлаба!!! Всем всех благ и профита!.... ...
Бензоколонка может не справиться...Ужас. В мире существует большой спрос на российскую нефть, и скоро России может стать сложно его удовлетворять, заявил пресс-секретарь президента РФ Дмитрий Песков....
«Займер» заработал больше, но выдавать стал меньше. Что важнее для инвесторов?
Микрофинансовый рынок продолжает подстраиваться под жёсткие условия, и «Займер» — один из немногих, кому удаётся ...
Накопительные счета vs вклады: что выгоднее в 2026 году В 2026 году российские банки продолжают радовать вкладчиков высокими ставками, но инфляция и снижение ключеставки ЦБ меняют правила игры. Экспе...
Рынок между перемирием и инфляцией: что сейчас двигает евро и фунт
В среду EUR/USD держится около 1.1600, индекс доллара DXY зажат у 99.00, а американские фондовые фьючерсы прибавляют почти 1%. Рын...
в конструкторе инициализируй приватный вектор:
www.cprogramming.com/tutorial/constructor_destructor_ordering.html — это про конструкторы
ну и соответственно, сделай public-функции для управления этим вектором
и нигде нет банального решения простой задачи:
в классе tf должен быть вектор двумерного массива.
как его инициализировать и как к нему обращаться?
мне не понятен синтаксис инициализации
double[,] candles = new double[10,30000]; не подойдёт?
есть след варианты решения:
1. статические массивы 4 байта(дабл) * 4(хай, лоу, опен, клозе) * 100000 (баров) * 100(инстурментов) = 160 000 000 = 160 мбайт вроде? если я не ошибся делай так — самый быстрый и простой вариант
2. динамические массивы — хранится в памяти куском, при каждом изменении размера выделяет кусок целиком. Забудь…
3. списки… вариантов реализации масса, в делфи сделано более менее удобно…
4 байта(дабл) * 6(время открытия, хай, лоу, опен, клозе, объем) * 100000 (баров) * 100(инстурментов) * 9 таймфреймов = 2 160 000 000 (2 гига)
также к каждому таймфрейму создается 2 искусственных таймфрейма… тоесть к тому что есть прибавляем еще 4 гига (((
но это всего лишь ДАННЫЕ!!!
теперь для каждого имея на по 3 таймфрейма необходимо создать один с пересчитанными значениями…
тоесть если есть 5 минутки и мы создали еще 2 искусственных, то пересчитав эти три таймфрейма, мы получим еще один массив, тоесть еще 2 гига… итого 6 гигов (((
1. статика со сдвигами памяти (не нужные данные убираем на их месть двигаем необходимые, в конец дописываем новые) — вряд ли ты будешь заглядывать на 5и минутках в прошлый год например
2. списки, но тут конечно можешь и 16гигов в комп воткнуть но потолок все рано будет
3. хранить все в базе данных быстрой
ну есть еще наколхозить решений, в зависимости от твоих потребностей.
если хочешь динамически выделять массивы — попробуй метров на сто массив выделить и перекроить — увидишь сколько это по времени занимает…
пока пришел к следующему решению:
2 массива с искусственными таймфреймами мне необходимы чтобы делать свои рассчеты, после которых эти данные в этих массивах не нужны, а это повторюсь 4 гига памяти… поэтому эти данные храниться не будут. при создании нового искусственного бара будет сразу происходить необходимый пересчет без занесения этого бара в массив.