парни очень нужна консультация программиста на С++
суть: не могу разобраться с векторами (((
пишу ДЛЛ пока для МТ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 гига памяти… поэтому эти данные храниться не будут. при создании нового искусственного бара будет сразу происходить необходимый пересчет без занесения этого бара в массив.
Покупать нельзя продавать.
Поставьте запятую.
Кукл — профессионален! Поддерживает интерес к бумаге.
Только у людей появляется мысль: «Продать к чертям и забыть!», тут рррраааз — бумага летит...
Максим, те кто не участвует — не являются потенциальными инвесторами компании так как данные бумаги им не интересны, иначе не покупали бы у перекупщиков.
Более 200 тыс заявок это от желающих стат...
YgrOK, Вы забываете про покупки и продажи по рынку — они в стакан не попадают, а в объёмах учитываются.
На рынке большая толпа «физиков» со счетами до 1 миллиона, у некоторых — 100-200 тысяч — 1...
МТС снизил долю в уставном капитале МТС-банка с 99% до 86,7% - компания МТС снизил долю в уставном капитале МТС-банка с 99% до 86,7% — компания.Новость дополняется.
Источник: ТАСС Авто-репост. Ч...
🛎 Аналитический видеообзор Ethereum от 27.04.2024 ⚡️Аналитический видеообзор по инструменту ETH/USDT⚡️
Среднесрочно инструмент находится в нисходящем тренде 📉.Сила рынка: 40Рекомендуется работать от...
в конструкторе инициализируй приватный вектор:
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 гига памяти… поэтому эти данные храниться не будут. при создании нового искусственного бара будет сразу происходить необходимый пересчет без занесения этого бара в массив.